Bezpecnost v databazich

bezpecnostni problemy, se kterymi se potykaji databazove systemy jsou obdobne, jako problemy operacnich systemu

Integrita baze dat

spravce baze musi zajistit, ze zmeny dat mohou provadet pouze opravneni uzivatele

system musi obsahovat prostredky prekonavajici nedostupnost polozky nebo dokonce cele baze

z hlediska OS a spravce systemu jde o ochranu relevantnich souboru a programu, zalohy, kontroly zarizeni atp.

z pohledu SRBD pristupuje system transakci a logu, umoznujici rekonstruovat stav databaze

Elementarni integrita

autorizovani uzivatele mohou vkladat data, ale cini chyby - ty musi SRBD zachycovat a vyzadat si opravu

metody:

field checks - test vhodnosti vkladanych dat: zda je to cislo, zda jde o jmeno, ...

kontrola pristupu - mechanismus resici kdo co muze menit, jak nalozit s koliznimi pripady, naslednost uprav

log zmen - zaznam o vsech provedenych zmenach, obsahuje puvodni a novou hodnotu

Auditabilita

je treba vest zaznamy o tom, kdo co delal s kterymi polozkami - nejen pro to, abychom byli schopni sledovat pristupy a zmeny, ale i pro dlouhodobe sledovani uzivatelu a nasledne rozhodovani, zda vyhovet zadosti

je nutne zvolit vhodnou granularitu - bloky, zaznamy, polozky

zde pristupuje tzv. pass through problem - uzivatel smi pristupovat k objektu ale tento mu nesmi byt predan (napr. pri vyhledavani)

uzivatel muze zjistit hodnotu polozky i bez primeho dotazu - nestaci log zadosti o pristup k odhadu toho, co vi

Autentizace uzivatelu

SRBD potrebuje presne vedet, komu odpovida

protoze vsak zpravidla bezi jako uzivatelsky proces, nema spolehlive spojeni s jadrem OS a tedy musi provadet vlastni autentizaci

Dostupnost

SRBD ma vlastnosti systemu a aplikacniho programu zaroven - bezi jako program a pouziva sluzeb systemu, pro mnoho uzivatelu je vsak jedinym pracovnim prostredim

musi rozhodovat soucasne zadosti vice uzivatelu

musi byt schopen odeprit poskytnuti i nechranenych dat aby nedoslo ke kompromitaci utajovanych informaci

Spolehlivost a integrita

v prostredi databazi jsou tyto pojmy jeste dulezitejsi, nez obvykle

jde nam o zachovani techto tri vlastnosti:

  1. integrita databaze - celkova spravnost, ochrana pred technickymi zavadami a ponicenim globalnich struktur
  2. elementarni integrita - ze zmeny a zaznamy mohou provadet pouze autorizovane entity
  3. elementarni spravnost - ze jsou prijata jen korektni data odpovidajici typem, hodnotou, ...

Dale se budeme zabyvat mechanismy pro udrzovani techto vlastnosti.

- tyto nejsou absolutni, napr. nemohou zabranit opravnenym entitam vkladat nespravna, lec typem a ostatnimi atributy akceptovatelna data

Ochrana poskytovana OS

DBS jsou soubory a programy - tedy spadaji pod standardni obranne mechanismy OS:

ochrana souboru, kontrola pristupu, zalohy, testy integrity na urovni systemu, ...

Dvoufazovy update

problemem je selhani vypocetniho systemu behem provadeni modifikace dat

proces modifikace rozdelime na dve faze:

  1. v prubehu prvni faze - zamer (intent) se provede nacteni relevantnich dat, uzamceni zaznamu, vytvoreni pomocnych zaznamu a kalkulace vysledku
    posledni udalosti prvni faze je operace commit
  2. v ramci druhe faze jsou provadeny trvale zmeny dat s ohledem na data ziskana v prvni fazi (= zapsani vysledku)

Pokud nektera z fazi nedobehne, muze byt snadno opakovana, po ukonceni faze je system konzistentni.

Redundance / Vnitrni konzistence

databaze casto obsahuji ruzne redundantni informace za ucelem odhaleni chyb, zvyseni spolehlivosti, nebo docileni potrebne rychlosti

Detekcni a samoopravne kody

jde o vhodne zpusoby zakodovani informaci pridanim vhodne redundance tak, aby bylo s co mozna nejvetsi pravdepodobnosti detekovat nahodne zmeny

samoopravne kody maji navic schopnost lokalizovat a vycislit jiste mnozstvi chyb, takze mohou byt opraveny

vzdy pri ukladani je zaznam zakodovan, pri nacitani je kontrolovana jeho spravnost

k dispozici je cela reda kodu pro ruzne ucely

Stinove zaznamy (Shadow fields)

vybrane atributy nebo vety jsou ulozeny v nekolika kopiich

v pripade nedostupnosti nebo chyby v originalu je pouzita kopie

metoda ucinna lec narocna na prostor

Zotaveni

SRBD musi vest log o vsech akcich, zejmena o zmenach

v pripade havarie potom na zaklade techto zaznamu a vhodne zalozni kopie znovu vygeneruje aktualni stav

Paralelismus / Konzistence

SRBD musi zajistit soucasny pristup vice uzivatelu, vyresit konflikty plynouci z situaci, kdy dochazi k soucasnemu zapisu vice hodnot do stejne polozky, nebo zapisu zavisejicim po predchozim cteni polozky

Monitory

jednotky SRBD zajistujici strukturalni integritu databaze - testuji, zda vkladana data typove odpovidaji, zda jsou konzistentni s ostatnimy daty v systemu atd.

Porovnani mezi

vkladana hodnota je testovana na prislusnost do jisteho intervalu, meze intervalu mohou byt urceny i dosti komplikovanou funkci zavisici na jinych hodnotach v databazi

tento test muze byt rovnez pouzit pokud je podezreni, ze ulozena data jsou poskozena

Stavova omezeni

popisuji podminky, ktere musi cela databaze splnovat

nejsou-li stavova omezeni splnena, jsou data v databazi vadna

napr. ve skladu nelze mit -5,1 rohliku

Tranzitivni omezeni

jsou omezeni, ktere musi splnovat obsah databaze pred provedenim urcite operace

napr. pred prodejem 1 rohliku nesmi byt sklad rohliku prazdny

Senzitivni data

... data, ktera by nemela byt verejne znama

data se stavaji senzitivnimi z mnoha ruznych duvodu:

nejvetsi problemy nastavaji v pripade, kdy pouze nektere informace v databazi jsou senzitivni

Rozhodovani o pristupu

zavedeme nasledujici znaceni:

spravce SRBD je program zajistujici dodrzovani rozhodnuti ucinenych administratorem o tom, kdo z uzivatelu ma mit jaka pristupova prava

pro jednoduchost budeme uvadet tez spravce rozhodne ...

Dostupnost dat

krome obvyklych problemu s dostupnosi informaci, zde pristupuje mechanismus zamykani zaznamu, ktery brani nacteni nekonzistentnich dat

uvazme pripad, kdy dojde k poruse stanice, ktera prave provedla uzamceni zaznamu (t.j. provedene zamky neuvolni)

Akceptovatelnost pristupu

SRBD musi mit stale na zreteli, ktere zaznamy jsou senzitivni a nepristupne uzivateli, musi zajistit, aby nedoslo k jejich vyzrazeni

problem rozhodovani o poskytnuti pristupu je slozity, system nesmi vydat informace, ze kterych by uzivatel mohl dovodit utajovane skutecnosti

presto v nekterych pripadech by mel vydat vysledek, zavisici na senzitivnich informacich - napr. ruze statisticke hodnoty z udaju v databazi

Zajisteni autenticity

krome spravne identifikace lze opet omezit pristup uzivatele casem, mistem apod.

navic, rozhodnuti o poskytnuti pristupu by melo zaviset tez na predchozich dotazech, ktere uzivatel kladl

Vyzrazeni dat

Presne hodnoty

uzivatel se zamerne nebo omylem dotaze na tajna data, vlivem spatneho mechanismu rozhodovani nebo nestability v systemu je dotaz zodpovezen

Meze

vydani mezi intervalu, ve kterem se utajovane hodnoty nachazeji muze byt rovnez vaznym nedostatkem - zvlaste pokud system tuto informaci vyda o libovolne podmnozine zaznamu

na druhou stranu nekdy muze byt vhodne moci podat informace o spodnim a hornim odhadu pro specifickou mnozinu zaznamu

Negativni vysledek

uzivatel muze pokladat dotazy smerujici k overeni zaporne skutecnosti - hodnota specificke polozky neni rovna hodnote x, caste zejmena pri overovani, zehodnota je nenulova

zatimco informace, ze hodnota je ruzna od 42 je temer bezcenna, informace, ze hodnota je nenulova sama o sobe jiz muze znamenat vazne poruseni utajeni

Existence

stejne jako v pripade obecnych dat vramci OS, sama existence nejake informace muze byt senzitivni informace

uzivatel napr. vubec nesmi zjistit existenci urciteho atributu - ani v projekcich, ani dotazy na strukturu databaze

Pravdepodobne hodnoty

opsany priklad:

dotaz - Kolik lidi bydli na Pennsylvania Avenue 1600?

odpoved - 4

dotaz - Kolik obyvatel Pennsylvania Avenue 1600 je registrovanymi komunisty?

odpoved - 1

-> S pravdepodobnosti 25% je prezident USA komunista.

Bezpecnost versus presnost

System by se mel snazit udrzet bezpecnost senzitivnich dat, a to i proti neprimym dotazum - coz vede ke "konzervativni" strategii v poskytovani dat, ktera zpusobi odmitnuti mnoha neskodnych dotazu.

Z pohledu uzivatele je naopak vhodne poskytovat co nejuplnejsi a nejpresnejsi odpovedi - tedy udrzet bezpecnost, ale vydat co nejvice nesenzitivnich informaci.

Idealni stav by byl umet vydat prave vsechny ne-senzitivni informace.

Problem odvoditelnosti

jde o moznost odvodit senzitivni informace ze znalosti (velkeho mnozstvi) ne-senzitivnich

Mejme nasledujici DB:
Jmeno
Pohlavi
Hodnoceni
Podpora
Pokuty
Drogy
Kolej
Adams
M
C
5000
45
1
Holmes
Bailey
M
B
0
0
0
Grey
Chin
Z
A
3000
20
0
West
Dewitt
M
B
1000
35
3
Grey
Earthart
Z
C
2000
95
1
Holmes
Fein
Z
C
1000
15
0
West
Groff
M
C
4000
0
3
West
Hill
Z
B
5000
10
2
Holmes
Koch
Z
C
0
0
1
West
Liu
Z
A
0
10
2
Grey
Majors
M
C
2000
0
2
Grey

Primy utok

utocnik se snazi ziskat informace primymi dotazy, jejichz odpoved zavisi na velmi malem poctu vet, ktere vyhovely podminkam dotazu

list Jmeno where

Pohlavi = M & Drogy = 1

takovy dotaz muze obsahovat velke mnozstvi umele vlozenych nesplnitelych podminek

list Jmeno where

(Pohlavi = M & Drogy = 1) or

(Pohlavi M & Pohlavi Z) or

(Kolej = Grey)

neb kazdy vi, ze na koleji Grey o drogy nikdo ani nezavadi

Neprimy utok

casto je z databaze obsahujici napr. senzitivni osobni udaje povoleno zverejnovat statisticke udaje, ktere neni treba povazovat za tajne

z techto udaju lze ovsem za vhodnych okolnosti ziskat puvodni utajovane informace

Soucet

Na prvni pohled nevinny dotaz na soucet financni podpory studentu dle pohlavi a koleje na ktere bydli vede k vyzrazeni tajne informace o vysi financni podpory studentky Liu

Pocet

dotaz na pocet muze byt kombinovan s dotazem na soucet

kombinujeme-li predchozi dotaz s dotazem na pocet studentu toho ktereho pohlavi bydlicich na jednotlivych kolejich, zjistime, ze na koleji Holmes bydli kdosi, kdo dostava 5000 financni podpory

pokud se jeste zeptame na seznam obyvatel teto koleje (coz pravdepodobne neni tajne) opet jsme ziskali senzitivni informace

Median

utajovane hodnoty lze ziskat z dotazu na median:

sekvence dotazu

q = median( Podpora where Pohlavi = M)

p = median( Podpora where Drogy = 2)

vede k vyzrazeni presne hodnoty financni podpory studenta Majorse


Tracker attack

ucinnou obranou je, pokud spravce databaze odepre odpoved na dotazy, jejichz vysledek zavisi na malem mnozstvi zaznamu

utocnik vsak muze ziskat informace porovnanim vysledku nekolika dotazu:

namisto dotazu

count ((pohlavi = Z) & (Hodnoceni = C) & (Kolej = Holmes))

utocnik polozi nasledujici dotazy

count (pohlavi = Z)

count ((pohlavi = Z) & (Hodnoceni C) & (Kolej Holmes))

Odectenim vysledku ziskame vysledek prvniho dotazu, ktery spravce nevydal

Ochrana proti odvoditelnosti

  1. rozbor dotazu i s ohledem na minulost - velice komplikovany, nakladny a malo spolehlivy, efektivni pouze proti primym utokum.
  2. ochrana vlastnich dat - pasivni ochrana, hlavnimi metodami jsou potlaceni (suppression) a skryti (concealing) vysledku
    1. potlaceni - system nevyda odpoved na vsechny dotazy, ale pripadne odpovedi jsou presne
    2. skryti - system odpovida na vsechny dotazy, ale odpovedi jsou zamerne neprene

Potlaceni malych vysledku (limited response suppression)

system nevyda odpoved, pokud vysledna hodnota neprekracuje stanoveny limit

je treba zajistit, aby potlacena hodnota nebyla snadno odvoditelna ze zbylych hodnot

napr. je-li vysledkem tabulka se soucty sloupcu a radku, je treba vypustit v kazdem radku a sloupci alespon dve hodnoty

Kombinovani vysledku

system nevydava vysledky tykajici se jednotlivych hodnot z dane domeny ale pouze souhrne vysledky pro intervaly techto hodnot

dalsi moznosti je zaokrouhlovani vysledku, navraceni prumeru vysledku pro interval hodnot z dane domeny apod.

Nahodny vyber (random sample)

system neodpovida na zaklade vsech hodnot v databazi ale pouze na zaklade provedeneho nahodneho vyberu ze vsech relevantnich polozek

aby nebylo mozne pocitanim prumernych hodnot vysledku opakovanych dotazu ziskat presne hodnoty, mel by se pro ekvivalentni dotazy pouzivat stale stejny vyber

Nahodne zmateni (random data perturbation)

ke kazde polozce v databazi pricteme nahodnou chybu e

pokud je chyba z okoli nuly, je vliv teto upravy na statisticke vysledky typu soucet, prumer, ... maly

metoda je vhodnejsi nez predchozi, nebot lze snaze zajistit stejne vysledky ekvivalentnich dotazu.

Viceurovnove databaze (multilevel db)

opet se budeme zabyvat pripady, kdy je nutno uvazovat nekolik urovni duvernosti ci utajeni zpracovavanych informaci

je velmi dulezita granilarita, s jakou je ochrana provadena - je jasne, ze hodnoty jednotlivych atributu mohou mit rozdilnou citlivost, rovnez citlivost tak radku se muze lisit

v pripade databazi je dale treba brat v uvahu

SRBD musi zachovavat integritu a utajeni dat, ale sam se nemuze ridit napr. *­vlastnosti popsanou v Bell-LaPadulove modelu (musi byt schopen cist a zapisovat vsechny polozky)

utajovani dat ma i druhou stranku - pokud pracovnik zjisti, ze udaje poskytovane databazi nejsou z jeho pohledu uplne (byly vypusteny utajene zaznamy) muze provest doplneni techto "chybehicich" zaznamu

Metody ochrany ve viceurovnovych databazich

Parcelizace (partitioning)

databaze je rozdelena dle stupne citlivosti informaci na nekolik subdatabazi

Šifrovani

senzitivni data jsou chranena sifrovanim pred nahodnym vyzrazenim

zna-li utocnik domenu daneho atributu, muze snadno provest chosen plaintext attack (zasifrovanim vsech hodnot z domeny)

resenim je pouzivat jiny klic pro kazdy zaznam, coz je vsak pomerne narocne

v kazdem pripade nutnost neustaleho desifrovani snizuje vykon systemu

Integrity lock

kazda polozka v databazi se sklada ze tri casti:

<vlastni data : klasifikace : checksum>

- vlastni data jsou ulozena v otevrene forme

- klasifikace musi byt nepadelatelna, neprenositelna a skryta, tak aby utocnik nemohl vytvorit, okopirovat ani zjistit klasifikaci daneho objektu

- checksum zajistuje svazani klasifikace s daty a integritu vlatnich dat

model byl navrzen jako doplnek (access controller) komercniho SRBD, ktery mel zajistit bezpecnost celeho systemu


seda oblast vyznacuje bezpecnostni perimetr systemu

Spolehlivy front-end (guard)

system je opet zamyslen jako doplnek komercnich SRBD, ktere nemaji implementovan u bezpecnost

uzivatel se autentizuje spolehlivemu front-endu, ktery od neho prebira dotazy, provadi kontrolu autorizace uzivatela pro pozadovana data, predava dotazy k vyrizeni SRBD a na zaver provadi testy integrity a klasifikace vysledku pred predanim uzivateli

SRBD pristupuje k datum prostrednictvim spolehliveho access kontroleru

Komutativni filtr (Commutative Filter)

jde o proces, ktery prebira ulohu rozhrani mezi uzivatelem a SRBD

filter je mozno pouzit k ochrane na urovni zaznamu, atributu a jednotlivych polozek

v ramci preformulovani dotazu muze napr. vkladat dalsi podminky do dotazu, ktere zajisti, ze vysledek dotazu zavisi jen na informacich. ke kterym ma uzivatel pristup

Pohled (View)

pohled je cast databaze, obsahujici pouze data, ke kterym ma dany uzivatel pristup

pohled muze obsahovat i zaznamy nebo atributy, ktere se v puvodni databazi nevyskytuji a vznikly nejakou funkci z informaci puvodni databaze

pohled je generovan dynamicky, promitaji se tedy do neho zmeny puvodni DB

uzivatel klade dotazy pouze proti svemu pohledu - nemuze dojit ke kompromitaci informaci, ke kterym nema pristup

zaznam / atribut puvodni databaze je soucasti pohledu pokud alespon jedna polozka z tohoto zaznamu / atributu je pro uzivatele viditelna, ostatni polozky v tomto jsou oznaceny za nedefinovane

uzivatel pri formulovani dotazu muze pouzivat pouze omezenou sadu povolenych funkci

tato metoda je jiz navrhem smerujicim k vytvoreni bezpecneho SRBD


© Tonda Benes, KSI MFF UK Praha, 1996
Toto je revision 1.1, 24.5.1996
Tuto stranku shledlo jiz <pocet navstevniku> zvedavcu ...