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
védelmi stratégia felhasználók, szubjektumok
védelmi módszerek
DB objektumok
védelmi rendszer 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
S,D
-
S
DOLGOZO
-
S,I,U
S
KIADO
-
S
S
S,I,D
-
S
AUTO
SZERVIZ
objektum
művelet, feltétel SELECT INSERT DELETE … Adatbázisok védelmi eszközei
11
Engedélyezhető műveletek objektumtípusonként OracleOracle-ben TABLE
VIEW
ALTER
X
DELETE
X
INDEX
X
INSERT
X
REFERENCES
X
SELECT
X
X
UPDATE
X
X
SEQUENCE X
X X
Adatbázisok védelmi eszközei
X
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: CREATE ROLE szerep;
Szerepkör törlése 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: GRANT szerep TO felhasználó;
Visszavonása: 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 R1
P2
R2 U1
P3 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) L1
kódot dominálja L2 kód, ha
◦ L1≤ L2 ⇔ S1 ≤ S2 és A1 ⊆ A2
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 (untrusted user) 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 (trusted user) 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})
S1(T) L(S;{DB,OS})
S3 L(TS;{OS})
S2 L(TS;{DB,OS,NW})
R
A W
RW
RW
O1 L(S;{DB}) O3 L(U;{NW,DB})
O5 L(U;{DB})
O2 L(TS;{OS})
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ő ({T1,T2,…} 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: ◦ I1≤ I2 ⇔ C1 ≤ C2 és A1 ⊆ A2
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: ◦ C1≤ C2 ⇔ L1 ≤ L2 és I1 ≥ I2 ◦ L2 dominálja L1-et és I1 dominálja I2-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 Lmin, Lmax, Imin, Imax kódot olvasási, írási hozzáférési osztályok CR = {Lmax,Imin}: olvasási osztály CW = {Lmin,Imax}: í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 ◦ CR(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: ◦ CW(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 CW
CR Adatbázisok védelmi eszközei
39
Példa S1 CR={(S;DB,OS),(I;DB)} CW={(C;DB),(VI;DB,OS)} RW R O1 C={(S;DB),(VI;DB)}
O3 C={(U;DB),(I;DB)}
W O2 C={(TS;DB),(C;DB)}
O5 C={(TS;DB),(I;DB)}
Adatbázisok védelmi eszközei
40
Példa II.
S1 olvashatja és írhatja is O1 objektumot ◦ CR(S1) ≥ C(O1); CW(S1) ≤ C(O1);
S1 az O3-at csak olvashatja ◦ CR(S1) ≥ C(O3); CW(S1) ≤ C(O3);
O5 objektumot S1 csak írni tudja ◦ CR(S1) ≥ C(O5); CW(S1) ≤ C(O5);
O2 objektum se nem olvasható, se nem írható Adatbázisok védelmi eszközei
41
Példa III. TS
O5
S
O2
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