1 / 26

Riadenie prístupu

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.

herb
Télécharger la présentation

Riadenie prístupu

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. ACL Subjektu Vykonaj operáciu Referenčný monitor Subjekt Objekt Zdroj Žiadosť Ochrana Zdroj Riadenie 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 2

  3. vykonanie pripojenie čítanie zápis sledovanie X X zmena X X Prístupové operá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 • Sledovanie (Observation): subjekt vidí objekt a jeho obsah • 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

  4. Prístupové operácie • Dôvodom na takúto definíciu prístupových práv sú: • 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. • 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. • 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). • 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

  5. Prístupové operá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í • Čítanie: čítanie zo súboru • Zápis: zapísanie do súboru • Vykonanie: vykonanie (programového) súboru • Prístupové práva k adresárom vyjadruje týmito tromi prístupovými operáciami • Čítanie: vypíš obsah adresárov • Zápis: vytvor alebo premenuj súbor v adresári • 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

  6. Prístupové operácie • V operačnom systéme Windows 2000 štandardnými operáciami prístupu sú: • Riadenie čítania • Zrušenie • Zápis DACL (modifikácia zoznamu riadenia prístupu) • Zápis vlastníka (modifikácia vlastníka zdroja) • 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: • 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 • 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 • Používatelia sú zaradení do rolí • Role majú pridelené prístupové práva 6

  7. Matica riadenia prístupu • Spôsoby implementácie riadenia prístupu musia zabezpečiť dve súperiace požiadavky: • Musí napomôcť vyjadriť vyžadovanú politiku riadenia prístupu • Musí byť schopná umožniť kontrolu, či je politika správneuchopená • 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 • v prípade veľkého počtu subjektov a objektov v systéme je táto matica rozsiahla • matica býva štandardne riedka, väčšina subjektov nemá prístupové práva do väčšiny objektov • 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

  8. bibliog help.txt c_comp sys_clk printer user_A ORW R X R W user_B R R X R W sys_MGR - ORW OX ORW O Matica 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) 8

  9. Zoznamy riadenia prístupu • Ďalším spôsobom implementácie riadenia prístupu sú zoznamy riadenia prístupu (ACL – Access Control List). • Každý objekt má k sebe pripojený zoznam subjektov s prístupovými právami • 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ú • bibliog: user_A:ORW, user_B:R • help.txt: user_A:R, user_B:R, sys_MGR:ORW • c_comp: user_A:X, user_B:X , sys_MGR:OX • sys_clk: user_A:R, user_B:R , sys_MGR:ORW • 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

  10. Oprávnenia • Ďalším spôsobom implementácie riadenia prístupu sú oprávnenia (capabilities). • Iba ťažko by bolo možné priamo implementovať maticu riadenia prístupu • Existujú výber medzi dvomi zrejmými voľbami. Prístupové práva môžu byť zviazané alebo so subjektom alebo s objektom. • 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ú • user_A: bibliog:ORW, help.txt:R, c_comp:X, sys_clk:R, printer:W • user_B: bibliog:R, help.txt:R, c_comp:X, sys_clk:R, printer:W • 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 • Je obťažné získať prehľad, kto má oprávnenia k danému objektu • 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

  11. Vlož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. Skupina je nástroj na zjednodušenie definovania prístupovej politiky Používatelia s podobnými prístupovými právami sú vyzbieraní do skupín a skupinám sú pridelené prístupové práva 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. Používatelia u3 u5 u1 u4 u2 Skupiny g2 g1 Objekty o4 o6 o1 o2 o3 o5 11

  12. Vlož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. Pri špecifikácii bezpečnostnej politiky sa musí vedieť ako bude referenčný monitor riešiť konflikty. 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. Používatelia u3 u1 u2 Skupiny g1 Objekty o4 o1 o2 o3 o5 12

  13. Privilégiá a role Privilégiá – súbor práv na vykonávanie určitých operácií. 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. 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. Subjekty majú odvodené svoje prístupové práva od vykonávanej roly. Role Based Access Control (RBAC) vychádza z používateľov a z úloh, ktoré používatelia vykonávajú Používatelia u3 u5 u1 u4 u2 Privilégiá pr2 pr1 op4 op6 op1 op3 op5 Operácie op2 13

  14. RBAC Prechodná vrstva vložená medzi subjekty a objekty napomáha redukovať zložitosť spravovania riadenia prístupu. Prechodná vrstva môže byť vložená na viacerých miestach Na spravovanie riadenia prístupu môže byť použitých viacero vrstiev Pri voľbe prechodnej vrstvy treba brať do úvahy 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. 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. 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

  15. RBAC 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ú: Používateľské profily v operačnom systéme IBM AS/400 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. používatelia roly procedúry datové typy objekty 15

  16. Ochranné 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: 0 – jadro (kernel) operačného systému 1 – operačný systém 2 – utility 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“. 3 2 1 Ochranné okruhy 0 16

  17. Ochranné 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): Root a operačný systém sa vykonáva v okruhu 0 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: Neutrino microkernel sa vykonáva v okruhu 0 Neutrino proces manager sa vykonáva v okruhu 1 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

  18. Č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í: Reflexívnosť: pre každé a z L platí, že a<=a Tranzitívnosť: pre každé a,b,c z L, ak a<=b a b<=c, potom a<=c 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. Sabc Sab Sac Sbc Sa Sb Sc S0 18

  19. Š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: Ak majú dva objekty rozdielne bezpečnostné úrovne, akú minimálnu bezpečnostnú úroveň musí mať subjekt, aby mohol čítať z obidvoch objektov? 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á hranicau z L a najväčšia dolná hranical z L, t.j. platí a<=u, b<=u, a pre každé v z L také, že a<=v a súčasne b<=v, platí, že u<=v 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ň bdominuje 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ývaSystem 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

  20. 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í. Informáciám boli pridelené bezpečnostné úrovne. Osvedčenie (clearance) používateľa určovalo, ku ktorým informáciám (dokumentom) môže používateľ získať prístup. 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). 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. Nech H je množina klasifikácií s hierarchickým (lineárnym) usporiadaním Nech C je množina kategórií, napríklad mená projektov, divízií spoločnosti, akademických katedier, Oddelenie je podmnožina kategórií 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 Č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 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 Lowje (public,0), System High je (private,PER,ENG) 20

  21. Viacúrovňová bezpečnosť private, {PER,ENG} private, {ENG} private, {PER} private, {} public, {PER,ENG} public, {PER} public, {ENG} public, {} 21

  22. Referenč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é. Referenčný monitor – koncept riadenia prístupu, ktorý odpovedá abstraktnému stroju sprostredkujúcemu všetky prístupy subjektov k objektom 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ý 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ú: Mechanizmus validácie referencie (prístupe) musí byť odolný proti útokom Mechanizmus validácie referencie (prístupe) musí byť vždy zavolaný (úplné sprostredkovanie) Mechanizmus validácie referencie (prístupe) musí byť dostatočne malý, aby mohol byť analyzovaný a testovaný, s cieľom preverenia jeho korektnosti. 22

  23. Umiestnenie 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ť: V hardvéri – riadenie prístupu do pamäti, privilégiá procesov 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. V operačnom systéme – príkladom sú operačné systému Unix a Windows. Vo vrstvách služieb – príkladom môže byť riadenie prístupu v DBMS, Java Virtual Machine, CORBA middleware architektúra. 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. Program RM Aplikácia Program Program RM Kernel RM In-line RM RM v kerneli Interpret 23

  24. Vykoná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: 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. 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. Referenčný monitor môže prepísať cieľ, aby zabezpečil, že udelenie žiadosti o prístup neporušuje bezpečnostnú politiku. 24

  25. Integrita 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: 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: Používateľ by mal byť schopný používať (zavolať) operačný systém. 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

  26. Integrita 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

More Related