Adatbázis rendszerek II. IX. előadás Adatbázisok védelmi eszközei Előadó: Barabás Péter Dátum: 2008. 11.27.
Védelem általában jogosulatlan hozzáférések információ védelme nem csak DBMS rendszerekben van OS védelmi rendszere login korlátozott hozzáférés hozzáférési listák (ACL) privilégium rendszerek Oracle esetén azonosítás szükséges korlátozott hozzáférés Adatbázisok védelmi eszközei 2
RDBMS védelem biztonság = rendeltetésszerű, elvárt működés adatok hozzáférés védelme (security) adatok megbízhatósága (integrity) rendelkezésre állás, adatvesztés elleni védelem (availability) Adatbázisok védelmi eszközei 3
Védelmi mechanizmusok bejelentkezés ellenőrzés naplózás hozzáférés ellenőrzés titkosítás következtetés ellenőrzés adatáramlás ellenőrzés Adatbázisok védelmi eszközei 4
Védelmi mechanizmusok II. hozzáférés ellenőrzése (access control) adott igénylő és igényelt objektum esetén eldönti, hogy engedélyezhető-e az igényelt hozzáférési mód vagy sem pl. más tábláinak olvasását nem engedi a rendszer bejelentkezési ellenőrzés név + jelszó megadása egyutas hash függvénnyel kódolják a jelszót következtetési lehetőségek kizárásának mechanizmusa (inference control) jogosult adatok alapján ne lehessen nem jogosult adatokra következtetni aggregációs lekérdezések kiadhatók, teljes tábla olvasása nem hibaüzenetek: az objektum nem létezik v. nincs jogosultság megoldások: megadott egyedszám alatt nem lehet aggregációs lekérdezést hívni hibaüzenetek kétértelművé tétele Adatbázisok védelmi eszközei 5
Védelmi mechanizmusok III. titkosítás módszere (cryptography) olvasott adatok megértésének megakadályozása sok titkosítási változat: DES, FRS, RSA, stb. adatáramlás ellenőrzés (data flow control) feladata a felhasználóhoz kerülő és onnan továbbjutó adatok áramlásának ellenőrzése nehezen ellenőrizhető véletlenül, gondatlanságból ne juttasson a felhasználó bizalmas információkat jogosulatlan felhasználóknak naplózás (audit) utólagos ellenőrzések miatt elrettentő később bizonyító hatása van jelentős helyigény felhasználó szűk köre alkalmazza Adatbázisok védelmi eszközei 6
Védelmi rendszer jogosultsági adatok felhasználók, szubjektumok védelmi módszerek védelmi stratégia védelmi rendszer DB objektumok Adatbázisok védelmi eszközei 7
Védelmi stratégiák DAC (discretionary access control) védelmi adatok kezelése decentraizált minden objektumnak és felhasználónak egyedi azonosító kóddal kell rendelkeznie az objektumhoz való hozzáférést alapvetően az objektum tulajdonosa határozza meg a tulajdonos adományozhat, ill. megvonhat jogokat más személyektől nem szükséges központi nyilvántartás a védelmi adatokról nincs szükség központi ellenőrzésre az objektumok fölött tulajdonos szabja meg a jogokat, az ő felelőssége a védelem megfelelő szinten tartása Adatbázisok védelmi eszközei 8
Védelmi stratégiák II. MAC (mandatory access control) központi menedzser felügyeli a védelmi kódokat minden egyed és objektum védelmi kódját egyetlen központi helyről határozzák meg hozzáférés engedélyezése az objektum és a kérelmező védelmi kódjai alapján történik Előnyök: sokkal jobban ellenőrizhető a hozzáférés és az adatáramlás a védelmi kódok strukturáltabbak Hátrányok: valamivel nagyobb erőforrásigény több, részletesebb információ tárolása Adatbázisok védelmi eszközei 9
DAC modell Jellemzői: minden objektumhoz külön feljegyzésre kerül, hogy mely felhasználók férhetnek hozzá hozzáférések típusai: olvasás (r), írás (w), végrehajtás (x) az objektumok és felhasználók kapcsolatát egy hozzáférési mátrixszal szokás reprezentálni Adatbázisok védelmi eszközei 10
Hozzáférési mátrix szubjektum PETER SCOTT UJ6C7X AUTO S,D - S DOLGOZO - S,I,U S KIADO - S S SZERVIZ S,I,D - S objektum művelet, feltétel SELECT INSERT DELETE Adatbázisok védelmi eszközei 11
Engedélyezhető műveletek objektumtípusonként Oracle-ben TABLE VIEW SEQUENCE ALTER X X DELETE X X INDEX X INSERT X X REFERENCES X SELECT X X X UPDATE X X Adatbázisok védelmi eszközei 12
Jogok adása/vétele Alapesetben: objektumnak van tulajdonosa, a létrehozója teljes hozzáférési jogkörrel rendelkezik más felhasználó semmilyen hozzáférési jogot nem kap Jogok megadása: GRANT jog ON objektum TO felhasználó [WITH GRANT OPTION]; jog: ALTER, DELETE, INDEX, felhasználó: lehet PUBLIC WITH GRANT OPTION: továbbadható a jog Jogok elvétele: REVOKE jog ON objektum FROM felhasználó; Adatbázisok védelmi eszközei 13
Rendszerprivilégiumok művelet csoportra vonatkozik független az érintett objektumtól Pl. DELETE ANY TABLE privilégium a rendszer bármely táblájából törölhet Oracle rendszerprivilégiumok: CREATE SESSION hozzáférés az adatbázishoz CREATE TABLE tábla létrehozás saját sémában CREATE ANY TABLE tábla létrehozás bármely sémában egy új felhasználó semmilyen jogkörrel nem rendelkezik Adatbázisok védelmi eszközei 14
Rendszerprivilégiumok adása/vétele Rendszerprivilégium adományozása: GRANT priliégium TO felhasználó [WITH ADMIN OPTION]; WITH ADMIN OPTION: a jog tovább adható Rendszerprivilégium visszavonása: REVOKE priliégium FROM felhasználó; Adatbázisok védelmi eszközei 15
Jogosultságok letiltása Példa jogosultságok egy vállalatnál: C1(A,B,C,D,E) C2(A,C,D,E) C3(A,B,C,D) Jogosultság tiltása: DENY jog ON objektum TO felhasználó; Tiltás visszavonása: REVOKE jog ON objektum FROM felhasználó; Adatbázisok védelmi eszközei 16
Rendszertáblák adományozott jogok és privilégiumok rendszertáblákban vannak tárolva felhasználó az őt érintő részletétről kaphat információt rendszer view-k lekérdezésével View-k azonosítója: USER_COL_PRIVS: objektum jogok USER_SYS_PRIVS: rendszer privilégiumok Lekérdezés: SELECT * FROM USER_SYS_PRIVS; Adatbázisok védelmi eszközei 17
Szerepkör mechanizmus Szerepkör (role): privilégium, jogkör halmaz felhasználókhoz lehet rendelni Adományozása után a felhasználó a szerepkörben foglalt összes privilégiummal, jogkörrel rendelkezni fog Visszavonásával a privilégiumokat, jogköröket is visszavonjuk a felhasználótól Adatbázisok védelmi eszközei 18
Szerepkörök kezelése Szerepkör létrehozása: Szerepkör törlése CREATE ROLE szerep; DROP ROLE szerep; Jogosultságok, privilégiumok hozzárendelése: GRANT jog ON objektum TO szerep; GRANT privilégium TO szerep; Jogosultságok, privilégiumok kivétele a szerepből: REVOKE jog ON objektum FROM szerep; REVOKE privilégium FROM szerep; Adatbázisok védelmi eszközei 19
Szerepek adományozása Több különböző felhasználóhoz is lehet rendelni a szerepeket: Visszavonása: GRANT szerep TO felhasználó; REVOKE szerep FROM felhasználó; A szerepek egymáshoz is rendelhetők: GRANT szerep1 TO szerep2; Adatbázisok védelmi eszközei 20
Példa P1 P2 R1 R2 P3 U1 P4 P5 U2 minta DAC védelmi séma Privilégiumok (vagy objektum jogkör): P1,P2,P3,P4,P5 Szerepkörök: R1,R2 Felhasználók: U1,U2 Adatbázisok védelmi eszközei 21
Példa utasítások CREATE ROLE R1; CREATE ROLE R2; GRANT P1 TO R1; GRANT P2 TO R1; GRANT P3 TO R1; GRANT R1 TO R2; GRANT P4 TO R2; GRANT R2 TO U1; GRANT R1 TO U2; GRANT P5 TO U2; Adatbázisok védelmi eszközei 22
Opcionális szerepek felhasználó nem kapja meg közvetlenül bejelentkezés után explicite kérnie kell egyedi jelszót lehet hozzá kapcsolni Létrehozása három lépésben megy végbe: 1. CREATE ROLE szerep [IDENTIFIED BY jelszó]; 2. GRANT szerep TO felhasználó; így default, bejelentkezés után azonnal él 3. ALTER USER felhasználó DEFAULT ROLE kifejezés; minden szerep, ami nem default, az opcionális kifejezés: ALL, NONE, ALL EXCEPT szereplista Adatbázisok védelmi eszközei 23
Opcionális szerepek II. szerepek felvételét a felhasználónak kérnie kell: SET ROLE szerep [IDENTIFIED BY jelszó]; a felvett szerepek leadása: SET ROLE NONE; egyébként a session végéig él Adatbázisok védelmi eszközei 24
MAC modell szigorúbb védelmi előírások DAC nem megfelelő információk tetszőlegesen áramolhatnak jogosulatlan hozzáférések is történhetnek MAC: egységesen történik a hozzáférések szabályozása minden felhasználó kap egy titkossági kódot területjelző titkossági szint Adatbázisok védelmi eszközei 25
Titkossági kód L=(S,A) S: titkosság szintje Unclassified Classified Secret TopSecret A: terület jelzője szigorúsági reláció a titkossági szintek között: U < C < S < TS Adatbázisok védelmi eszközei 26
Titkossági kód II. Területek között tartalmazási relációk területkódok megadása elemi területek listájával ( {bérügy, pénzügy} ) Titkossági szint jelentése: objektum esetén: mennyire tekinthető titkosnak az adott adat felhasználó esetén: a felhasználó milyen titkossági szintű adathoz férhet hozzá Adatbázisok védelmi eszközei 27
Dominancia jogosultság eldöntésénél az objektum és a felhasználó védelmi kódjainak viszonya a meghatározó olvashatunk egy objektumot: S(user) S(obj) A(user) A(obj) L 1 kódot dominálja L 2 kód, ha L 1 L 2 S 1 S 2 és A 1 A 2 a kódok halmaza csak részben rendezett a dominancia relációra nézve Adatbázisok védelmi eszközei 28
Műveletek Műveletcsoportok: olvasás (R): csak olvasás, módosítás nélkül írás (W): amikor olvassuk és módosítjuk az adatelemet bővítés (A): amikor csak új adatelemet írhatunk Adatbázisok védelmi eszközei 29
Trusted és untrusted felhasználók Trusted (megbízható) felhasználó: az információkat nem szolgáltatja ki jogosulatlan személyek felé Untrusted(nem megbízható) felhasználó: mindent meg kell tennünk, hogy ne tudjon információt kiszolgáltatni jogosulatlan személyeknek Adatbázisok védelmi eszközei 30
Szabályok (untrusted user) csak olyan erőforrást olvashat, melynek dominálja a kódját nem titkosabb, az ő területébe eső adatot olvashat csak olyan erőforrást írhat, melynek kódja megegyezik az ő kódjával az adat titkossági szintje és területkódja megegyezik a felhasználó kódjaival csak olyan erőforrást bővíthet, melynek kódja dominálja az ő kódját csak olyan adatokat fűzhet be, melyek legalább olyan titkossági szinten vannak, mint a felhasználó a felhasználótól alacsonyabb szintű objektumok egyáltalán nem módosíthatók Adatbázisok védelmi eszközei 31
Szabályok (trusted user) csak olyan erőforrást írhat és olvashat, melynek dominálja a védelmi kódját olyan erőforrást bővíthet, melynek kódja dominálja az ő kódját megbízhatóság = nem fogja alacsonyabb szintre levinni az adatokat Adatbázisok védelmi eszközei 32
Minta védelmi séma S4(U) L(C;{DB}) S3 L(TS;{OS}) S1(T) L(S;{DB,OS}) A R S2 L(TS;{DB,OS,NW}) RW RW W O1 L(S;{DB}) O5 L(U;{DB}) O2 L(TS;{OS}) O3 L(U;{NW,DB}) O4 L(C;{DB}) Adatbázisok védelmi eszközei 33
Trusted Oracle rendszer nagyobb védelmi igénnyel rendelkező információs rendszereknél tipikus alkalmazási területek: kormányzati és katonai információs rendszerek SeaView modellen alapszik alapja a MAC vannak DAC elemei is Adatbázisok védelmi eszközei 34
SeaView modell újítás a MAC-hoz képest: megbízhatósági kód: az adat mennyire végleges, biztos formátuma hasonló a védelmi kódhoz I=(C,A) C: a megbízhatóság, fontosság szintje C teljesen megbízható, VI igen megbízható I kevésbé megbízható U nem megbízható A: területjelző ({T 1,T 2, } Megbízhatósági reláció: C>VI>I>U Adatbázisok védelmi eszközei 35
Megbízhatósági dominancia megbízhatósági szint: mennyire bízunk meg a felhasználóban mennyire lehet számára a még bizonytalan információt kiadni Dominancia: I 1 I 2 C 1 C 2 és A 1 A 2 Adatbázisok védelmi eszközei 36
Hozzáférési osztály védelmi és megbízhatósági kódok együttese C={L,I} a felhasználó csak a kevésbé titkos és jobban megbízható adatot olvashatja Dominancia: C 1 C 2 L 1 L 2 és I 1 I 2 L 2 dominálja L 1 -et és I 1 dominálja I 2 -t a felhasználó a kevésbé titkos, de nagyobb mértékben megbízható adatokhoz férhet hozzá Adatbázisok védelmi eszközei 37
Olvasási, írási hozzáférési osztályok eltérés a MAC-tól olvasási és hozzáfűzési tartomány átfedi egymást minden felhasználó kap L min, L max, I min, I max kódot olvasási, írási hozzáférési osztályok C R = {L max,i min }: olvasási osztály C W = {L min,i max }: írási osztály az olvasási osztály dominálja az írásit Adatbázisok védelmi eszközei 38
SeaView modell működési axiómái Egy s felhasználó csak azon erőforrást olvashatja, melynek hozzáférési osztályát a felhasználó olvasási osztálya dominálja C R (s) C(o) legfeljebb olyan titkos adatokat olvashat, mint az ő szintje legalább olyan megbízható adatokat olvashat, mint az ő szintje Egy felhasználó csak azon erőforrást bővítheti, melynek elérési osztálya dominálja a felhasználó írási osztályát: C W (s) C(o) legalább olyan titkosak, mint az ő szintje nem megbízhatóbbak a z ő megbízhatósági szintjénél Módosítás csak a felhasználóval azonos szintű objektumok esetén lehetséges C W C R Adatbázisok védelmi eszközei 39
Példa S1 CR={(S;DB,OS),(I;DB)} CW={(C;DB),(VI;DB,OS)} RW O1 C={(S;DB),(VI;DB)} R W O2 C={(TS;DB),(C;DB)} O3 C={(U;DB),(I;DB)} O5 C={(TS;DB),(I;DB)} Adatbázisok védelmi eszközei 40
Példa II. S1 olvashatja és írhatja is O1 objektumot C R (S1) C(O1); C W (S1) C(O1); S1 az O3-at csak olvashatja C R (S1) C(O3); C W (S1) C(O3); O5 objektumot S1 csak írni tudja C R (S1) C(O5); C W (S1) C(O5); O2 objektum se nem olvasható, se nem írható Adatbázisok védelmi eszközei 41
Példa III. TS O5 O2 S O1 C U O3 U I VI C Adatbázisok védelmi eszközei 42
Köszönöm a figyelmet! Adatbázisok védelmi eszközei 43