Biztonsági környezet Operációs rendszerek MINB240/PMTRTNB230H 12. Előadás Biztonság Biztonság és védelemi mechanizmusok Biztonság kérdése probléma természete Védelmi mechanizmusok biztonság elérését lehetővé tevő modellek Biztonság Fenyegetés Behatolás Véletlen adatvesztés 1 2 Fenyegetés Biztonsági célok és veszélyek: Célok Veszélyek Behatolás Képzetlen felhasználó alkalmi kiváncsiskodása Szaglászás bennfentes által Határozott pénzszerzési szándék Kereskedelmi katonai kémkedés Bizalmas adatkezelés Adatintegritás Rendelkezésre állás Expozíció Adathamisítás Szolgáltatásmegtagadás 3 4
Rosszindulatú programok Malware kártékony programok Vírusok (DOS, DDOS) Kulcsgyűjtő Féreg Trójai faló Logikai bomba Kémprogram (sütik) Véletlen adatvesztés Természeti csapás árvíz, földrengés, rágcsálók stb. Hardver vagy szoftverhibák hibás processzorműködés, olvashatatlan lemez, programhiba, stb. Emberi tévedés hibás adatbevitel, hibás program indítás, stb. 5 6 Általános biztonság elleni támadások Tigriscsapat / behatolócsapat 1. Memóriaterület, lemezterület, szalagterület olvasása 2. Illegális rendszerhívás 3. Bejelentkezés közben DEL, BREAK billentyűk 4. Operációs rendszer adatszerkezet módosítása 5. Ál login képernyő készítés 6. Csapóajtó támadás 7. Emberi tényező - megvesztegetés Tervezési elvek Saltzer és Schroeder 1975 1. Nyilvános rendszerterv 2. Alapértelemzésben nincs hozzáférés 3. Aktuális jogok ellenőrzése 4. Processzusok lehető legkisebb jogosultságokkal 5. Egyszerű védelmi mechanizmus az op.rsz. legalsó szintjén megvalósítva 6. Pszichológiailag elfogadható séma ne igényeljen túl sok munkát a fájlvédelem 7 8
Felhasználó azonosítása Sok védelmi séma azon alapszik, hogy ismeri a felhasználó kilétét Felhasználó azonosítás az a feladat, ami belépéskor a felhasználók kilétét megállapítja Jelszavak Fizikai azonosítás Jelszavak A legszélesebb körben használt azonosítás Unix: Bejelentkező program bekéri a felh. azonosítóját, jelszavát A jelszót azonnal titkosítja A jelszófájlban megkeresi a felhasználót és összehasonlítja az ottani titkosított jelszóval Ha egyezést talál, akkor engedi a belépést egyébként visszautasítja 9 10 Jelszavak védelme Módszerek: Jelszó sózása technika Egyszer használatos jelszó módszere listáról Tipikus kérdések Kihívás válasz felhasználó által választott algoritmussal Tárgy azonosítás Biometriai azonosítás Aláírás elemzés Fizikai azonosítás 11 12
Ellenintézkedések Meghatározott terminálról, meghatározott időintervallumban történő belépés Telefonvonalon történő belépés visszahívással Bejelentkezések rögzítése Csapda felállítása Védelmi mechanizmusok Technikai módszerek a fájlok és erőforrások megvédésére Eljárásmód mely adatok, kik ellen védelmezendők Mechanizmus hogyan valósítja meg a védelmet Referenciamonitor a védelmet végző program Hozzáférés kezdeményezésekor a rendszer kéri a referenciamonitortól a jogosultságok ellenőrzését Táblázatok alapján döntést hoz 13 14 Tartomány Objektumok Egyedi név Véges sok műveletből álló halmaz Objektum - jogok párosok halmaza Védelmi tartományok Pl.: Unix processzus tartomány uid-gid pár Domain 15
Hozzáférést vezérlő listák Tároljuk úgy, hogy csak a nem üres elemeket tároljuk ténylegesen oszlop majd sor szerint azokat a tartományokat tartalamazza, melyek az adott objektumot elérhetik Hozzáférés vezérlő lista Access Control List (ACL) Képességi listák Képességi Lista, Capability List, C-lista objektumokat és hozzáférési jogokat tartalmazza,melyeket a processzus elérhet 17 18 C-lista védelme Három módszer: 1. Speciális HW architektúra Címkézett architektúra Minden memóriabeli szónak van egy extra bitje címkéje, mely megmondja, hogy képességet tartalmaz-e Pl.: IBM AS/400 2. C-listát op.rsz. területén tárolják a processzusok pozíciójukkal hivatkozhatnak képességekre Pl.: Unix fájlleírók Titkosítással védett képesség 3. a C-listát a felhasználó területén tárolják Titkosítva, így a felhasználó nem ronthatja el Pl.: elosztott rendszereknél Szerver Objektum Jogok f(objektum, Jogok, Ellenórzés) 19 20
Shell scriptek shell-parancsok sorozata nem kell lefordítani őket könnyedén debuggolhatók minden script le elején a sorral jelezzük A shell scriptek lozóája általában az adatfolyam különböző hasznos szűrőkön való átfolyatásán alapszik. Egyszerű példa juzername=`whoami` igaziname=`grep "^${juzername}:" /etc/passwd cut -d: -f5 cut -d, -f1` echo A neved: $igaziname 21 22 Futtatás 1. Ha egy pontot (vagy a source parancsot) teszel a fájlnév elé, akkor az aktuális shell soronként olvassa be a fájlt, es a hatás ugyanaz, mintha te gépelted volna be ezeket a sorokat, 2. ha futtatási jogot adsz a le-ra (chmod +x fájlnév ), akkor egy új shell indul a script futtatására chmod u+x hello.sh 1. expliciten egy új shellnek adod át paraméterként Shell változók Változó nevek: - betűvel kell kezdődjön - nem tartalmazhat SPACE-t. Használjunk aláhúzás (_) karaktert - ne használjunk.,!? karaktereket - ne használjunk foglalt nevet, lásd fent 23 24
Néhány fontosabb változó név $PATH : a parancsok keresési utja $HOME : a felhasznalo saját könyvtára $PWD : az aktuális könyvtár $SHELL : milyen shell fut $PS1 : elsodleges prompt $PS2 : masodlagos prompt $TERM : a terminal tipusa Értékadás változó = érték csak az aktuális shell-ben érvényes export változó = érték az aktuális shell-ben és indított shell-ekben és programokban is érvényes export exportált változók kiírása set összes változó kiírása 25 26 Példa Foglalt parancsnevek neve= Sanyi" echo $neve bash echo $neve export kora="12" echo $kora bash echo $kora if exit for while until case break continue 27 28
Parancsok, argumentumok parancssor-argumentumokat is kaphat, amelyeket előredeniált változóként érzékel echo a parancs neve: $0 echo az első argumentum: $1 echo a második argumentum: $2 echo a harmadik argumentum: $3 echo az argumentumok száma: $# echo az összes argumentum: $* Interaktív scriptek echo -n 'lename: ' read lename echo lename will be $lename if test -e $lename then echo File $lename already exists. Exiting... exit 1 29 30 Vezérlési szerkezetek - if Feltételek man test if feltétel ; then parancsok if feltétel ; then parancs_1 else parancs_2 if feltétel_1 ; then parancs_1 elif feltétel_2 parancs_2 Feltétel Jelentés ----------------------------------------------------------- File ellenőrzés -d le igaz ha le egy könyvtár -e le igaz ha a le létezik (bármilyen le lehet) -f le igaz ha a le egy egyszerű le és létezik -l le igaz ha a le egy szimbolikus link -r le igaz ha a le olvashato számunkra -w le igaz ha a le irható számunkra -x le igaz ha a le futtatható számunkra 31 32
Feltételek man test Feltétel Jelentés ----------------------------------------------------------- Szöveg ellenőrzés -z string igaz ha a string üres -n string igaz ha a string nem üres str1 = str2 igaz ha a str1 egyenlő str2 -vel str1!= str2 igaz ha a str1 nem egyenlő str2 -vel Feltételek man test Feltétel Jelentés ----------------------------------------------------------- Matematikai ellenőrzés kif1 -eq kif2 igaz ha a ket kifejezés egyenlő kif1 -ne kif2 igaz ha a ket kifejezés nem egyenlő kif1 -lt kif2 igaz ha kif1 kisebb mint kif2 kif1 -le kif2 igaz ha kif1 kisebb vagy egyenőlo mint kif2 kif1 -gt kif2 igaz ha kif1 nagyobb mint kif2 kif1 -ge kif2 igaz ha kif1 nagyobb vagy egyenlő mint kif2 kif1 -a kif2 igaz ha kif1 és kif2 is igaz kif1 -o kif2 igaz ha kif1 vagy kif2 igaz! kif igaz ha kif nem igaz 33 34 if [ -f.bash_prole ] ; then echo "Van ilyen le" else echo "Nincs ilyen le" Példa if test -f.bash_prole ; then echo "Van ilyen le" else echo "Nincs ilyen le" szam=1 if [ $szam = "1" ] ; then echo "A szam egy" else echo "A szam nem egy" Példa 35 36
Adatbekérés echo -n Írj be egy szöveget: " read szöveg echo "A beolvasott szöveg: '$szöveg' " exit 0 Vezérlési szerkezetek for - csak egy rögzített lista elemein lehet végigmenni vele while - addig fut, amíg a hasában levő feltétel igaz Until - amíg a feltétele igaz nem lesz 37 38 Vezérlési szerkezetek - while while true do echo itt vagyok, ragyogok sleep 2 done Vezérlési szerkezetek - case case $1 in "-a") echo "-a opcio eseten ezt irom ki" ;; "-o") echo "-o opcio eseten ezt irom ki" ;; *) echo Egyebkent meg ez a default. esac 39 40