Adatbázisok védelme
DBMS szinten:
Rendelkezésre állásIntegritásiHozzáférési
DBMS - OS
TöbbszintűSokszínűségKomplex objektumokDinamikus
Adatbázisok védelmi kérdései
Hozzáférési védelem
DBMS
OS
OS account
DBMS account
MAC
DAC
System priv.
ROLE
AUDITInt. control
MRL
Profile
Felhasználó azonosítás
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
Authentication
DES algoritmus
Data Encryption Standard, 1976)
blokk kódolás
egykulcsú
hatékony
kétirányú
rugalmas
DES
Adatbázis biztonsága
KL
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
módosításellenőrzés
lekérdezésellenőrzés
RDBMS
CRC : ellenőrző összeg képzéseegy blokknyi adatot egy bináris polinommal reprezentálpolinom 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
Integrity check
CRC algoritmus
FUNCTION CDCPARAMETERS szovegP, n, N1M = BITLSHIFT(szoveg,n) ; S = 0FOR 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)ENDFORRETURN S
speciális mod-2 polinom osztás művelet
M: 1010001101P: 110101R: 1110
CRC minta
Adatbázis biztonsága
védelmi módszerek
jogosultsági adatok
védelmistratégia
védelmi rendszer
felhasználók(szubjektumok) DB objektumok
Hozzáférés védelem
Decentralizált, DAC
Centralizált, MAC
Egyszintű
Többszintű
Szerep-orientáltRBAC
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
objektum
auto
dolgozo
kiado
szerviz
S,D
-
-
S,I,D
-
S,I,U
S
-
S
S
S
S
peter scott li234
szubjektum
művelet,feltétel SELECT INSERT DELETE ...
hozzáférési mátrix
Adatbázis biztonsága
KL
SQL védelmi utasítások: objektum jogok
GRANT művelet ON objektum TO szubjektum WITH GRANT OPTION;
REVOKE művelet ON objektum FROM szubjektumDENY művelet ON objektum TO szubjektum;
privilégiumok GRANT művelet TO szubjektum
WITH ADMIN OPTION;REVOKE művelet FROM szubjektum
rendszertáblákSELECT … FROM USER_COL_PRIVS;SELECT … FROM USER_SYS_PRIVS;
Felh. Obj.GRANT SELECT ON V TO T
JogGRANT UPDATE ON V TO T
T
T V
T
V
+S
+U
REVOKE UPDATE ON V FROM T
T V -S DENY SELECT ON V TO T
REVOKE SELECT ON V FROM T grant select on dd to probadeny select on dd to probarevoke select on dd from probacreate role r1grant select on dd to proba grant select on dd to r1grant r1 to probadeny select on dd to probarevoke 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
felhasználók csoportok objektumok
AccessMatrix
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 szubjektumGRANT rnev1 TO rnev2SET ROLE TO rnev IDENTIFIED BY jelszoALTER USER fnev DEFAULT ROLE lista
Role B
Role A
CREATE ROLE ACREATE ROLE BGRANT X TO A...GRANT A TO BGRANT V TO B...GRANT B TO U1GRANT S TO U1
U1
U2S
T
VW
X
YZ
USER A
USER B
ROLE F
ROLE C
TABLE T
TABLE Q
OBJ.PERM.
OBJ.PERM.
SYST.PRIV.
SYST.PRIV.
P1
P2
P3
P5P4
R1 R2
U1
U2
Adatbázis biztonsága
UZEMDOLGOZO U
SI
SQL parancsok:…
Oracle mintapélda
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
U
C
S
TS
Employee
Black’s Employee
Brown: read, write
Black, Brown: read, writeBrown
Black
Word Processor
TH
Egy trójai faló modulépül be a programba
Megosztott program Olvashat !!
Adatot átmásolhat !!!
DAC és a trójai faló
Bell & LaPadula model
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.
U
C
S
TS
olvasás
olvasás, írás
bővítés
Adatbázis biztonsága
minta MAC védelmi séma
S1(T)S; DB,OS S2
TS;DB,OS,NW
S3TS;OS
S4 (U)C; DB
O1S;DB
O2TS;OS
O3U; NW,DB
O4C; DB
RWRW
O5U; DB
R
W
A
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
U
C
S
TS
UI
VIC
Dominancia a megbízhatóságnál
dominancia: I1 I2 S1 S2 és A1 A2
szintek: U < I < VI < Cszubjektumnál az U kódú mindent olvashatobjektumná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
O1{(S;DB),(VI;DB)}
O2{(TS;DB),(C,DB)}
O3{(U; DB),(I;DB)}
O5{(TS; DB),(I,DB)}
S1{(S;DB,OS),(I,DB)}{(C;DB),(VI;DB,OS)}
RWR
W
Adatbázis biztonsága
KL
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év kor oszt fiz TCJani C 45 S b1 S 34 C CIca U 23 S b1 U 12 C UTomi S 24 S b3 S 56 TS S
név kor oszt fizJani 45 b1 34Ica 23 b1 12Tomi 24 b3 56
név kor oszt fizJani NULL NULL 34Ica NULL b1 12
TS C
Adatbázis biztonsága
KL
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
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].
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].
Adatbázis biztonsága
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.
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], vagyt[Ai] NULL és s[Ai] NULL.
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| OFFUSE .. EXCLUSIVE | SHAREDISEXCLUSIVE()ALIAS()DBF()DBC()CLOSE TABLE (ALL)CLOSE DATABASE (ALL)
PRIVATE DATA SESSION
VFP zárolás
Kézi:RLOCK() FLOCK()ISRLOCKED()ISFLOCKED()UNLOCKSET REPROCESS TOON ERRORERROR()MESSAGE()
VFP zárolás
Pufferelés alapú:CURSORSETPROP(”BUFFERING”,n)n = 1,2,3,4,5CURSORGETPROP()TABLEUPDATE(n, tabla)n = 0,1,2,TABLEREVERT(n,tabla)
BEGIN TRANSACTIONEND TRANSACTIONROLLBACK