360 likes | 500 Views
Adatbázisok védelme. DBMS - OS Többszintű Sokszínűség Komplex objektumok Dinamikus. DBMS szinten: Rendelkezésre állás Integritási Hozzáférési. Adatbázisok védelmi kérdései. Hozzáférési védelem. OS. DBMS. DBMS account. System priv. MAC. MRL. ROLE. DAC. OS account.
E N D
Adatbázisok védelme DBMS - OS Többszintű Sokszínűség Komplex objektumok Dinamikus DBMS szinten: Rendelkezésre állás Integritási Hozzáférési
Hozzáférési védelem OS DBMS DBMS account System priv. MAC MRL ROLE DAC OS account Int. control Profile AUDIT
Felhasználó azonosítás Authentication OS szintű DBMS szintű vegyes Oracle, SQLServer,... Megbízható OS, Hálózatos struktúra, Rugalmasság,…. Jelszó tárolása : titkosítás, egyutas-kódolás, DBMS
DES algoritmus Data Encryption Standard, 1976) blokk kódolás egykulcsú hatékony kétirányú rugalmas
Adatbázis biztonsága Integrity check: az adatok egységességének, az értékek épségének ellenőrzése ellenőrző összegek alkalmazása jogosult alkalmazás védelmi szűrő titkosítás RDBMS módosítás ellenőrzés lekérdezés ellenőrzés KL
Integrity check CRC : ellenőrző összeg képzése egy blokknyi adatot egy bináris polinommal reprezentál polinom osztáson alapszik, a maradék lesz az ellenőrző összeg M : k bit hosszú adat.F : n bit hosszú ellenőrző összegT = M + FP : n+1 hosszú minta (osztó). T osztható P-vel T= M*x^n + R M*x^n / P = Q + R/P
CRC algoritmus FUNCTION CDC PARAMETERS szoveg P, n, N1 M = BITLSHIFT(szoveg,n) ; S = 0 FOR i = N1-1 TO 0 STEP -1 S = BITOR( BITLSHIFT(S,1), IIF( BITTEST(M,i),1,0)) IF BITTEST(S,n) THEN S = BITXOR(S,P) ENDIF S = BITAND(S,2^n-1) ENDFOR RETURN S speciális mod-2 polinom osztás művelet
CRC minta M: 1010001101 P: 110101 R: 1110
Adatbázis biztonsága jogosultsági adatok védelmi stratégia felhasználók (szubjektumok) DB objektumok védelmi módszerek védelmi rendszer
Hozzáférés védelem Egyszintű Decentralizált, DAC Szerep-orientált RBAC Többszintű Centralizált, MAC
Adatbázis biztonsága A DAC védelmi modell: - decentralizált - hozzáférési mátrix alapú - tulajdonos szabja meg a jogokat - szubjektumok csoportokat alkothatnak szubjektum peter scott li234 művelet, feltétel SELECT INSERT DELETE ... auto S,D - S dolgozo - S,I,U S kiado - S S objektum szerviz S,I,D - S hozzáférési mátrix
Adatbázis biztonsága SQL védelmi utasítások: objektum jogok GRANT művelet ON objektum TO szubjektum WITH GRANT OPTION; REVOKE művelet ON objektum FROM szubjektum DENY művelet ON objektum TO szubjektum; privilégiumok GRANT művelet TO szubjektum WITH ADMIN OPTION; REVOKE művelet FROM szubjektum rendszertáblák SELECT … FROM USER_COL_PRIVS; SELECT … FROM USER_SYS_PRIVS; KL
GRANT SELECT ON V TO T Felh. Obj. Jog GRANT UPDATE ON V TO T T V +S V +U T REVOKE UPDATE ON V FROM T T DENY SELECT ON V TO T T V -S REVOKE SELECT ON V FROM T grant select on dd to proba deny select on dd to proba revoke select on dd from proba create role r1 grant select on dd to proba grant select on dd to r1 grant r1 to proba deny select on dd to proba revoke select on dd from proba exec sp_addrole 'r1' exec sp_addrolemember 'r1','proba'
Adatbázis biztonsága RBAC védelmi modell: centralizált hozzáférés adminisztrálás szubjektumok nem rendelkeznek az objektumokkal csoportokhoz rendeljük a jogosultságokat a szubjektumokhoz csoportokat rendelünk lehet egyszintű vagy hierarchikus Access Matrix felhasználók csoportok objektumok
Adatbázis biztonsága Szerepkörök (role): jogok hierarchikus halmaza CREATE ROLE rnev IDENTIFIED BY jelszo GRANT művelet ON objektum TO rnev GRANT rnev TO szubjektum GRANT rnev1 TO rnev2 SET ROLE TO rnev IDENTIFIED BY jelszo ALTER USER fnev DEFAULT ROLE lista CREATE ROLE A CREATE ROLE B GRANT X TO A ... GRANT A TO B GRANT V TO B ... GRANT B TO U1 GRANT S TO U1 T S U2 V Role B W Y Role A Z U1 X
USER A SYST. PRIV. SYST. PRIV. ROLE F OBJ. PERM. OBJ. PERM. ROLE C TABLE T TABLE Q USER B
Adatbázis biztonsága UZEM DOLGOZO U S I SQL parancsok:…
Adatbázis biztonsága Az MAC védelmi modell: centralizált hozzáférés adminisztrálás a szubjektumok csak a számunkra megadott kereteken belül rendelkezhetnek a jogosultságokkal titkossági kód: L(S,A) S : titkossági szint U < C < S < TS A : terület TS S C U
Olvashat !! Adatot átmásolhat !!! TH Egy trójai faló modul épül be a programba DAC és a trójai faló Brown: read, write Employee Word Processor Megosztott program Brown Black, Brown: read, write Black’s Employee Black
Adatbázis biztonsága • Az MAC működése: • dominancia: L1 L2 S1 S2 és A1 A2 • szabályok: • - untrusted felhasználó csak olyan erőforrást olvashat, • melynek dominálja a kódját, • untrusted felhasználó csak olyan erőforrást módosíthat, • melynek kódja megegyezik az ő kódjával, • untrusted felhasználó csak olyan erőforrást bővíthet, • melynek kódja dominálja az ő kódját. TS bővítés S olvasás, írás C olvasás U
Adatbázis biztonsága minta MAC védelmi séma
Adatbázis biztonsága A SeaView védelmi modell: kibővített MAC: megbízhatósági kód: I(C,A) C : megbízhatósági szint U < I < VI < C A : terület + DAC elemek TS S C C VI I U U
Dominancia a megbízhatóságnál dominancia: I1 I2 S1 S2 és A1 A2 szintek: U < I < VI < C szubjektumnál az U kódú mindent olvashat objektumnál a C kódút mindenki olvashatja Itt felfele irányban lehet olvasni, lefelé nem • Egy s felhasználó csak azon o erőforrást olvashatja, • melynek megbízhatósága a felhasználó megbízhatóságát • dominálja: I(o) I(s). • - Egy s felhasználó csak azon o erőforrást bővítheti, • melynek megbízhatóságát dominálja a felhasználó • megbízhatósága: I(o) I(s). • h
Adatbázis biztonsága A SeaView működése: hozzáférési osztály C = (L, I) dominancia: C1 C2 L1 L2 és I1 I2 szubjektumhoz olvasási és írási hozzáférési osztály: Cr, Cw szabályok: - Egy s felhasználó csak azon o erőforrást olvashatja, melynek elérési osztályát a felhasználó olvasási osztálya dominálja: CR(s) C(o). - Egy s felhasználó csak azon o 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). Cw Cr
Adatbázis biztonsága minta SeaView védelmi séma
Adatbázis biztonsága Többszintű táblák (MLR): mező szintű védelmi objektumok R(A1,s1,A2,s2,…,sr) egyazon relációnak több védelmi szinten létezhet előfordulása polyinstantiation : egy adatelem több különböző értékkel szerepelhet a különböző szinteken névkoroszt fiz TC Jani C 45 S b1 S 34 C C Ica U 23 S b1 U 12 C U Tomi S 24 S b3 S 56 TS S TS C névkor oszt fiz Jani 45 b1 34 Ica 23 b1 12 Tomi 24 b3 56 névkor osztfiz Jani NULL NULL 34 Ica NULL b1 12 KL
Adatbázis biztonsága Integritási szabályok a különböző nézetek között: - egyed integritási - hivatkozási - NULL érték kezelési - példány kapcsolati - általánosított függőségi Hivatkozási - ha FK (kapcsolókulcs), hogy Ai, Aj FK és t[Ai] NULL, t[Aj] NULL t[Ci] t[Cj]; - t'[PK] ref(FK), hogy t'[PK] t[FK]; - t'[CPK] t[CFK]. Egyed integritási - PK elsődleges kulcs attribútum halmaz; - Ai PK t[Ai] NULL; - Ai, Aj PK t[Ci] t[Cj]; - Ai PK t[Ci] t[CPK]. KL
Adatbázis biztonsága Null érték szabálya - t[Ai] NULL t[Ci] t[CPK]; - RC nem tartalmaz befoglalt rekordokat, ahol t befoglalja s-et, ha Ai-re: t[Ai, Ci] s[Ai, Ci], vagy t[Ai] NULL és s[Ai] NULL. Példány kapcsolati - RC'(RC, C'), ahol a filter függvény működése: t RC esetén, ahol t[CPK] C' : t' RC': t'[PK, CPK] t[PK, CPK] és Ai PK : t'[Ai, Ci] t[Ai, Ci], ha t[Ci] C'; <NULL, t[CPK]> egyébként. Általánosított függőségi RC elemére és Ai-re : (PK, CPK, Ci) Ai.
Trusted Oracle Védelmi szint jelzése: ROWLABEL pszeudó-mező Join-nál a minimum szint jön át CREATE TABLE dolgozo (…. CHECK (rowlabel BETWEEN .’ ‘. AND ‘.’.))
VFP zárolás Közvetett: SET EXCLUSIVE ON| OFF USE .. EXCLUSIVE | SHARED ISEXCLUSIVE() ALIAS() DBF() DBC() CLOSE TABLE (ALL) CLOSE DATABASE (ALL) PRIVATE DATA SESSION
VFP zárolás Kézi: RLOCK() FLOCK() ISRLOCKED() ISFLOCKED() UNLOCK SET REPROCESS TO ON ERROR ERROR() MESSAGE()
VFP zárolás Pufferelés alapú: CURSORSETPROP(”BUFFERING”,n) n = 1,2,3,4,5 CURSORGETPROP() TABLEUPDATE(n, tabla) n = 0,1,2, TABLEREVERT(n,tabla) BEGIN TRANSACTION END TRANSACTION ROLLBACK