1 / 36

Felhasználó- és jogosultságkezelés

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

Download Presentation

Felhasználó- és jogosultságkezelés

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operációs rendszerek (vimia219) Felhasználó- és jogosultságkezelés Tóth Dániel, Micskei Zoltán

  2. Számítógépes rendszerek biztonsága Fontos ez? Mindenkinek fontos? Mikor fontos?

  3. Mikor fontos a számítógépes biztonság? • 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.”

  4. Miből áll a „biztonság” fogalma • „C.I.A.”: Három kölcsönösen egymásra épülő alapfogalom • Cél: • 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

  5. Biztonságot biztosító eszközök • Kriptográfia • Kommunikáció sértetlenségéhez, bizalmasságához kell • Platform szintű behatolás elleni védelem • Rendszeren futó alkalmazások sértetlensége • Hálózati behatoláselleni védelem • Redundancia,újrakonfigurálás • Rendelkezésre állás • Hitelesítés, engedélyezés

  6. Ki az „illetékes”?

  7. Tartalom Ezekről majd a következő előadáson részletesen • Számítógépes biztonság bevezető • Felhasználó kezelés, hitelesítés • UNIX, Linux alatt • Windows alatt • Engedélyezés • 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 • Engedélyezés UNIX, Linux alatt • Engedélyezés Windows alatt • Biztonsági alrendszer alapok • Központosított hozzáférés-vezérlés

  8. Hitelesítés • Mi alapján dönthető el, hogy ki kicsoda? • …amit tud (pl.: jelszó) • …amije van (pl.: kulcs, belépőkártya) • …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 ül • Mi a helyzet, ha nem sértetlen a gép? • Mi 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ő: • Ember és gép közötti interakció • Gép és gép között valamilyen hálózaton át • Gépen belül futó alkalmazások valamint az OS között • Hitelesítési protokollok kellenek • 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) • 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 + Personaldata… + SharedSecret (Password, etc.) + PrivateDatastorepath 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… • Linux, UNIX alapú rendszerek alatt UID • Integer (root 0, felhasználók 1000-…) • /etc/passwd, /etc/shadow, /etc/group tárolja az attribútumokat • Mik 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)

  12. Felhasználói fiókok Linux alatt • Tárolás fájlokban: • /etc/passwd • /etc/shadow • /etc/group • /etc/gshadow • Létrehozás, módosítás, törlés • useradd, usermod, userdel • groupadd, groupmod, groupdel • passwd

  13. Miből áll egy felhasználói fiók Linux alatt User Group Initialgroup + UID + name + password + shell + homedirectory + comment + expirydate + GID + name(+ password) 1 * members * *

  14. Futó folyamatok • Hogyan állapíthatjuk meg egy futó folyamatról, hogy ki a tulajdonosa • psaux, pstree, /proc/$PID/status • Folyamat futása közben effektív user és group váltása • setuid, setgid mechanizmus • su, sudo parancsok

  15. Azonosítás Linux alatt • Gépen belül • Felhasználó UID-név hozzárendelés feloldása gyakran kell → /etc/passwd-t mindenkinek kell tudnia olvasni • Jelszó ezért nem itt van, hanem a /etc/shadow alatt, hash-elve • Több gép között? • Pl.: ssh-nál • Felhasználó név/jelszó • Kriptográfiai kulcs alapján • Egyediség?

  16. Tartalom • Számítógépes biztonság bevezető • Felhasználó kezelés, hitelesítés • UNIX, Linux alatt • Windows alatt • Engedélyezés • 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 • Engedélyezés UNIX, Linux alatt • 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 Védett objektumok (protectedobjects) Biztonsági szabályzat (policy) ? Adatok ? ? Erőforrások Szereplő (Actor, Subject) Szereplőt leíróadatszerkezet 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

  18. Hozzáférés végrehajtása Olvas(Adat1) Jogosultság végrehajtó (enforcementpoint) Adat1 elvégezhető Jogosultsági döntő (decisionpoint)   Adat2  Erőforrás3

  19. Jogosultságkezelés alapjai • A rendszer működése során • A szereplők műveleteket kezdeményeznek • A műveletek kontextusa tartalmazza a szereplő azonosítóját, a célobjektumot és az elvégzendő művelet fajtáját • A jogosultsági döntő komponens kiértékeli a kontextust • engedélyezi vagy megtiltja a műveletet • 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 • Jogosultságok beállítása, módosítása történik • 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! • Á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 • Különböző rendszerek különbözőképpen azonosítják őket • Sok védett objektumot kell kezelni • Különböző rendszerek ezeket is különbözőképpen azonosíthatják • Jogosultsági relációk: • (Szereplők) X (Objektumok) X (Művelettípusok) • Az ilyet teljes hozzáférési mátrixnak nevezzük • Manuálisan (de még automatizáltan is) kezelhetetlen méretű adathalmaz

  22. Jogosultságkezelés fajtái

  23. Felhatalmazás fajtái - kötelezőség • Klasszikus fogalmak (US DoD szabvány) • Kötelező (mandatory) • csak központi jogosultság osztás • felhasználók nem módosíthatják a házirendet • Belátás szerint (discretionary) • megfelelő jogú felhasználó továbboszthatja a jogokat

  24. Felhatalmazás fajtái - típus • Integritás védelem • Objektumok címkézése • alacsony, közepes, magas… integritási szint • Ellenőrzés: • alacsonyabb szintű felhasználó nem olvashat/írhat magasabb szintű objektumot • Bell LaPadula (bizalmassági) és Biba (sértetlenségi) modellek • Hozzáférés vezérlési listák • objektum → (szereplő, engedélyek) • engedély: adatok írása, attribútumok olvasása…

  25. Felhatalmazás fajtái - típus Feltételek: „No writeup” – nem írhatok magamnál magasabb szintű objektumba„No read down” – nem olvashatok magamnál alacsonyabb szintű objektumból Feltételek: „No readup” – nem olvashatok magamnál magasabb szintű objektumból„No write down” – nem írhatok magamnál alacsonyabb szintű objektumba • Integritás védelem • Objektumok címkézése • alacsony, közepes, magas… integritási szint • Ellenőrzés: • alacsonyabb szintű felhasználó nem olvashat/írhat magasabb szintű objektumot • Bell LaPadula (bizalmassági) és Biba (sértetlenségi) modellek • Hozzáférés vezérlési listák • objektum → (szereplő, engedélyek) • engedély: adatok írása, attribútumok olvasása…

  26. Hozzáférés vezérlési listák A hozzáférési maszk (accessmask) tartalmazza, hogy pontosan milyen műveletekre vonatkozik az engedély * + OP1() + OP2() + mask Szereplő Engedély (Permission) Védett objektum

  27. Hozzáférés vezérlési listák Egy védett objektumhoz engedélyek halmaza rendelhető * * * + mask Szereplő Engedély (Permission) Védett objektum Néha sorrendezést is megkövetel

  28. Szerep alapú hozzáférés-vezérlés A szerep fogalom hierarchikus szereplő csoportosítási lehetőséget ad. Role-based Access Control (RBAC) * * * * * + mask Szereplő Szerep (Role) Engedély (Permission) Védett objektum A szükséges engedélyek száma kezelhető szintre csökken

  29. Hierarchikus objektumok Ha a védett objektumok között természetszerűen hierarchia van… 1 * * * * * * + mask +inherit Szereplő Szerep (Role) Engedély (Permission) Védett objektum …egy engedély vonatkozhat egész részfára is öröklődéssel(inheritance)

  30. Miből áll egy felhasználói fiók User memberOf Group A felhasználó csoporttagság valójában egy RBAC megvalósítási lehetőség + Name(+ Purpose…) (+ SharedSecret)

  31. Tartalom • Számítógépes biztonság bevezető • Felhasználó kezelés, hitelesítés • Linux alatt • Windows alatt • Központosított címtárak • Engedélyezés • 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 • Engedélyezés Linux alatt • Engedélyezés Windows alatt • Biztonsági alrendszer alapok • Központosított hozzáférés-vezérlés, csoportházirendek

  32. POSIX fájlrendszer jogosultságok • Alapelemek • Szereplő: user(felhasználó) • Szereplő hierarchia: group (csoport) • Minden userteszőlegesen sok group tagja lehet • Minden group tetszőlegesen sok usert tartalmazhat • Group további groupot nem tartalmazhat • Jogok • 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 • 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 • Az execute bit tiltó hatása implicit módon öröklődik a könyvtárakon, más öröklés nincs

  33. POSIX fájlrendszer jogosultságok

  34. Linux fájlrendszer jogosultságok • Tulajdonos manipulálása: chown • csak rootnak engedélyezett, nem delegálható • Jogosultság bitek módosítása: chmod • Csak tulajdonosnak engedélyezett • 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)

  35. Fájlrendszeren kívüli engedélyek • Speciális kiváltságok root felhasználó nevében futó folyamatoknak • Kérhetnek valós idejű ütemezési prioritást • 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ó programjai • 1024 alatti TCP/UDP porton hallgathatnak • 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 • Legkevesebb jog elve (principle of leastprivileges) • POSIX Capabilities mechanizmus – globális rendszerszintű erőforrásokra vonatkozó jogosultságok (ún. privilégiumok)

  36. Kitekintés • Finomabb felbontású jogosultságkezelés végrehajtható fájlokra • Platform szintű behatolás elleni védőmechanizmusok támogatására (PAX, grsecurity) • A védőmechanizmusok számos egyébként sértetlen programot tesznek működésképtelenné (pl. JavaVM) • Speciálisan kivételezni kell az ilyen alkalmazásokat fájlrendszerbe írt címkével (SELinuxSecurityLabels) • Alkalmazásokhoz hozzárendelt rendszerhívási profilok (AppArmor) – felfedi ha a „szokásoshoz” képest megváltozik az alkalmazás futása

More Related