COMPUTERWORLD
Specializovan² t²denφk o v²poΦetnφ technice

Serißl
o bezpeΦnosti
a informaΦnφm soukromφ

╚ßst 25 - CW 35/97

BezpeΦnost databßzφ

Jaroslav DoΦkal

Modernφ systΘmy °φzenφ bßzφ dat (S╪BD) zajiÜ¥ujφ bezpeΦnost ulo₧en²ch dat cestou vÜech znßm²ch bezpeΦnostnφch slu₧eb vyjma nepopiratelnosti; jsou tedy schopny zajistit autentizaci, d∙v∞rnost a integritu dat vΦetn∞ °φzenφ p°φstupu k nim. Krom∞ °φzenφ p°φstupu jsou vÜechny tyto slu₧by pou₧itelnΘ i pro p°enos dat, naopak °φzenφ p°φstupu slou₧φ v²hradn∞ pro zabezpeΦenφ ulo₧enφ dat a je slu₧bou typickou pro databßze. Opφrß se navφc o svΘ v²luΦnΘ mechanismy, zatφmco nap°. vÜechny ostatnφ bezpeΦnostnφ slu₧by lze zajistit vÜeobecn∞ pou₧φvan²mi mechanismy (nap°. Üifrovßnφm nebo digitßlnφm podpisem). Proto prßv∞ °φzenφ p°φstupu bude v Φlßnku v∞novßna hlavnφ pozornost. ╚lßnek ne°eÜφ vÜechny problΘmy spojenΘ s bezpeΦnostφ -- nezab²vß se mj. znßm²m problΘmem inference (nap°. ze specializace doktora lze p°ibli₧n∞ vyvodit chorobu pacienta) ani problΘm agregace (nap°. celkovß suma pen∞z na platy nenφ utajovanß, ale platy jednotliv²ch pracovnφk∙ ano), ale o t∞chto problΘmech ji₧ byla zmφnka v minul²ch dφlech naÜeho serißlu.

Dv∞ podoby °φzenφ p°φstupu k databßzi

╪φzenφ p°φstupu k databßzi mß dv∞ podoby

-- VolitelnΘ °φzenφ p°φstupu -- Discretionary Access Control (dßle jen DAC). Oprßvn∞n² u₧ivatel p°id∞luje pot°ebnß p°φstupovß prßva (privilegia) k objektu individußln∞ pro jednotlivΘ u₧ivatele nebo jejich skupiny. P°φstupovß prßva mohou b²t pru₧n∞ m∞n∞na a kombinovßna objekt od objektu. Zatφmco jeden subjekt mß u jednoho objektu vyÜÜφ ·rove≥ p°φstupov²ch prßv, u druhΘho objektu tomu m∙₧e b²t naopak.

-- PovinnΘ °φzenφ p°φstupu -- Mandatory Access Control (dßle jen MAC). BezpeΦnostnφ ·°ednφk objekty Φlenφ do p°edem stanoven²ch bezpeΦnostnφch ·rovnφ (pomocφ bezpeΦnostnφch nßv∞Ütφ) a subjekty za°azuje do skupin s p°φsluÜn²mi p°φstupov²mi prßvy. Autorizace je zde stejn²m procesem pro celou bezpeΦnostnφ ·rove≥. Pokud mß subjekt vφce privilegiφ k n∞jakΘmu objektu ne₧ jin² subjekt, nem∙₧e jich mφt k jinΘmu objektu mΘn∞.

SchΘma DAC

BezpeΦnostnφ politika musφ b²t vyjßd°ena p°φsluÜn²mi bezpeΦnostnφmi pravidly (konkrΘtn∞ u databßzφ jde o autorizaΦnφ pravidla) a nad jejich vykonßnφm musφ dohlφ₧et bezpeΦnostnφ systΘm (u databßzφ autorizaΦnφ podsystΘm). AutorizaΦnφ podsystΘm musφ obdr₧et autorizaΦnφ pravidla, kter²m bude rozum∞t, tj. v podob∞ klauzulφ jazyka SQL. Nap°. novΘ bezpeΦnostnφ pravidlo lze zavΘst formulφ (hypotetickß podoba):

CREATE SECURITY RULE pravidlo

GRANT seznam_privilegiφ

ON v²raz

TO seznam_u₧ivatel∙

[ON ATTEMPTED VIOLATION akce]

kde pravidlo oznaΦuje jmΘno novΘho bezpeΦnostnφho pravidla, seznam_privilegiφ uvßdφ oprßvn∞nφ, v²raz obsahuje v²raz relaΦnφ algebry a akce urΦuje proceduru Φinnosti v p°φpad∞ poruÜenφ bezpeΦnostnφho pravidla (obvyklΘ je odmφtnutφ p°φkazu; m∙₧e b²t zvoleno i ukonΦenφ programu, uzamknutφ u₧ivatelovy klßvesnice, provedenφ zßpisu do log souboru atd.).

M∞jme nap°φklad relaci EVIDENCE, do kterΘ jsou ulo₧eny v²sledky zkouÜek na vysokΘ Ükole (polo₧ka ZNAMKA); chceme nap°. uΦiteli Beranovi povolit opravy ud∞len²ch znßmek a vÜem ostatnφm u₧ivatel∙m jakΘkoliv zm∞ny zakßzat. Pak definujeme p°φsluÜnΘ bezpeΦnostnφ pravidlo nßsledujφcφm zp∙sobem:

CREATE SECURITY RULE SR1

GRANT UPDATE (EVIDENCE#, ZNAMKA)

ON EVIDENCE WHERE EVIDENCE.PREDMET=FYZIKA

TO Beran

ON ATTEMPTED VIOLATION REJECT;

Kdo je vlastn∞ ten "oprßvn∞n² u₧ivatel", uveden² p°i zavßd∞nφ pojmu DAC? To zßvisφ na konkrΘtnφm S╪BD, proto₧e administraci autorizace lze °eÜit r∙zn²mi politikami; vÜe m∙₧e urΦovat administrßtor databßze, administrovat objekt m∙₧e takΘ ten, kdo ho vytvo°il, anebo kdokoliv, kdo obdr₧φ povolenφ od jeho vlastnφka (delegovßnφ prßv). V ka₧dΘm p°φpad∞ je schΘma DAC zalo₧eno na principu vlastnictvφ objektu. V²sledkem je velkß pru₧nost schΘmatu DAC.

Pou₧itφ schΘmatu DAC p°inßÜφ n∞kolik omezenφ a rizik:

-- Nev²hody plynoucφ z koncepce "vlastnictvφ informace". Jde hned o dv∞ nev²hody: Jednak lze ka₧dΘ vlastnictvφ odcizit a za druhΘ je zde problΘm s centrßlnφm monitorovßnφm stavu zodpov∞dnosti.

-- Kaskßdovßnφ autorizace p°edßvßnφm vlastnictvφ vede k problΘm∙m s "revokacφ", co₧ znejis¥uje vlastnφky. P°φklad: Vlastnφk Beran p°edal p°φstupovΘ prßvo na Φtenφ objektu u₧ivatel∙m Noha a Zeman. U₧ivatel Noha p°edß totΘ₧ prßvo Zemanovi. Pak se ale rozhodne, ₧e mu ho odebere. Nem∙₧e si vÜak b²t v∙bec jist, ₧e o toto prßvo u₧ivatel Zeman p°iÜel.

-- Riziko ·tok∙ typu Trojsk² k∙≥. Nap°φklad u₧ivatel Beran m∙₧e zφskat neoprßvn∞n∞ p°φstupovΘ prßvo k objektu, jeho₧ vlastnφkem je u₧ivatel Noha, nßsledujφcφm postupem: Vytvo°φ si svou verzi t°φdicφho programu tak, ₧e standardnφ program doplnφ o instrukce Φtenφ p°φsluÜnΘho objektu. Pak staΦφ t°φdicφ program nahradit upravenou verzφ a v klidu Φekat, a₧ se pustφ u₧ivatel Noha do t°φd∞nφ.

-- ProblΘmy s view (p°edzpracovanΘ pohledy na databßzi). Äe mß ka₧d² u₧ivatel p°id∞leno svΘ view je z jednΘ strany velkß v²hoda; nap°φklad nastoupφ novß operßtorka a dostane p°id∞leno standardnφ view vytvo°enΘ pro operßtory. Z druhΘ strany je to vÜak takΘ nev²hoda: operßtorka m∙₧e po°izovat data pouze v rozsahu svΘho view, ale ne v rozsahu view nap°. °editele. KonkrΘtn∞ pak °editel musφ po°izovat vÜechny ·daje o platech sßm, i kdy₧ jsou tajnΘ jen n∞kterΘ.

SchΘma MAC

SchΘma MAC je aplikacφ principu vφce·rov≥ovΘ bezpeΦnosti (multilevel security - MLS, viz 22. Φßst serißlu) do databßzovΘho prost°edφ. Toto schΘma je vhodnΘ pro databßze, ve kter²ch majφ data spφÜe statick² a rigidnφ charakter -- tj. pro prost°edφ armßdy a dalÜφch stßtnφch institucφ.

Zatφmco znßmß Orange Book americkΘho ministerstva obrany definuje mno₧inu bezpeΦnostnφch po₧adavk∙ pro libovoln² TCB (Trusted Computing Base), interpretaci po₧adavk∙ na TCB databßzov²ch systΘm∙ popisuje tzv. Lavender Book (zde je obal levandulovΘ, tj. modroΦervenΘ barvy). Zatφmco schΘma DAC je charakteristickΘ pro systΘmy ·rovn∞ C, resp. D, schΘma MAC najdeme u systΘm∙ ·rovn∞ B, resp. A. V rßmci schΘmat MAC by m∞lo platit v souladu s modelem Bell-LaPadula (viz 3. a 22. dφl serißlu) No-read-upNo-write-down, v praxi se vÜak v∞tÜinou p°ipouÜtφ zßpis pouze na vlastnφ ·rovni. Je z°ejmΘ, ₧e zde nejde jen o ochranu p°ed neautorizovan²m p°φstupem jako u schΘmatu DAC, ale i o °φzenφ toku dat v databßzi -- neboli o ochranu p°ed ·toky typu Trojsk² k∙≥.

Co je vlastn∞ poskytnuto u₧ivateli ni₧Üφ ·rovn∞ p°i dotazu na relaci, obsahujφcφ ·daje r∙zn²ch bezpeΦnostnφch ·rovnφ? Nech¥ je nap°φklad relace dßna nßsledujφcφ tabulkou plat∙:

JMENOBU-JFIRMABU-FPLATBU-PBU-Z

BeranN Korona N 6 000 N N

NohaVSecurity ABV45 000VV

ZemanNKoronaN7 000VV

Zde BU-J oznaΦuje bezpeΦnostnφ ·rove≥ polo₧ky jmΘno, BU-F bezpeΦnostnφ ·rove≥ polo₧ky FIRMA atd. a₧ BU-Z oznaΦuje bezpeΦnostnφ ·rove≥ zßznamu s primßrnφm klφΦem JMENO, N nφzkou ·rove≥ bezpeΦnosti, V vysokou ·rove≥ bezpeΦnosti (pro jednoduchost se omezφme na dva stupn∞). V²pis tabulky se pro u₧ivatele ni₧Üφ ·rovn∞ zredukuje nßsledujφcφm zp∙sobem:

JMENOBU-JFIRMABU-FPLATBU-PBU-Z

BeranNKoronaN6 000NN

ZemanNKoronaN0NV

Neboli z tabulky zmizφ °ßdky s polo₧kami v²hradn∞ vyÜÜφ bezpeΦnostnφ ·rovn∞ a °ßdky s polo₧kami obou ·rovnφ v tabulce z∙stanou, ale s vynulovan²mi polo₧kami, kterΘ byly v p∙vodnφ tabulce vyÜÜφ ·rovn∞. Aby zde nedoÜlo k vytvo°enφ skrytΘho kanßlu typu "tato polo₧ka mß utajovanou hodnotu", musφ b²t danß polo₧ka zapln∞na b∞₧nou nulovou hodnotou.

V relacφch vytvo°en²ch dle schΘmatu MAC se lze setkat s n∞Φφm, co by se dalo Φesky nazvat problΘm vφcenßsobnΘho v²skytu (polyinstantiation). P∙vodcem m∙₧e b²t

-- u₧ivatel ni₧Üφ ·rovn∞, kter² dopl≥uje tabulku o data vyÜÜφ ·rovn∞ (v²sledek nem∙₧e vid∞t),

-- u₧ivatel vyÜÜφ ·rovn∞, kter² p°esouvß data ji₧ ulo₧enß v tabulce z ni₧Üφ na vyÜÜφ ·rove≥ (ten v²sledek samoz°ejm∞ uvidφ).

D∙sledkem mohou b²t dv∞ situace:

-- vφcenßsobnΘ °ßdky -- vφce °ßdk∙ mß stejn² primßrnφ klφΦ,

-- vφcenßsobnΘ polo₧ky -- ke stejnΘmu primßrnφmu klφΦi jsou vzta₧eny hodnoty atribut∙ s r∙zn²mi ·rovn∞mi.

Nap°φklad u₧ivatel ni₧Üφ ·rovn∞ provede operaci

INSERT INTO PLATY VALUE (Noha, Korona, 5 000)

AΦkoliv zßznam o Nohovi ji₧ v tabulce existuje, u₧ivatel ni₧Üφ t°φdy ho nevidφ a °ßdek je do tabulky dopln∞n, viz nßsledujφcφ tabulka:

JMENOBU-JFIRMABU-FPLATBU-PBU-Z

BeranNKoronaN6 000NN

NohaVSecurity ABV45 000VV

ZemanNKoronaN7 000VV

NohaNKoronaN5 000NN

Obdobn∞ je vlo₧en nov² °ßdek, pokud je u₧ivatelem ni₧Üφ ·rovn∞ aktualizovßna hodnota vyÜÜφ ·rovn∞, nap°φklad p°φkazem

UPDATE PLATY SET PLAT = 5 000 WHERE PLATY.JMENO = Zeman

se tabulka rozroste o dalÜφ °ßdek:

JMENOBU-JFIRMABU-FPLATBU-PBU-Z

BeranNKoronaN6 000NN

NohaVSecurity ABV45 000VV

ZemanNKoronaN7 000VV

NohaNKoronaN45 000NN

ZemanNKoronaN5 000NV

VφcenßsobnΘ °ßdky se mohou vztahovat ke stejnΘ nebo k r∙zn²m entitßm; hovo°φme pak o polo₧kovΘ anebo °ßdkovΘ vφcenßsobnosti. Modernφ modely (nap°. SeaView) umo₧≥ujφ oba p°φstupy.

SchΘma MAC mß vÜak takΘ svΘ problΘmy:

-- Granualita bezpeΦnostnφch objekt∙. Existuje Üirokß Ükßla nßzor∙ na to, na jakΘ ·rovni p°id∞lovat bezpeΦnostnφ nßv∞Ütφ: zda celΘ databßzi, soubor∙m, relacφm, atribut∙m nebo dokonce i hodnotßm atribut∙. ╚φm je vÜak zvolen detailn∞jÜφ p°φstup, tφm obtφ₧n∞ji se u₧ivateli specifikuje bezpeΦnostnφ ·rove≥. Navφc to u rozsßhlΘ databßze musφ b²t opravdu pracn² proces.

-- T∞₧kopßdnost pravidel Bell-LaPadulova modelu: Nap°φklad bezpeΦnostnφ pravidla organizace vy₧adujφ, aby u₧ivatel vyÜÜφ ·rovn∞ podepsal dokument zpracovan² pracovnφkem ni₧Üφ ·rovn∞ (uplatn∞nφ "principu Φty° oΦφ"). Ale podle pravidel Bell-LaPadulova modelu zapisovat na ni₧Üφ ·rove≥ nelze (integrita zde dostßvß na frak na ·kor d∙v∞rnosti).

BezpeΦnost objektov∞-orientovan²ch databßzφ

RelaΦnφ modely se ukazujφ jako vhodnΘ pro realizaci vφce·rov≥ovΘ bezpeΦnosti, zatφmco objektov∞-orientovan² p°φstup se zatφm setkßvß s celou °adou problΘm∙. Proto₧e je p°φstup °φzen² k celΘ t°φd∞ objekt∙, dotaz na jeden z nich si vy₧aduje autorizaci na celou t°φdu. Koncepce vlastnictvφ takΘ nemß jednoznaΦnou interpretaci v kontextu objektov∞-orientovan²ch databßzφ. Kdo je vlastn∞ vlastnφkem instance vytvo°enΘ jin²m u₧ivatelem, ne₧ je vlastnφk t°φdy? A nakonec -- u objektov∞-orientovan²ch model∙ jsou jednotkou p°φstupu instance objekt∙ a bylo by logickΘ, aby autorizace byla vzta₧ena prßv∞ k nim. To by vÜak Φasto mohlo vΘst k ne·m∞rnΘ zßt∞₧i na databßzi.

ProblΘmy jsou takΘ s vytvo°enφm MAC model∙ pro objektov∞-orientovanΘ databßze. Aby mohl b²t z d∙vodu verifikovatelnosti spln∞n po₧adavek na co nejmenÜφ bezpeΦnostnφ monitor, je vhodnΘ, aby vÜechny atributy objektu byly stejnΘ ·rovn∞. Pro °adu objekt∙ je vÜak toto omezenφ nep°ijatelnΘ. Vypo°ßdßnφ se s rozporupln²mi po₧adavky na zabezpeΦenφ objektov∞-orientovan²ch databßzφ je dodnes aktußlnφ tΘma v∞deckΘho v²zkumu.

Zßv∞rem

V oblasti systΘm∙ MLS jsou dnes na trhu pro t°φdu B1 (viz Orange Book) certifikovanΘ produkty firem Oracle a Informix; podmφnky ekvivalentnφ bezpeΦnostnφ t°φdy E3 (evropskß klasifikace) spl≥uje navφc i verze produktu INGRES firmy Computer Associates. Z bezpeΦnostnφho, v²konovΘho i u₧ivatelskΘho hlediska poskytuje dlouhodob∞ nejlepÜφ °eÜenφ nejspφÜe Oracle -- jejφmu systΘmu MLS se vyplatφ

v∞novat pozornost.


MLS Oracle 7.2 -- p°φklad vφce·rov≥ovΘho S╪BD

Jde o ji₧ t°etφ certifikovanou verzi MLS systΘmu tΘto firmy, je tedy z°ejmΘ, ₧e firma Oracle mß v oblasti MLS systΘmu nejvφce zkuÜenostφ. Z hlediska bezpeΦnosti mß proto tento produkt °adu p°ednostφ:

-- AΦkoliv prßce v MLS prost°edφ b²vß obvykle t∞₧kopßdnß, firma Oracle poskytuje takovΘ prost°edφ, ve kterΘm je prßce relativn∞ snadnß a pru₧nß.

-- MLS systΘmy je nßroΦnΘ realizovat pro prßci v distribuovanΘm prost°edφ. Zde je tomu naopak, zvlßÜt∞ efektivn∞ jsou u MLS Oracle realizovßny replikace.

-- V rßmci Secure Network Services lze zajistit Üifrovßnφ pro veÜker² sφ¥ov² provoz. Konverze dat mezi r∙zn²mi sφ¥ov²mi protokoly probφhß bez jejich rozÜifrovßnφ. èifruje se pomocφ RC4 resp. DES, pro kontrolu integrity slou₧φ algoritmus MD5. Distribuce klφΦ∙ je zalo₧ena na algoritmu Diffie-Hellmana.

-- ZaÜifrovanΘ relace lze umis¥ovat do datov²ch zdroj∙ mimo Oracle. Interoperabilita s jin²mi Üifrovacφmi systΘmy je zajiÜt∞na pomocφ mechanismu dojednßvßnφ.

-- Pro autentizaci lze pou₧φt Smart Cards (nap°. SecureID firmy Security Dynamic), biometrickΘ za°φzenφ (nap°. Touch Safe II firmy Identix) anebo softwarovΘ autentizaΦnφ systΘmy (nap°. Kerberos od verze 5.4 anebo Sezame). Od konce roku 1996 lze ov∞°ovat toto₧nost u₧ivatele kartou Fortezza.

-- Vφce databßzφ Oracle lze administrovat z jednoho mφsta pomocφ DCE (Distributed Computing Environment). Integrace se slu₧bami DCE je velmi pru₧nß, nap°φklad si lze vybrat pouze integraci s bezpeΦnostnφmi slu₧bami.

V prodeji je tato verze ji₧ od °φjna roku 1996. Nynφ p°ichßzφ firma Oracle s verzφ 8 svΘho systΘmu a dß se tedy po jistΘ dob∞ oΦekßvat jejφ MLS provedenφ. Projektanti systΘm∙ s vysok²mi nßroky na bezpeΦnost se proto majφ na co t∞Üit.


Serißl je rovn∞₧ dostupn² na www.idg.cz/computerworld/bvsk/


| COMPUTERWORLD - serißl o bezpeΦnosti | COMPUTERWORLD | IDG CZ homepage |