View
35
Download
0
Category
Preview:
DESCRIPTION
Operációs rendszerek (vimia219). Felhasználó- és jogosultságkezelés. Tóth Dániel, Micskei Zoltán. Számítógépes rendszerek biztonsága. Fontos ez? Mindenkinek fontos? Mikor fontos?. Mikor fontos a számítógépes biztonság?. Szoftverfejlesztésben minden szinten foglalkozni kell a biztonsággal - PowerPoint PPT Presentation
Citation preview
Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék
Felhasználó- és jogosultságkezelés
Tóth Dániel, Micskei Zoltán
Operációs rendszerek (vimia219)
2
Számítógépes rendszerek biztonsága Fontos ez?
Mindenkinek fontos?
Mikor fontos?
Mikor fontos a számítógépes biztonság?
tervezés
implementáció
üzemeltetés
Szoftverfejlesztésben minden szinten foglalkozni kell a biztonsággal
„Ha egy rendszert nem terveztek biztonságosra, akkor később lehetetlen azzá tenni.”
A rendszer biztonsága a leggyengébb láncszem biztonságával azonos.„Az operációs rendszer nem csodaszer, rosszul megírt alkalmazás ellen nem véd.”
Sértetlenség(Integrity)
Rendelkezésre állás(Availability)
Bizalmasság(Confidentiality)
Miből áll a „biztonság” fogalma „C.I.A.”: Három kölcsönösen
egymásra épülő alapfogalom Cél:
o garantálni, hogy a rendszer mindig az elvárt módon viselkedjen
Egy technológia magában kevés
A biztonság mindigcsak a célkitűzés függvényében értelmezhető
Normális esetben: „jóindulatú” meghibásodások
Biztonsági kontextusban: „rosszindulatú” meghibásodás
Biztonságot biztosító eszközök Kriptográfia
o Kommunikáció sértetlenségéhez, bizalmasságához kell
Platform szintű behatolás elleni védelemo Rendszeren futó alkalmazások
sértetlensége Hálózati behatolás
elleni védelem Redundancia,
újrakonfiguráláso Rendelkezésre állás
Hitelesítés, engedélyezés
Sértetlenség(Integrity)
Rendelkezésre állás(Availability)
Bizalmasság(Confidentiality)
Ki az „illetékes”?
Hitelesítés(Authentication)• Ki vagyok?• Az vagyok-e akinek
mondom magam?
Engedélyezés(Authorization)• Mihez férhetek
hozzá?• Mit csinálhatok
vele?
7
Tartalom Számítógépes biztonság bevezető Felhasználó kezelés, hitelesítés
o UNIX, Linux alatto Windows alatt
Engedélyezéso Engedélyezés általános sémái
• Szerep alapú hozzáférés-vezérlés• Hozzáférési jogosultság listák
o Engedélyezés UNIX, Linux alatto Engedélyezés Windows alatt
• Biztonsági alrendszer alapok• Központosított hozzáférés-vezérlés
Ezekről majd a következő előadáson
részletesen
8
Hitelesítés Mi alapján dönthető el, hogy ki kicsoda?
o…amit tud (pl.: jelszó)o…amije van (pl.: kulcs, belépőkártya)o…ami ő (pl.: ujjlenyomat, arckép)
Ezek (akár egy kombinációja) alapján egy (sértetlen) gép el tudja dönteni, hogy ki a személy, aki előtte üloMi a helyzet, ha nem sértetlen a gép?oMi a helyzet a gép-gép közötti szolgáltatásokkal?
9
Hitelesítés Hitelesítés három szinten kerülhet elő:
o Ember és gép közötti interakcióo Gép és gép között valamilyen hálózaton áto Gépen belül futó alkalmazások valamint az OS között
Hitelesítési protokollok kelleneko Gépen belül ill. gépek között csak az „amit tud” séma
lehetséges (bizalmasságot igényel – pl. közös titok)o Itt már feltételezhető bonyolult kriptográfiai számítás
elvégzése is (embernél fejben nyilván nem – de rendelkezhet segédeszközzel „amije van” sémánál)
10
Miből áll egy felhasználói fiók
User
+ ID+ Name+ Real Name+ Personal data…+ Shared Secret (Password, etc.)+ Private Datastore path
A rendszer számára a felhasználó egy objektum…
11
Miből áll egy felhasználói fiók A felhasználói fiókot azonosítja…
o Linux, UNIX alapú rendszerek alatt UID• Integer (root 0, felhasználók 1000-…)• /etc/passwd, /etc/shadow, /etc/group tárolja az
attribútumokatoMik ezek az attribútumok
• Login név• Jelszó (megváltoztathatóság, lejárati idő)• Home könyvtár• Alapértelmezett shell (illetve shell belépés megtiltása)• Alapértelmezett csoporttagság (erről majd egy kicsit később)• Komment (valódi név)
DEMO
Tárolás fájlokban:o /etc/passwdo /etc/shadowo /etc/groupo /etc/gshadow
Létrehozás, módosítás, törléso useradd, usermod, userdelo groupadd, groupmod, groupdelo passwd
Felhasználói fiókok Linux alatt
13
Miből áll egy felhasználói fiók Linux alatt
User Group
+ GID+ name(+ password)
Initial group
+ UID+ name+ password+ shell+ home directory+ comment+ expiry date
members
1
* *
*
DEMO
Hogyan állapíthatjuk meg egy futó folyamatról, hogy ki a tulajdonosao ps aux, pstree, /proc/$PID/status
Folyamat futása közben effektív user és group váltásao setuid, setgid mechanizmuso su, sudo parancsok
Futó folyamatok
15
Azonosítás Linux alatt Gépen belül
o Felhasználó UID-név hozzárendelés feloldása gyakran kell → /etc/passwd-t mindenkinek kell tudnia olvasni
o Jelszó ezért nem itt van, hanem a /etc/shadow alatt, hash-elve
Több gép között?o Pl.: ssh-nálo Felhasználó név/jelszóo Kriptográfiai kulcs alapjáno Egyediség?
16
Tartalom Számítógépes biztonság bevezető Felhasználó kezelés, hitelesítés
o UNIX, Linux alatto Windows alatt
Engedélyezéso Engedélyezés általános sémái
• Szerep alapú hozzáférés-vezérlés• Hozzáférési jogosultság listák
o Engedélyezés UNIX, Linux alatto Engedélyezés Windows alatt
• Biztonsági alrendszer alapok• Központosított hozzáférés-vezérlés
17
Engedélyezés általános sémái
Szereplő(Actor, Subject)
Szereplőt leíróadatszerkezet
Adatok
Erőforrások
???
Biztonságiszabályzat(policy)
A rendszerben a szereplőt egy adatszerkezet reprezentálja
A jogosultság egy reláció a szereplők és a védett objektumok
között
Védett objektumok(protected objects)
18
Hozzáférés végrehajtása
Adat1
Olvas(Adat1)
Adat2
Jogosultság végrehajtó
(enforcement point)
elvégezhető
Jogosultsági döntő (decision
point)
Erőforrás3
19
Jogosultságkezelés alapjai A rendszer működése során
o A szereplők műveleteket kezdeményezneko A műveletek kontextusa tartalmazza a szereplő
azonosítóját, a célobjektumot és az elvégzendő művelet fajtáját
o A jogosultsági döntő komponens kiértékeli a kontextust
• engedélyezi vagy megtiltja a műveleteto A jogosultsági végrehajtó komponens biztosítja, hogy a
döntő által hozott döntés érvényre jusson
20
Jogosultságkezelés alapjai A rendszer karbantartása során
o Jogosultságok beállítása, módosítása történiko A jogosultságot leíró adatszerkezet maga is egy védett
objektum• Tehát lehetnek olyan jogosultságok, amik saját magukra
hatással vannak!o Általában a rendszer folyamatosan üzemel, nincs
elkülönített karbantartási idő, a jogosultság módosítások azonnal érvényre jutnak
21
Jogosultságkezelés gyakorlati kihívásai Sok szereplőt kell kezelni a rendszerben
o Különböző rendszerek különbözőképpen azonosítják őket
Sok védett objektumot kell kezelnio Különböző rendszerek ezeket is különbözőképpen
azonosíthatják Jogosultsági relációk:
o (Szereplők) X (Objektumok) X (Művelettípusok)o Az ilyet teljes hozzáférési mátrixnak nevezzükoManuálisan (de még automatizáltan is) kezelhetetlen
méretű adathalmaz
23
Engedélyezés csoportosítása
Kötelezőség
Kötelező(Mandatory)
Belátás szerint (Discretionary)
Szint
Rendszer szintű
Erőforrás szintű
Típus
Integritási szintek
Hozzáférési listák
Jogosultságkezelés fajtái
24
Felhatalmazás fajtái - kötelezőség
Klasszikus fogalmak (US DoD szabvány)
Kötelező (mandatory)o csak központi jogosultság osztáso felhasználók nem módosíthatják a házirendet
Belátás szerint (discretionary)omegfelelő jogú felhasználó továbboszthatja a jogokat
25
Felhatalmazás fajtái - típus
Integritás védelemo Objektumok címkézése
• alacsony, közepes, magas… integritási szinto Ellenőrzés:
• alacsonyabb szintű felhasználó nem olvashat/írhat magasabb szintű objektumot
o Bell LaPadula (bizalmassági) és Biba (sértetlenségi) modellek
Hozzáférés vezérlési listáko objektum → (szereplő, engedélyek)
• engedély: adatok írása, attribútumok olvasása…
26
Felhatalmazás fajtái - típus
Integritás védelemo Objektumok címkézése
• alacsony, közepes, magas… integritási szinto Ellenőrzés:
• alacsonyabb szintű felhasználó nem olvashat/írhat magasabb szintű objektumot
o Bell LaPadula (bizalmassági) és Biba (sértetlenségi) modellek
Hozzáférés vezérlési listáko objektum → (szereplő, engedélyek)
• engedély: adatok írása, attribútumok olvasása…
Feltételek:„No read up” – nem olvashatok magamnál
magasabb szintű objektumból„No write down” – nem írhatok magamnál
alacsonyabb szintű objektumba
Feltételek:„No write up” – nem írhatok magamnál
magasabb szintű objektumba„No read down” – nem olvashatok
magamnál alacsonyabb szintű objektumból
27
Hozzáférés vezérlési listák
+ mask*
Szereplő Védett objektumEngedély(Permission)
A hozzáférési maszk (access mask)
tartalmazza, hogy pontosan milyen
műveletekre vonatkozik az
engedély
+ OP1()+ OP2()
28
Hozzáférés vezérlési listák
+ mask* *
Szereplő Védett objektumEngedély(Permission)
Egy védett objektumhoz engedélyek
halmaza rendelhető
*
Néha sorrendezést is megkövetel
29
Role-based Access Control (RBAC)
Szerep alapú hozzáférés-vezérlés
Szereplő Védett objektumSzerep(Role)
+ mask
Engedély(Permission)
*
*
***
A szerep fogalom hierarchikus
szereplő csoportosítási
lehetőséget ad.
A szükséges engedélyek száma kezelhető szintre
csökken
30
Hierarchikus objektumok
Szereplő Védett objektumSzerep(Role)
+ mask+inherit
Engedély(Permission)
*
*
***
*1
Ha a védett objektumok között természetszerűen hierarchia van…
…egy engedély vonatkozhat
egész részfára is öröklődéssel(inheritance)
31
Miből áll egy felhasználói fiók
User
Group
+ Name(+ Purpose…)(+ Shared Secret)
memberOf
A felhasználó csoporttagság valójában egy RBAC megvalósítási
lehetőség
32
Tartalom Számítógépes biztonság bevezető Felhasználó kezelés, hitelesítés
o Linux alatto Windows alatto Központosított címtárak
Engedélyezéso Engedélyezés általános sémái
• Szerep alapú hozzáférés-vezérlés• Hozzáférési jogosultság listák
o Engedélyezés Linux alatto Engedélyezés Windows alatt
• Biztonsági alrendszer alapok• Központosított hozzáférés-vezérlés, csoportházirendek
33
Alapelemeko Szereplő: user (felhasználó)o Szereplő hierarchia: group (csoport)o Minden user teszőlegesen sok group tagja leheto Minden group tetszőlegesen sok usert tartalmazhato Group további groupot nem tartalmazhat
Jogoko 3x3bit, olvasás, írás, végrehajtás (könyvtárba belépés)
• Első a tulajdonos felhasználónak• Második a tulajdonos csoportnak• Harmadik mindenkinek
o Speciális bitek• setuid, setgid: futtatásnál átveszi a file tulajdonos uid-, gid-jét, • sticky: újonnan létrejött fájlok tulajdonosát állítja
o Az execute bit tiltó hatása implicit módon öröklődik a könyvtárakon, más öröklés nincs
POSIX fájlrendszer jogosultságok
34
POSIX fájlrendszer jogosultságok
DEMO
Tulajdonos manipulálása: chowno csak rootnak engedélyezett, nem delegálható
Jogosultság bitek módosítása: chmodo Csak tulajdonosnak engedélyezetto Többféle megadási mód:
• Teljes felülírás 4 db oktális számmal• Módosítás pl: u+x (felhasználó végrehajtás hozzáadása), g-w
(csoport olvasás elvétele)
Listázás: ls –l illetve ls –l –n
(POSIX ACL is létezik, idő hiányában nem tárgyaljuk)
Linux fájlrendszer jogosultságok
37
Fájlrendszeren kívüli engedélyek Speciális kiváltságok root felhasználó nevében futó
folyamatoknako Kérhetnek valós idejű ütemezési prioritásto Hozzáférhetnek közvetlenül a perifériákhoz (!)
• Kell előtte memória illetve I/O tartomány allokáció• A közelmúltig így működtek a grafikus felületet adó X Window server
eszközmeghajtó programjaio 1024 alatti TCP/UDP porton hallgathatnako Kernel bizonyos konfigurációs beállításait megváltoztathatják, új
modult tölthetnek be stb. Nem előnyös, ha ezek nem szabályozhatóak külön-külön
o Legkevesebb jog elve (principle of least privileges)o POSIX Capabilities mechanizmus – globális rendszerszintű
erőforrásokra vonatkozó jogosultságok (ún. privilégiumok)
38
Kitekintés Finomabb felbontású jogosultságkezelés
végrehajtható fájlokrao Platform szintű behatolás elleni védőmechanizmusok
támogatására (PAX, grsecurity)o A védőmechanizmusok számos egyébként sértetlen
programot tesznek működésképtelenné (pl. JavaVM)o Speciálisan kivételezni kell az ilyen alkalmazásokat
fájlrendszerbe írt címkével (SELinux Security Labels)o Alkalmazásokhoz hozzárendelt rendszerhívási profilok
(AppArmor) – felfedi ha a „szokásoshoz” képest megváltozik az alkalmazás futása
Recommended