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

36
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Felhasználó- és jogosultságkezelés Tóth Dániel, Micskei Zoltán Operációs rendszerek (vimia219)

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

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

Page 1: Felhasználó- és jogosultságkezelés

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)

Page 2: Felhasználó- és jogosultságkezelés

2

Számítógépes rendszerek biztonsága Fontos ez?

Mindenkinek fontos?

Mikor fontos?

Page 3: Felhasználó- és jogosultságkezelés

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

Page 4: Felhasználó- és jogosultságkezelés

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

Page 5: Felhasználó- és jogosultságkezelé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)

Page 6: Felhasználó- és jogosultságkezelés

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?

Page 7: Felhasználó- és jogosultságkezelés

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

Page 8: Felhasználó- és jogosultságkezelés

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?

Page 9: Felhasználó- és jogosultságkezelés

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)

Page 10: Felhasználó- és jogosultságkezelés

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…

Page 11: Felhasználó- és jogosultságkezelés

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)

Page 12: Felhasználó- és jogosultságkezelés

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

Page 13: Felhasználó- és jogosultságkezelés

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

* *

*

Page 14: Felhasználó- és jogosultságkezelés

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

Page 15: Felhasználó- és jogosultságkezelés

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?

Page 16: Felhasználó- és jogosultságkezelés

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

Page 17: Felhasználó- és jogosultságkezelé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)

Page 18: Felhasználó- és jogosultságkezelés

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

Page 19: Felhasználó- és jogosultságkezelés

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

Page 20: Felhasználó- és jogosultságkezelés

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

Page 21: Felhasználó- és jogosultságkezelés

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

Page 22: Felhasználó- és jogosultságkezelés

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

Page 23: Felhasználó- és jogosultságkezelés

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

Page 24: Felhasználó- és jogosultságkezelés

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…

Page 25: Felhasználó- és jogosultságkezelés

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

Page 26: Felhasználó- és jogosultságkezelés

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()

Page 27: Felhasználó- és jogosultságkezelés

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

Page 28: Felhasználó- és jogosultságkezelés

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

Page 29: Felhasználó- és jogosultságkezelés

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)

Page 30: Felhasználó- és jogosultságkezelés

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

Page 31: Felhasználó- és jogosultságkezelés

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

Page 32: Felhasználó- és jogosultságkezelés

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

Page 33: Felhasználó- és jogosultságkezelés

34

POSIX fájlrendszer jogosultságok

Page 34: Felhasználó- és jogosultságkezelés

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

Page 35: Felhasználó- és jogosultságkezelés

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)

Page 36: Felhasználó- és jogosultságkezelés

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