adatbázisok védelme

36
Adatbázisok védelme DBMS szinten: Rendelkezésre állás Integritási Hozzáférési DBMS - OS Többszintű Sokszínűség Komplex objektumok Dinamikus

Upload: gefjun

Post on 11-Jan-2016

38 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Adatbázisok védelme

Adatbázisok védelme

DBMS szinten:

Rendelkezésre állásIntegritásiHozzáférési

DBMS - OS

TöbbszintűSokszínűségKomplex objektumokDinamikus

Page 2: Adatbázisok védelme

Adatbázisok védelmi kérdései

Page 3: Adatbázisok védelme

Hozzáférési védelem

DBMS

OS

OS account

DBMS account

MAC

DAC

System priv.

ROLE

AUDITInt. control

MRL

Profile

Page 4: Adatbázisok védelme

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

Page 5: Adatbázisok védelme

DES algoritmus

Data Encryption Standard, 1976)

blokk kódolás

egykulcsú

hatékony

kétirányú

rugalmas

Page 6: Adatbázisok védelme

DES

Page 7: Adatbázisok védelme

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

Page 8: Adatbázisok védelme

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

Page 9: Adatbázisok védelme

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

Page 10: Adatbázisok védelme

M: 1010001101P: 110101R: 1110

CRC minta

Page 11: Adatbázisok védelme

Adatbázis biztonsága

védelmi módszerek

jogosultsági adatok

védelmistratégia

védelmi rendszer

felhasználók(szubjektumok) DB objektumok

Page 12: Adatbázisok védelme

Hozzáférés védelem

Decentralizált, DAC

Centralizált, MAC

Egyszintű

Többszintű

Szerep-orientáltRBAC

Page 13: Adatbázisok védelme

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

Page 14: Adatbázisok védelme

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;

Page 15: Adatbázisok védelme

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'

Page 16: Adatbázisok védelme

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

Page 17: Adatbázisok védelme

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

Page 18: Adatbázisok védelme

USER A

USER B

ROLE F

ROLE C

TABLE T

TABLE Q

OBJ.PERM.

OBJ.PERM.

SYST.PRIV.

SYST.PRIV.

Page 19: Adatbázisok védelme

P1

P2

P3

P5P4

R1 R2

U1

U2

Adatbázis biztonsága

UZEMDOLGOZO U

SI

SQL parancsok:…

Page 20: Adatbázisok védelme

Oracle mintapélda

Page 21: Adatbázisok védelme

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

Page 22: Adatbázisok védelme

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ó

Page 23: Adatbázisok védelme

Bell & LaPadula model

Page 24: Adatbázisok védelme

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

Page 25: Adatbázisok védelme

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

Page 26: Adatbázisok védelme

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

Page 27: Adatbázisok védelme

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

Page 28: Adatbázisok védelme

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

Page 29: Adatbázisok védelme

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

Page 30: Adatbázisok védelme

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

Page 31: Adatbázisok védelme

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

Page 32: Adatbázisok védelme

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.

Page 33: Adatbázisok védelme

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 ‘.’.))

Page 34: Adatbázisok védelme

VFP zárolás

Közvetett:SET EXCLUSIVE ON| OFFUSE .. EXCLUSIVE | SHAREDISEXCLUSIVE()ALIAS()DBF()DBC()CLOSE TABLE (ALL)CLOSE DATABASE (ALL)

PRIVATE DATA SESSION

Page 35: Adatbázisok védelme

VFP zárolás

Kézi:RLOCK() FLOCK()ISRLOCKED()ISFLOCKED()UNLOCKSET REPROCESS TOON ERRORERROR()MESSAGE()

Page 36: Adatbázisok védelme

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