Biztonsági környezet • 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
Operációs rendszerek MINB240/PMTRTNB230H
• Biztonság • Fenyegetés • Behatolás • Véletlen adatvesztés
12. Előadás Biztonság 1
2
Fenyegetés
Behatolás
• Biztonsági célok és veszélyek:
Célok
Veszélyek
Bizalmas adatkezelés
Expozíció
Adatintegritás
Adathamisítás
Rendelkezésre állás
Szolgáltatásmegtagadás
• • • •
3
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
4
Rosszindulatú programok
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.
• Malware – kártékony programok • • • • • •
Vírusok (DOS, DDOS) Kulcsgyűjtő Féreg Trójai faló Logikai bomba Kémprogram (sütik)
5
6
Tervezési elvek
Általános biztonság elleni támadások •
Tigriscsapat / behatolócsapat 1. 2. 3. 4. 5. 6. 7.
•
Saltzer és Schroeder 1975 1. 2. 3. 4. 5.
Nyilvános rendszerterv Alapértelemzésben nincs hozzáférés Aktuális jogok ellenőrzése Processzusok lehető legkisebb jogosultságokkal 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
Memóriaterület, lemezterület, szalagterület olvasása Illegális rendszerhívás Bejelentkezés közben DEL, BREAK billentyűk Operációs rendszer adatszerkezet módosítása Ál login képernyő készítés Csapóajtó támadás Emberi tényező - megvesztegetés
7
8
Felhasználó azonosítása
Jelszavak
• 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
• 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
Jelszavak védelme
10
Fizikai azonosítás
• Módszerek:
• Tárgy azonosítás • Biometriai azonosítás • Aláírás elemzés
• 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
11
12
Ellenintézkedések
Védelmi mechanizmusok
• 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
• 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
Védelmi tartományok
• Objektumok
Pl.: Unix processzus tartomány – uid-gid pár
• Egyedi név • Véges sok műveletből álló halmaz
• Objektum - jogok párosok halmaza
Domain
15
Hozzáférést vezérlő listák
Képességi 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 Lista, Capability List, C-lista • objektumokat és hozzáférési jogokat tartalmazza,melyeket a processzus elérhet
17
18
C-lista védelme
Titkosítással védett képesség
Három módszer:
3.
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
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
19
Objektum
Jogok
f(Objektum, Jogok, Ellenórzés)
20
Shell scriptek • • • • •
Egyszerű példa
shell-parancsok sorozata nem kell lefordítani őket könnyedén debuggolhatók minden script file elején a #!/bin/sh sorral jelezzük A shell scriptek filozófiája általában az adatfolyam különböző hasznos szűrőkön való átfolyatásán alapszik.
#!/bin/sh juzername=`whoami` igaziname=`grep "^${juzername}:" /etc/passwd | cut -d: -f5 | cut -d, -f1` echo A neved: $igaziname
21
22
Futtatás
Shell változók
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 file-ra (chmod +x fájlnév ), akkor egy új shell indul a script futtatására
• • • • •
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
chmod u+x hello.sh
1. expliciten egy új shellnek adod át paraméterként
23
24
Értékadás
Néhány fontosabb változó név • • • • • • •
$PATH $HOME $PWD $SHELL $PS1 $PS2 $TERM
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
: a parancsok keresési utja : a felhasznalo saját könyvtára : az aktuális könyvtár : milyen shell fut : elsodleges prompt : masodlagos prompt : a terminal tipusa
25
26
Példa neve=„Sanyi" echo $neve bash echo $neve
Foglalt parancsnevek if exit for while until case break continue
export kora="12" echo $kora bash echo $kora
27
28
Parancsok, argumentumok
Interaktív scriptek #!/bin/sh echo -n 'filename: ' read filename echo filename will be $filename if test -e $filename then echo File $filename already exists. Exiting... exit 1 fi
• parancssor-argumentumokat is kaphat, amelyeket előredefiniált változóként érzékel #!/bin/sh 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: $* 29
Vezérlési szerkezetek - if if feltétel ; then parancsok fi
if feltétel ; then parancs_1 else parancs_2 fi
30
Feltételek – man test Feltétel Jelentés ----------------------------------------------------------File ellenőrzés -d file igaz ha file egy könyvtár -e file igaz ha a file létezik (bármilyen file lehet) -f file igaz ha a file egy egyszerű file és létezik -l file igaz ha a file egy szimbolikus link -r file igaz ha a file olvashato számunkra -w file igaz ha a file irható számunkra -x file igaz ha a file futtatható számunkra
if feltétel_1 ; then parancs_1 elif feltétel_2 parancs_2 fi
31
32
Feltételek – man test
Feltételek – man test Feltétel Jelentés ----------------------------------------------------------Matematikai ellenőrzés
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
kif1 -eq kif2 kif1 -ne kif2 kif1 -lt kif2 kif1 -le kif2 kif1 -gt kif2 kif1 -ge kif2 kif1 -a kif2 kif1 -o kif2 ! kif
igaz ha a ket kifejezés egyenlő igaz ha a ket kifejezés nem egyenlő igaz ha kif1 kisebb mint kif2 igaz ha kif1 kisebb vagy egyenőlo mint kif2 igaz ha kif1 nagyobb mint kif2 igaz ha kif1 nagyobb vagy egyenlő mint kif2 igaz ha kif1 és kif2 is igaz igaz ha kif1 vagy kif2 igaz igaz ha kif nem igaz
33
34
Példa #!/bin/sh if [ -f .bash_profile ] ; then echo "Van ilyen file" else echo "Nincs ilyen file" fi
Példa
#!/bin/sh if test -f .bash_profile ; then echo "Van ilyen file" else echo "Nincs ilyen file" fi
35
#!/bin/sh szam=1 if [ $szam = "1" ] ; then echo "A szam egy" else echo "A szam nem egy" fi
36
Adatbekérés
Vezérlési szerkezetek
#!/bin/sh echo -n „Írj be egy szöveget: " read szöveg echo "A beolvasott szöveg: '$szöveg' " exit 0
• 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
Vezérlési szerkezetek - while
38
Vezérlési szerkezetek - case #!/bin/sh 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
#!/bin/sh while true do echo itt vagyok, ragyogok sleep 2 done
39
40