1 / 39

Hitelesítés és engedélyezés

Operációs rendszerek (vimia219). Hitelesítés és engedélyezés. dr. 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

bena
Download Presentation

Hitelesítés és engedélyezé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) Hitelesítés és engedélyezés dr. 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 • 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ő

  5. Biztonságot biztosító eszközök (példák) • Kriptográfia • Kommunikáció sértetlenségéhez, bizalmasságához kell • Hálózati behatoláselleni védelem • Redundancia,újrakonfigurálás • Rendelkezésre állás • Platform szintű behatolás elleni védelem • Rendszeren futó alkalmazások sértetlensége • 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ók kezelése, 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 gép el tudja dönteni, hogy ki a személy, aki előtte ül • 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épen belül futó alkalmazások valamint az OS között • Gép és gép között valamilyen hálózaton át • Hitelesítési protokollok kellenek • Gépen belül ill. gépek között csak az „amit tud” séma • Használható bonyolult kriptográfiai számítás (embernél fejben nyilván nem)

  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 Linux alatt User + UID + name + password + shell + homedirectory + comment + expirydate Fiókot azonosítja UNIX/Linux esetén: UID (integer) (root 0, többiek általában 1000-…)

  12. 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 * *

  13. Felhasználói fiókok Linux alatt • Segítség: man parancs • man 5 passwd • Felhasználó és csoportok tárolása fájlokban: • /etc/passwd • /etc/shadow • /etc/group • Létrehozás, módosítás, törlés • useradd, usermod, userdel • groupadd, groupmod, groupdel • passwd

  14. Identitás váltása • Folyamat identitása menet közben változhat • Real UID vs. Effective UID • id • Ki vagyok én? • su • váltás egy adott felhasználóra • adott felhasználó jelszavát kéri • su – Login shellt indít (környezeti változók miatt fontos) • sudo • parancs végrehajtása más nevében • saját jelszót kéri + jog kell hozzá (ld. /etc/sudoers)

  15. Futó folyamatok • Ki vagyok én? • id • 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 • su, sudo parancsok

  16. Hitelesítési mechanizmusok Linuxon • PluggableAuthenticationModules (PAM) • Hitelesítési mechanizmusoknak keretrendszer • Cél: alkalmazástól leválasztani a mechanizmusokat • Mechanizmusok dinamikus betöltése • Mechanizmusok: /lib/security/ • Kerberos • Hálózati hitelesítési protokoll • Lásd RFC 4120

  17. Tartalom • Számítógépes biztonság bevezető • Felhasználók kezelése, 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és-vezérlési 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

  18. 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

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

  20. Engedélyezés gyakorlati kihívásai • Sok szereplő • Rendszerek különbözőképpen azonosítják őket • Sok védett objektum • 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

  21. Teljes hozzáférési mátrix példa KÉRDÉS: mekkora lenne ez egy mai normál rendszeren? CÉL: ehelyett valami jobb adatszerkezetet és ellenőrzési módszert találni

  22. Engedélyezési módszerek csoportosítása

  23. Engedélyezés fajtái - kötelezőség • Klasszikus fogalmak (US DoD szabvány) • Kötelező (mandatory) • jogosultságok osztása csak központilag • 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. Engedélyezés fajtái - típus • Integritás védelem • Címkék definiálása (+ teljes sorrendezés köztük) • Objektumok és szereplők címkézése • Kiértékelési szabályok definiálása: • Pl. ha kisebb az objektum címkéje, akkor olvashatom

  25. Integritás védelem Bell–LaPadula modell feltételei (bizalmasság) : „No readup” – nem olvashatok magamnál magasabb szintű objektumból„No write down” – nem írhatok magamnál alacsonyabb szintű objektumba Bibamodell feltételei (sértetlenség) : „No writeup” – nem írhatok magamnál magasabb szintű objektumba„No read down” – nem olvashatok magamnál alacsonyabb szintű objektumból • Példa: • Címkék: High (H) > Medium (M) > Low (L) • Szereplők: User1[H], User2[L] • Objektumok: Obj1[M], Obj2[H], Obj3[L] • Mi legyen a kiértékelési szabály?

  26. Engedélyezés fajtái - típus • Integritás védelem • Hozzáférés-vezérlési listák • objektum → (szereplő, engedélyek) • engedély: adatok írása, attribútumok olvasása…

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

  28. 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

  29. 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

  30. 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)

  31. RBAC megvalósítása memberOf Group User + Name(+ Purpose…) (+ SharedSecret) A felhasználói csoporttagság valójában egy RBAC megvalósítási lehetőség További példák: DB szerverek; ASP.NET Role Service…

  32. Tartalom • Számítógépes biztonság bevezető • Felhasználók kezelése, 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és-vezérlési 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

  33. 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 • Műveletek • olvasás [read], írás [write], végrehajtás/keresés [execute/search] • Engedélyek • Kötött szerkezetű (3x3bittel megadva) • Első a tulajdonos felhasználónak • Második a tulajdonos csoportnak • Harmadik mindenkinek • (Speciális bitek) • setuid, setgid: futtatásnál átveszi a fájl tulajdonosának 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

  34. Fájlrendszer jogok kiértékelése tulajdonos felhasználó tulajdonos csoport tulajdonos csoport jogai egyéb jogok tulajdonos jogai -rwxrw-r-- 1 meres students 0 May 6 09:33 test.txt

  35. 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 3 db oktális számmal (r:4, w: 2, e: 1), pl.: • 644 (user: read+write, group: read, other: read) • Módosítás pl.: • u+x (user add execute), g-w (groupremovewrite) • Listázás: ls-l illetve ls-l-n • (POSIX ACL is létezik, idő hiányában nem tárgyaljuk)

  36. Fájlrendszeren kívüli engedélyek • Egyéb védett objektumok: • „UNIX alatt minden erőforrás fájl” – jó elv, sajnos nem igaz következetesen mindenre • Sok periféria rendelkezik fájlrendszer interfésszel • Pl. merevlemez teljes tartalma: /dev/sd*, soros port /dev/ttyS* • A kernel és teljes fizikai memória: /dev/kmem, /dev/mem • Mi van azokkal a műveletekkel, • amik nem sima olvasás vagy írás jellegűek? • Nem kapcsolhatóak egy fájlhoz?

  37. 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ó • 1024 alatti TCP/UDP porton hallgathatnak • Kernel bizonyos konfigurációs beállításait megváltoztathatják, új modult tölthetnek be stb. • Miért rossz ez? • Webszerver: 80-as porton hallgat, de nem szabadna a rendszer konfigurációját módosítania • 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)

  38. 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

  39. Összefoglalás Hitelesítés és engedélyezés szétválasztása Engedélyezés általános fogalmai Megvalósítás UNIX/Linux környezetben

More Related