Riadenie prístupu

26
Riadenie prístupu Doc. Ing. Ladislav Hudec, CSc. 1

description

Riadenie prístupu. Doc. Ing. Ladislav Hudec, CSc. 1. ACL Subjektu. Vykonaj operáciu. Referenčný monitor. Subjekt. Objekt. Zdroj. Žiadosť. Ochrana. Zdroj. Riadenie prístupu. - PowerPoint PPT Presentation

Transcript of Riadenie prístupu

Page 1: Riadenie prístupu

Riadenie prístupu

Doc. Ing. Ladislav Hudec, CSc.

1

Page 2: Riadenie prístupu

Riadenie prístupuRiadenie prístupu

Počítačový systém narába s viacerými zdrojmi ako sú, pamäť, disk, sieťový interfejs, tlačiareň (objekt prístupu). Používateľ (subjekt prístupu) k týmto zdrojom počítačového systému pristupuje.

Subjekt je aktívna entita v procese prístupu (žiada prístup). Objekt je pasívna entita, ku ktorej sa pristupuje (je objektom prístupu).

Vo všeobecnosti je prístup k objektom chránený prostredníctvom prístupových práv. Kontrolu prístupu zabezpečuje referenčný monitor.

Subjekt v procese autorizácie získa prístupové práva k objektu (čo môže s objektom robiť). Subjekt nemusí byť autorizovaný na prístup ku každému objektu a tiež nie na všetky typy prístupu, ktoré je objekt schopný zabezpečiť.

Prístupové práva subjektu k objektu sú zapísané v zozname riadenia prístupu ACL – Access Control List.

Principiálny model riadenia prístupu

SubjektVykonajoperáciu

Referenčnýmonitor Objekt

Zdroj Žiadosť Ochrana Zdroj

ACL Subjektu

2

Page 3: Riadenie prístupu

Prístupové opPrístupové opeerácierácie

Prístupové práva subjektu k objektu sa realizujú prostredníctvom prístupových operácií.

Na najnižšej úrovni subjekt smie sledovať objekt alebo subjekt smie zmeniť objekt. Podľa toho sa definujú dva režimy prístupu

o Sledovanie (Observation): subjekt vidí objekt a jeho obsah

o Zmena (Alteration): subjekt zmení obsahu objektu

Bezpečnostný model Bell – La Padula špecifikuje štyri prístupové práva: Vykonanie (Execution), Čítanie (Read), Pripojenie alebo zápis naslepo (Append or Blind write) a Zápis (Write).

V tabuľke nižšie je uvedený vzťah medzi týmito prístupovými právami a základnými režimami prístupu

3

zápisčítaniepripojenievykonaniesledovanie XX

zmena XX

Page 4: Riadenie prístupu

Prístupové opPrístupové opeerácierácie

Dôvodom na takúto definíciu prístupových práv sú: o Vo viacpoužívateľských operačných systémoch dostane používateľ najprv prístup k

súboru a potom ho môže otvoriť. Súbory sú otvorené na prístup čítania alebo zápisu, čím operačný systém odstraňuje konflikty ako je napríklad prípad, kedy by dvaja používatelia súčasne zapisovali do toho istého súboru.

o Prístup zápisu zvyčajne obsahuje aj prístup čítania. Používateľ editujúci súbor by nemal byť požiadaný na dvojnásobné otvorenie súboru, raz pre čítanie a druhýkrát na zápis. Preto prístupové právo zápis obsahuje prístupový režim Sledovanie a Zmena.

o Zopár systémov majú implementovaný prístupový režim Pripojenie. Umožniť používateľom meniť objekt bez sledovania jeho obsahu je zriedkakedy užitočné (výnimkou je auditný záznam).

o Súbor môže byť použitý bez potreby otvorenia. Napríklad použitie kryptografického kľúča. Použitie kryptografického kľúča môže byť vyjadrené prístupovým právom Vykonania, ktoré neobsahuje ani prístupový režim Sledovanie a ani prístupový režim Zmena.

4

Page 5: Riadenie prístupu

Prístupové opPrístupové opeerácierácie

Súčasné operačné systémy ako je Unix vyjadruje prístupové práva k súborom pomocou troch prístupových operácií

o Čítanie: čítanie zo súboru

o Zápis: zapísanie do súboru

o Vykonanie: vykonanie (programového) súboru

Prístupové práva k adresárom vyjadruje týmito tromi prístupovými operáciamio Čítanie: vypíš obsah adresárov

o Zápis: vytvor alebo premenuj súbor v adresári

o Vykonanie: prehľadaj adresár

Unix riadi, kto môže vytvoriť alebo zrušiť súbor tým, že riadi prístup zápisu do adresára súboru. Prístupové práva pre súbor sa zmenia modifikáciou súborovej položky v jeho adresári. Niektoré iné operačné systémy obsahujú špeciálnu operáciu zrušenia súboru (delete).

5

Page 6: Riadenie prístupu

Prístupové operáciePrístupové operácie

V operačnom systéme Windows 2000 štandardnými operáciami prístupu sú:o Riadenie čítania

o Zrušenie

o Zápis DACL (modifikácia zoznamu riadenia prístupu)

o Zápis vlastníka (modifikácia vlastníka zdroja)

o Synchronizácia (na synchronizáciu viacvláknových programov)

Kto je oprávnený nastaviť bezpečnostnú politiku, ktorej vyjadrením je riadenie prístupu. Existujú dva základné prístupy:

o Je možné definovať vlastníka každého zdroja a vlastník rozhoduje o prístupe k jeho zdroju. Tejto politike sa hovorí Discretionary Access Control – DAC

o V systéme existuje jednotná bezpečnostná politika, ktorá je presadzovaná centrálnou autoritou. Tejto politike sa hovorí Mandantory Access Control – MAC

Väčšina operačných systémov podporuje koncepciu vlastníctva zdrojov a berie do úvahy vlastníctvo pri rozhodovaní o riadení prístupu

Novou koncepciou v riadení prístupu je politika Role Based Access Control – RBAC. Bezpečnostná politika odráža organizačnú štruktúru firmy a jednotlivé role zamestnancov (pracovné zaradenie) v štruktúre

o Používatelia sú zaradení do rolí

o Role majú pridelené prístupové práva6

Page 7: Riadenie prístupu

Matica riadenia prístupuMatica riadenia prístupu

Spôsoby implementácie riadenia prístupu musia zabezpečiť dve súperiace požiadavky:

o Musí napomôcť vyjadriť vyžadovanú politiku riadenia prístupu

o Musí byť schopná umožniť kontrolu, či je politika správne uchopená

Implementácia pomocou matice riadenia prístupu vychádza z toho, že prístupové práva môžu byť definované individuálne pre každú kombináciu subjekt x objekt. Riadky matice sú pridelené subjektom a stĺpce objektom. Každý prvok matice Mso vyjadruje prístupové práva subjektu S k objektu O.

Tento spôsob je skorej konceptom, na praktickú implementáciu sa nepoužíva, pretože

o v prípade veľkého počtu subjektov a objektov v systéme je táto matica rozsiahla

o matica býva štandardne riedka, väčšina subjektov nemá prístupové práva do väčšiny objektov

o prístupová matica môže byť reprezentovaná ako zoznam trojíc (subjekt, objekt, prístupové práva), napríklad (UserA, Help.txt, R), prehľadávanie veľkého množstva takýchto trojíc nie je dostatočne efektívne

7

Page 8: Riadenie prístupu

Matica riadenia prístupuMatica riadenia prístupu

Subjekty: user_A (používateľ), user_B (používateľ), sys_MGR (administrátor)

Objekty: bibliog (súbor), help.txt (textový súbor), c_comp (prekladač jazyka C), sys_clk (systémové hodiny), printer (tlačiareň)

Oprávnenia: R (čítanie), W (zápis), X (vykonanie), O (vlastník)

user_A

user_B

sys_MGR

bibliog help.txt c_comp sys_clk printer

ORW W

R

- ORW

R

R

X

OX

X

R

R

ORW

W

O

8

Page 9: Riadenie prístupu

Zoznamy riadenia prístupuZoznamy riadenia prístupu

Ďalším spôsobom implementácie riadenia prístupu sú zoznamy riadenia prístupu (ACL – Access Control List).

o Každý objekt má k sebe pripojený zoznam subjektov s prístupovými právami

o Zoznam vlastne vyjadruje stĺpec matice riadenia prístupu s vyjadrením tých subjektov, ktoré majú k objektu prístupová práva a samotné prístupové práva

Podľa predchádzajúcej matice riadenia prístupu zoznamy pre jednotlivé objekty sú

o bibliog: user_A:ORW, user_B:R

o help.txt: user_A:R, user_B:R, sys_MGR:ORW

o c_comp: user_A:X, user_B:X , sys_MGR:OX

o sys_clk: user_A:R, user_B:R , sys_MGR:ORW

o printer: user_A:W, user_B:W , sys_MGR:O

Manažment prístupových práv na základe individuálnych subjektov môže byť obťažné. Preto sa používatelia združujú do skupín a prístupové práva používateľa sa odvodzujú od prístupových práv skupiny.

Model riadenia prístupu v Unixe obsahuje jednoduché ACL, každý z nich má tri položky, ktoré prideľujú prístupové práva subjektom podľa prístupových práv user, group a others. 9

Page 10: Riadenie prístupu

OprávneniaOprávnenia

Ďalším spôsobom implementácie riadenia prístupu sú oprávnenia (capabilities).o Iba ťažko by bolo možné priamo implementovať maticu riadenia prístupu

o Existujú výber medzi dvomi zrejmými voľbami. Prístupové práva môžu byť zviazané alebo so subjektom alebo s objektom.

o V prvom prípade každý subjekt má oprávnenia, nesfaľšovateľný token špecifikujúci jeho prístupové práva

Podľa predchádzajúcej matice riadenia oprávnenia jednotlivých subjektov súo user_A: bibliog:ORW, help.txt:R, c_comp:X, sys_clk:R, printer:W

o user_B: bibliog:R, help.txt:R, c_comp:X, sys_clk:R, printer:W

o sys_MGR: help.txt:ORW, c_comp:OX, sys_clk:ORW, printer:O

Implementácia riadenia prístupu prostredníctvom oprávnení je typicky spojená s bezpečnostnou politikou DAC. Keď subjekt vytvorí nový objekt, udelí ostatným subjektom oprávnenia prístupu k tomuto objektu.

Oprávnenia sú novým konceptom a doposiaľ sa nestali široko používaným bezpečnostným mechanizmom pre komplexnosť bezpečnostného manažmentu

o Je obťažné získať prehľad, kto má oprávnenia k danému objektu

o Je problém s odvolaním oprávnenia, najmä v prípade transferu oprávnení

Oprávnenia je potrebné chrániť. Je to zvlášť problém v distribuovanom prostredí.10

Page 11: Riadenie prístupu

Vložené vrstvy medzi subjektom a objektomVložené vrstvy medzi subjektom a objektom Aby bolo možné jednoduchšie spravovať politiku riadenia prístupu vkladá sa medzi subjekty a objekty

prechodná vrstva (intermediate layer). Nech Alica a Bill navštevujú istý predmet (BPS). Ak učiteľ chce týmto študentom sprístupniť študijný

dokument, musí ich dať na ACL každého dokumentu, ku ktorému majú mať prístup. ALE učiteľ môže vytvoriť skupinu (group) študentov BPS a pridať túto skupinu do ACL dokumentu.

o Skupina je nástroj na zjednodušenie definovania prístupovej politikyo Používatelia s podobnými prístupovými právami sú vyzbieraní do skupín a skupinám sú pridelené prístupové právao Niektoré bezpečnostné politiky požadujú, aby používateľ bol členom iba jednej skupiny

Na obrázku je ideálny príklad, kde všetky prístupové práva môžu byť sprostredkované prostredníctvom členstva v skupine.

11

Skupiny

Používatelia

Objekty

g1

o1o4o2 o3

u1

o5o6

g2

u2u3 u4

u5

Page 12: Riadenie prístupu

Vložené vrstvy medzi subjektom a objektomVložené vrstvy medzi subjektom a objektom Často krát bezpečnostná politika má špeciálny prípad, v ktorom priamo prideľuje niektorému

používateľovi povolenie prístupu k objektu alebo priamo zakazuje prístup k objektu (vyplývajúci z členstva v skupine).

Negatívne povolenie je položkou v štruktúre riadenia prístupu, ktorá špecifikuje prístupové operácie používateľa, na ktoré nemá povolené. Na obrázku nižšie používateľ u1 má zakázaný prístup k objektu o1 a používateľ u3 má udelený prístup k objektu o5 .

Negatívne povolenie dané používateľovi u1 je v spore s pozitívnym povolením vyplývajúcim z členstva v skupine g1 – konflikt politiky.

o Pri špecifikácii bezpečnostnej politiky sa musí vedieť ako bude referenčný monitor riešiť konflikty.o Ak je politika definovaná ACL, bežným a rozšíreným spôsobom je postup, že referenčný monitor

postupne od začiatku prehľadáva ACL a aplikuje prvé pravidlo týkajúce sa prístupu (pozitívne alebo negatívne povolenie). Prípadná ďalšia konflikt vytvárajúca položka v ACL sa ignoruje.

12

Skupiny

Používatelia

Objekty

g1

o1o4o2 o3

u1

o5

u2u3

Page 13: Riadenie prístupu

Privilégiá a rolePrivilégiá a role

Privilégiá – súbor práv na vykonávanie určitých operácií.o Typicky sú privilégiá spojené s funkciami operačného systému a majú vzťah k aktivitám

ako je administrácia, zálohovanie, prístup k službe elektronickej pošty alebo k sieti.

o Na privilégiá sa možno dívať ako na prechodnú vrstvu medzi subjektami a objektami.

Privilégiá sú zvyčajne preddefinované v operačnom systéme. Súbor aplikačne špecifických operácií (procedúr) sa nazýva rola.

o Subjekty majú odvodené svoje prístupové práva od vykonávanej roly.

o Role Based Access Control (RBAC) vychádza z používateľov a z úloh, ktoré používatelia vykonávajú

13

Privilégiá

Používatelia

Operácie

pr1

op1 op4op2 op3

u1

op5 op6

pr2

u2u3 u4

u5

Page 14: Riadenie prístupu

RBACRBAC Prechodná vrstva vložená medzi subjekty a objekty napomáha redukovať zložitosť

spravovania riadenia prístupu. o Prechodná vrstva môže byť vložená na viacerých miestacho Na spravovanie riadenia prístupu môže byť použitých viacero vrstiev

Pri voľbe prechodnej vrstvy treba brať do úvahyo Roly: rola je súbor procedúr. Roly sú prideľované používateľom. Používateľ môže mať

viac ako jednu rolu a jednu rolu môže mať viacero používateľov.o Procedúry: procedúry sú vysokoúrovňové metódy riadenia prístupu s komplexnejšou

sémantikou ako je operácia read a write. Procedúry sa môžu aplikovať iba na objekty určitých datových typov, napríklad transfer peňazí medzi bankovými účtami.

o Datové typy: každý objekt je istého datového typu a môže byť pristúpený iba prostredníctvom procedúry definovanej pre tento datový typ. Riadenie prístupu k objektom obmedzením procedúr, ktoré môžu k objektu pristupovať, je bežnou programátorskou praxou. (Je to fundamentálny koncept teórie abstraktných datových typov)

14

Page 15: Riadenie prístupu

RBACRBAC

Aj keď štruktúrované riadenie prístupu takéhoto typu je vysoko žiaduce pre mnohé aplikácie, nie je doposiaľ podporované mnohými operačnými systémami. Pozoruhodnou výnimkou sú:

o Používateľské profily v operačnom systéme IBM AS/400o Globálne skupiny (global groups) a lokálne skupiny (local groups) v operačnom

systéme Windows 2000.

Koncept RBAC je známejší (a používanejší) v systémoch správy databáz. 15

používatelia

roly

procedúry

datové typy

objekty

Page 16: Riadenie prístupu

Ochranné okruhyOchranné okruhy Ochranné okruhy (protection rings) sú zvlášť jednoduchým príkladom prechodnej vrstvy

hardvérového riadenia prístupu subjektov k objektom: Každému subjektu (procesu) a každému objektu v závislosti na „dôležitosti“ je priradené

číslo. Typickým príkladom je označenie procesov jedným z týchto čísel:o 0 – jadro (kernel) operačného systémuo 1 – operačný systémo 2 – utilityo 3 – používateľský proces.

Rozhodnutie o riadení prístupu sa vykoná porovnaním čísla „subjektu“ a čísla „objektu“. (Výsledok rozhodnutia závisí na bezpečnostnej politike, ktorá sa presadzuje použitím ochranných okruhov.)

Pridelené čísla korešpondujú sústredným ochranným okruhom, v strede s okruhom 0 poskytujúcim najvyšší stupeň ochrany. Ak procesu je pridelené číslo i, potom hovoríme, že „proces sa vykonáva v okruhu i“.

16

0

1

2

3

Ochranné okruhy

Page 17: Riadenie prístupu

Ochranné okruhyOchranné okruhy

Ochranné okruhy sa zvyčajne používajú na ochranu integrity.

Ochranné okruhy boli použité v operačnom systéme Multics (pre multiprogramové prostredie operačného systému). K týmto účelom bol vyvinutý špeciálny hardvér na podporu tohto bezpečnostného mechanizmu.

Podobné črty majú i procesory 80x86 na úrovni strojového jazyka.

Unix používa dve úrovne (okruhy):o Root a operačný systém sa vykonáva v okruhu 0

o Používateľské procesy sa vykonávajú v okruhu 3

Ďalším príkladom je QNX. QNX/Neutrino microkernel prideľuje softvérové komponenty do ochranných okruhov takto:

o Neutrino microkernel sa vykonáva v okruhu 0

o Neutrino proces manager sa vykonáva v okruhu 1

o Všetky ostatné programy sa vykonávajú v okruhu 3.

Pamäťové lokácie obsahujúce citlivé údaje (kód operačného systému) môžu byť pristupované iba procesmi vykonávajúcimi sa v okruhu 0 alebo 1.

17

Page 18: Riadenie prístupu

Čiastočné usporiadanieČiastočné usporiadanie Zavedením ochranných okruhov sme zaviedli porovnávanie pri posudzovaní bezpečnostnej

politiky. Ochranné okruhy sú jednoduchý príklad, v ktorom je možné rozhodnúť medzi ľubovoľnými dvomi rôznymi okruhmi i a j, ktorý z nich je vnútornejší. (Vo všeobecnom modely to nemusí byť také triviálne alebo dokonca možné.)

Čiastočné usporiadanie <= (menší alebo rovný) na množine (bezpečnostných úrovní) L je relácia na L x L, pre ktorú platí:

o Reflexívnosť: pre každé a z L platí, že a<=ao Tranzitívnosť: pre každé a,b,c z L, ak a<=b a b<=c, potom a<=co Antisymetrickosť: pre každé a,b z L, ak a<=b a b<=a, potom a=b

Typickým príkladom čiastočného usporiadania je množina všetkých množín z množniny X, pričom vzťah podmnožina je reláciou usporiadania. (Haaseho diagram je grafickou reprezentáciou čiastočne usporiadaných množín.)

Majme množninu S skladajúcu sa z troch prvkov a, b ,c. Množina všetkých podmnožín množiny S sú množiny: S0 (prázdna množina), Sa (množina obsahujúca prvok a), množiny Sb , Sc , Sab , Sac , Sbc a množina Sabc = S. Grafická reprezentácia čiastočného usporiadania je na obrázku.

18

S0

Sb ScSa

Sab Sac Sbc

Sabc

Page 19: Riadenie prístupu

Štruktúra zväz z bezpečnostných úrovníŠtruktúra zväz z bezpečnostných úrovní Ak máme vo všeobecnosti bezpečnostnú politiku, v rámci ktorej subjekt môže pozorovať

objekt iba vtedy, ak bezpečnostná úroveň subjektu je vyššia alebo rovná bezpečnostnej úrovni objektu, potrebujem mať jednoznačnú odpoveď na nasledujúce otázky:

o Ak majú dva objekty rozdielne bezpečnostné úrovne, akú minimálnu bezpečnostnú úroveň musí mať subjekt, aby mohol čítať z obidvoch objektov?

o Ak majú dva subjekty rozdielne bezpečnostné úrovne, akú maximálnu bezpečnostnú úroveň môže mať objekt, aby mohol byť čítaný z obidvoch subjektov?

Matematická štruktúra, ktorá umožní odpovedať na obidve existujúce otázky, sa nazýva zväz.

Zväz (L,<=) pozostáva z množiny L a čiastočného usporiadania<=. Pre každé dva prvky a,b z L existuje najmenšia horná hranica u z L a najväčšia dolná hranica l z L, t.j. platí

o a<=u, b<=u, a pre každé v z L také, že a<=v a súčasne b<=v, platí, že u<=v o l<=a, l<= b, a pre každé k z L také, že k<=a a súčasne k<=b, platí, že k<=l.

V bezpečnostnej terminológii hovoríme, že bezpečnostná úroveň b dominuje bezpečnostnej úrovni a, ak a<=b. Bezpečnostná úroveň, ktorej dominujú všetky ostatné bezpečnostné úrovne sa nazýva System Low. Bezpečnostná úroveň, ktorá dominuje všetkým ostatným bezpečnostným úrovniam sa nazýva System High.

Kedykoľvek sa stretneme s bezpečnostným systémom, v ktorom sú nejakým spôsobom porovnávané bezpečnostné atribúty, pravdepodobne zistíme, že je výhodné, ak tieto atribúty vytvárajú štruktúru zväz. Nie je nevyhnutné porozumieť zväzu na porozumenie základných faktov informačnej bezpečnosti. Na druhej strane, porozumenie zväzu uľahčí lepšie pochopenie čítaných článkov o informačnej bezpečnosti.

19

Page 20: Riadenie prístupu

Viacúrovňová bezpečnosťViacúrovňová bezpečnosť Veľa výskumu v informačnej bezpečnosti v rokoch 1970 až 1980 bolo venovaného ochrane

klasifikovaných informácií. o Informáciám boli pridelené bezpečnostné úrovne. o Osvedčenie (clearance) používateľa určovalo, ku ktorým informáciám (dokumentom) môže používateľ získať

prístup.o V IT systémoch boli aplikované bezpečnostné úrovne vychádzajúce z politiky MAC (Mandatory Access Control) a

politiky viacúrovňovej bezpečnosti (podľa Orange book).o V prvých základných verziách týchto politík sa predpokladala lineárne usporiadaná hierarchia štyroch

bezpečnostných úrovní: neklasifikované, dôverné, tajné a prísne tajné.

Pomocou samotných lineárne usporiadaných bezpečnostných úrovní možno vyjadriť iba obmedzenú množinu bezpečnostných politík. Napríklad nedá sa vyjadriť obmedzenie prístupu do tajného dokumentu projektu X iba pre riešiteľov projektu X. Evidentne prístup do dokumentov projektu X majú všetci používatelia s osvedčením aspoň tajné. Preto je potrebné zaviesť ďalšie pravidlo do bezpečnostnej politiku. Tomuto ďalšiemu pravidlu sa hovorí need-to-know.

o Nech H je množina klasifikácií s hierarchickým (lineárnym) usporiadanímo Nech C je množina kategórií, napríklad mená projektov, divízií spoločnosti, akademických katedier, Oddelenie je

podmnožina kategóriío Bezpečnostné návestie (bezpečnostná úroveň) je pár (h,c), kde bezpečnostná úroveň h je z H a oddelenie c je

podmnožina kategórií C

o Čiastočné usporiadanie <= bezpečnostných návestí je definované takto: (h1,c1)<= (h2,c2) vtedy a len vtedy, ak h1<= h2 a c1 je podmnožinou c2

o Podobne je definovaná dominancia bezpečnostných návestí.

Ak máme definované dve hierarchické klasifikácie verejný a interný (verejný<=interný) a dve kategórie personálny (PERS) a inžiniersky (ENG), potom bezpečnostné návestia vytvárajú zväz. Vo zväze vystupujú napríklad takéto čiastočné usporiadania: (public,0)<=(public,ENG), (public,0)<=(public,PER), (public,0)<=(private,0), (public,PER)<=(private,ENG), (public,ENG)<=(private,ENG), (public,PER)<=(public,PER,ENG), ... (public,PER,ENG)<=(private,PER,ENG)

System Low je (public,0), System High je (private,PER,ENG) 20

Page 21: Riadenie prístupu

Viacúrovňová bezpečnosťViacúrovňová bezpečnosť

21

private, {PER,ENG}

private, {}

private, {ENG}private, {PER}

public, {PER,ENG}

public, {ENG}public, {PER}

public, {}

Page 22: Riadenie prístupu

Referenčné monitoryReferenčné monitory

V počítačovej bezpečnosti sú tri fundamentálne koncepty, ktorú sú dostatočne blízke, aby spôsobovali pomýlenia, ale zaslúžia si, aby boli samostatne vyčleňované.

o Referenčný monitor – koncept riadenia prístupu, ktorý odpovedá abstraktnému stroju sprostredkujúcemu všetky prístupy subjektov k objektom

o Bezpečnostný kernel – hardvérové, firmvérové alebo softvérové elementy dôveryhodnej výpočtovej báze (Trusted Computing Base – TCB), ktoré implementujú koncept referenčného monitora. Musí sprostredkovať všetky prístupy, musí byť chránený pred modifikáciou a musí byť verifikovaný ako korektný

o Dôveryhodná výpočtová báza – všetky ochranné mechanizmy v počítačovom systéme, vrátane hardvéru, firmvéru a softvéru. Ich kombinácia je zodpovedná za presadzovanie bezpečnostnej politiky. TCB pozostáva z jedného alebo viacerých komponentov, ktoré spolu presadzujú jednotnú bezpečnostnú politiku v celom systéme alebo produkte. Schopnosť TCB korektne presadzovať bezpečnostnú politiku závisí výlučne na mechanizmoch v rámci TCB a na správnych vstupoch parametrov od systémových administrátorov (napríklad oprávnenia používateľa) majúcich vzťah k bezpečnosti.

Referenčný monitor je abstraktný koncept, bezpečnostný kernel je jeho implementácia a TCB obsahuje bezpečnostný kernel medzi ostatnými ochrannými mechanizmami. Kritické požiadavky na implementáciu referenčného monitoru sú:

o Mechanizmus validácie referencie (prístupe) musí byť odolný proti útokom

o Mechanizmus validácie referencie (prístupe) musí byť vždy zavolaný (úplné sprostredkovanie)

o Mechanizmus validácie referencie (prístupe) musí byť dostatočne malý, aby mohol byť analyzovaný a testovaný, s cieľom preverenia jeho korektnosti.

22

Page 23: Riadenie prístupu

Umiestnenie referenčného monitoraUmiestnenie referenčného monitora Principiálne môže byť referenčný monitor umiestnený kdekoľvek v architektúre počítačového systému. V

príkladoch možných rozhodnutí návrhárov možno nájsť:o V hardvéri – riadenie prístupu do pamäti, privilégiá procesovo V jadre operačného systému – hypervízor je virtuálny stroj, ktorý presne emuluje hostový počítač, na ktorom sa

vykonáva. Môže byť použitý pre oddelených používateľov alebo aplikácie. Každému poskytuje separátny virtuálny stroj.

o V operačnom systéme – príkladom sú operačné systému Unix a Windows.o Vo vrstvách služieb – príkladom môže byť riadenie prístupu v DBMS, Java Virtual Machine, CORBA middleware

architektúra.o V aplikácii – vývojári aplikácií s veľmi špecifickými bezpečnostnými požiadavkami sa môžu rozhodnúť uprednostniť

zahrnúť bezpečnostné kontroly do aplikačného kódu pred zavolaním bezpečnostných služieb z nižšej systémovej vrstvy.

V aplikácii môže byť referenčný monitor zabezpečený nižšou systémovou vrstvou, čo je typický vzor riadenia prístupu v operačnom systéme. Aplikačný program žiada prístup pre ochranu zdrojov. Referenčný monitor je časťou kernelu operačného systému a sprostredkováva všetky žiadosti o prístup. Riadenie prístupu v CORBE sleduje tento istý vzor.

Program môže byť vykonávaný interpretom. Interpret sprostredkuje všetky žiadosti programu o prístup. Java zjednodušuje tento prístup a program je umiestnený v referenčnom monitore.

V treťom prípade je program prepísaný tak, aby obsahoval kontroly riadenia prístupu. Príkladom sú in-line referenčné monitory.

23

Aplikácia

Kernel

Program

RM

Program

RM

RM

Program

RM v kerneli Interpret In-line RM

Page 24: Riadenie prístupu

Vykonávacie monitoryVykonávacie monitory Pri rozhodovaní o žiadosti o prístup musí referenčný monitor pracovať s

informáciou o žiadosti a o cieli, ktorý žiadosť referencuje. Subjekty sú procesy vykonávajúce programy. Možno rozlišovať medzi referenčnými monitormi podľa informácie, ktorú monitory skutočne použijú na rozhodnutie o prístupe:

o Vykonávací monitor – pozerá sa iba na históriu vykonávajúcich krokov a neskúša predikovať výsledok možných budúcich vykonávaní. Tento variant je typicky nachádzaný v operačných systémoch, ktoré uchovávajú iba konečné (a malé) množstvo informácií o histórii vykonávania.

o Monitor so statickou kontrolou – referenčný monitor by mal brať do úvahy pri svojom rozhodovaní všetky možné budúce vykonávania cieľa. Monitor so statickou kontrolou je príklad tohto prístupu.

o Referenčný monitor môže prepísať cieľ, aby zabezpečil, že udelenie žiadosti o prístup neporušuje bezpečnostnú politiku.

24

Page 25: Riadenie prístupu

Integrita operačného systémuIntegrita operačného systému Aké bezpečnostné mechanizmy by mali byť obsiahnuté v bezpečnostnom kerneli?

Predpokladajme operačný systém, ktorý by mohol presadiť všetky politiky prístupu používateľa. Neautorizovaný prístup k zdrojom je nemožný, pokiaľ operačný systém funguje tak, ako bolo zamýšľané, aby fungoval. Toto je však „pokyn“ pre útočníka, ktorý sa snaží odstaviť ochranné mechanizmy operačného systému tým, že operačný systém modifikuje. Teraz je to primárne ochrana integrity operačného systému, aj keď iniciálne išlo o ochranu dôvernosti. Operačný systém je nielen arbiter žiadostí o prístup, ale sám je i objekt riadenia prístupu. Novou bezpečnostnou politikou je:

o Používateľ nesmie byť schopný modifikovať operačný systém..

Vyššie uvedené je generická bezpečnostná politika, požadujúca silnú a efektívnu podporu. Aby sme si skomplikovali život, musíme uviesť dve protirečivé požiadavky na operačný systém vo vzťahu k používateľovi:

o Používateľ by mal byť schopný používať (zavolať) operačný systém.o Používateľ by nemal byť schopný zneužiť operačný systém.

Na dosiahnutie týchto cieľov sa spoločne používajú dva koncepty: stavové informácie a riadené zavolanie (obmedzené privilégiá). Tieto dva koncepty je možné použiť v ľubovoľnej vrstve počítačového systému, či už to je aplikačný softvér, operačný systém alebo hardvér. Mechanizmy týchto konceptov však môže útočník zablokovať, pokiaľ sa dostane do nižších vrstiev operačného systému.

Prvý koncept – predpoklad, že operačný systém je schopný sa sám chrániť pred používateľmi je, že má schopnosť rozlíšiť medzi výpočtami „v zastúpení“ operačného systému a „v zastúpení“ používateľa. 25

Page 26: Riadenie prístupu

Integrita operačného systémuIntegrita operačného systému Na rozlíšenie týchto stavov sa používa stavový príznak, ktorý umožňuje

operačnému systému pracovať v rôznych režimoch. Napríklad procesor 80x86 má dva stavové bity, ktoré indikujú štyri režimy. Operačný systém Unix rozlišuje medzi režimom supervízor (root) a používateľ.

K čomu je rozlíšenie režimov dobré? Napríklad na zastavenie používateľa pred priamym zápisom do pamäti a korupciou logickej štruktúry súboru. Operačný systém môže povoliť prístup zápisu iba ak procesor je v režime supervízor.

Druhý koncept – pokračujeme v predchádzajúcom príklade. Používateľ chce vykonať operáciu vyžadujúcu režim supervízora, napríklad zapísať do pamäti. Aby sa procesor vysporiadal s touto žiadosťou, musí prepnúť medzi režimami. Ale ako toto prepnutie urobí? Jednoducho zmenou stavového bitu do režimu supervízora. Toto prepnutie mu umožní získať všetky privilégiá režimu. To znamená, že je žiaduce, aby iba systém vykonával preddefinovanú množinu operácií v režime supervízor a potom sa navrátil späť do používateľského režimu predtým než odovzdá riadenie používateľovi späť. Tomuto procesu sa hovorí riadené vyvolanie.

26