Bezpecnost v operacnich systemech

Neco z historie

v pocatcich vypocetni techniky byly pouzivany kompaktni kody primo ovladajici jednotliva zarizeni vypocetniho systemu

prvnimy predchudci dnesnich OS byly tzv. exekutivy (executives) - jednoduche linkery, loadery, ...

zlom predstavoval nastup monitoru - prvnich multiprogramovych systemu, sami ridi pridelovani prostredku systemu, nastupuje problem vzajemne ochrany uzivatel

Chranene objekty

  1. pamet
  2. sdilena zarizeni typu disky
  3. seriove znovupouztelna zarizeni - tiskarny, pasky
  4. spustitelne programy
  5. sdilena data

Metody ochrany objektu v operacnich systemech

samozrejme je mozna kombinace nekolika metod separace

metody jsou serazeny dle rostouci (implementacni) slozitosti a zaroven dle klesajici spolehlivosti

system muze poskytovat ruzne urovne ochrany objektu

  1. zadna ochrana - postacujici pokud dochazi k samovolne casove separaci
  2. isolace - (semi)paralelne bezici procesy jsou zcela oddeleny a vubec o sobe vzajemne nevi, system zajistuje uplne ukryti objektu ostatnich procesu
  3. sdileni vseho nebo niceho - vlastnik objektu deklaruje, zda je objekt pristupny vsem (public), nebo soukromy (private) a tedy viditelny jen pro neho
  4. sdileni s omezenymi pristupy - OS testuje opravnenost kazdeho pokusu o pristup k danemu objektu, k danemu objektu a subjektu existuje zaznam zda subjekt ma pravo pristupovat k prislusnemu subjektu
  5. sdileni podle zpusobilosti (share by capability) - nadstavba predchoziho zpusobu sdileni, rozsah opravneni muze dynamicky zaviset na aktualnim kontextu
  6. limitovane pouziti objektu - nespecifikuje pouze zda subjekt smi pristupovat k danemu objektu, ale i operace, ktere subjekt smi s objektem provadet

seznam je opet serazen podle (implementacni) slozitosti, ktere tentokrat primo umerne odpovida kvalita poskytovane ochrany

Granularita - kontrola pristupu muze byt implementovana na ruznych urovnich (byte, veta, soubor, adresar, ...), je potrebne volit mezi reziji kontroly a dostatecne jemnym rozlisenim

Ochrana pameti a adresovani

Ochrana pameti je zakladnim pozadavkem pro zajisteni bezpecnosti, ma-li byt spolehliva, je nutna hardwarova podpora.

HW podpora navic poskytuje dostatecnou efektivitu ochrany.

Ohrada (fence)

stanovi se hranice, operacni pamet na jednu stranu od teto hranice pouziva OS, na druhou stranu aplikacni programy

metoda je vhodna pro jednoduche jednouzivatelske systemy, umoznuje vsak pouze chranit OS, nemuze byt pouzita pro vzajemnou ochranu uzivatelu vetsiho systemu

implementace velmi jednoducha:

Relokace

programy jsou vytvoreny tak, jako by v pameti lezely od adresy 0, v ramci procesu spousteni programu je ke vsem odkazum v programu pripocten relokacni faktor

aplikace tak nemuze zasahovat do oblasti, v nichz lezi system

metoda ma stejne nevyhody, jako predchozi zpusob ochrany pameti

Base/Bound registry

... preneseni myslenek predchozich metod do prostredi multiuzivatelskych systemu

k adresam generovanym programem je pripocitavana hodnota bazoveho registru, kazdy odkaz je oprovnavan s hodnotou bound registru, zda je mensi

program ma tak shora i zdola omezen prostor, v nemz muze pracovat

metoda umoznuje vzajemne oddeleni jednotlivych uzivatelu, nechrani vsak kod aplikacniho programu pred chybou

moznym rozsirenim je pouzivat dva pary registru, jeden pro vymezeni oblasti pro kod procesu, druhy pro datovou zonu

nevyhodou je nemoznost selektivniho sdileni pouze nekterych dat

Znackovana (Tagged) architektura

s kazdou adresou (slovem) v pameti stroje je spojeno nekolik tag bitu, jejichz obsah urcuje typ zde ulozenych dat a povolene operace

obsah tag bitu je testovan pri kazdem pristupu k obsahu teto adresy, tag bity mohou byt meneny pouze privilegovanymi instrukcemi

alternativou muze byt pouzivani jednoho tagu pro cely blok slov

Segmentace

cely program sestava z nekolika bloku - segmentu - ktere mohou byt nezavisle ulozeny do pameti

program potom generuje odkazy ve tvaru <jmeno_segmentu><ofset>

jmeno_segmentu je pomoci systemem udrzovaneho segmentoveho adresare prevedeno na adresu pocatku segmentu, ke ktere je pricten ofset

casto je tez ofset porovnan s velikosti segmentu, aby se zajistilo, ze program nesaha "za segment"

Metoda jiz poskytuje dostatecne prostredky pro sdileni dat, navic umoznuje ochranu kodu programu a pripadne i vybranych dat. Rovnez je schopna chranit uzivatele navzajem.

Strankovani

metoda velmi podobna segmentaci, jen predpokladame segmenty konstantni velikosti = stranky

opet dvouslozkove adresovani <cislo_stranky><ofset> , ochrana proti adresovani za stranku je vyresena samovolne tim, ze nezle udelat vetsi ofset, nez je velikost stranky

moznost ochrany obsahu stranek je ponekud slabsi nez v pripade segmentu, nebot neni prilis jasna vzajemna souvislost obsahu stranek a rozdeleni programu a dat do stranek

Ochrana obecnych objektu

s rozvojem multiprogramovani vzrusta skala objektu, ktere je treba chranit

na rozdil od problemu ochrany pameti, zde nemusi existovat centralni arbitr, pres ktereho jsou smerovany vsechny pristupy, navic typu pristupu muze byt cela rada

cile ochrany objektu

Kontrolovat kazdy pristup - subjekt muze pozbyt pristupova prava a tedy je nutno mu zabranit v dalsim pouzivani objektu

Povoleni co nejmensich prav - subjekt by mel mit pouze nejmensi mozna opravneni nutna ke korektnimu plneni jeho ukolu a to i v pripade, ze pripadna dalsi prava by pro nej byla bezcenna - toto usporadani snizuje moznost pruniku v pripade selhani casti ochranneho mechanismu

Overeni prijatelneho pouzivani - nekdy je daleko podstatnejsi nez prideleni ci odepreni pristupu moci kontrolovat, co subjekt s danym objektem provadi

Mechanismy ochrany obecnych objektu

Adresar (directory)

metodu popiseme pro pripad uzivatelu systemu v roli subjektu a souboru coby objektu, lze ji vsak snadno rozsirit na libovolne objekty a subjekty

kazdy soubor ma sveho vlastnika, ktery k nemu vlastni veskera prava vcetne prava urcovat rozsah opravneni ostatnich uzivatelu k tomuto souboru

s kazdym uzivatelem je spojena specielni struktura - adresar - obsahujici odkazy na vsechny soubory, k nimz ma dany uzivatel nejake opravneni, vcetne popisu tohoto opravneni

zadny uzivatel nesmi zapisovat do sveho adresare

Nevyhodou muze byt velky rozsah adresaru a velmi obtizna sprava a upravy takto pridelovanych opravneni. Rovnez udrzeni prehledu o tom, kdo k danemu souboru ma jaka prava muze byt problematicke.

Seznam opravneni (Access Control List)

opacny pristup k problemu

tentokrat je s kazdym objektem udrzovan seznam informaci, ktere subjekty k nemu maji jaka opravneni

metoda umoznuje snadno pridelovat implicitni prava subjektum pripadne skupinam subjektu

pri vhodnem oznaceni subjektu a pouziti expanznich znaku muze byt tado metoda dostatecne pruzna

Pr: Pepek_Group1_Troja

*_Group1_*

seznamy zpravidla byvaji udrzovany setridene tak, ze zaznamy s expanznimi znaky jsou na konci - tak staci hledat prvni shodu s identifikaci subjektu a pouzit timto zaznamem specifikovane opravneni

Pristupova matice (Access Control Matrix)

radky matice odpovidaji jednotlivym subjektum, sloupce objektum

v policku danem radkem a sloupcem je zaznam o urovni opravneni odpovidajiciho subjektu k prislusnemu objektu

pristupova matice je zpravidla velmi velka zalezitost, zhusta ridka

Zpusobilost (Capability)

Zpusobilost budeme chapat jako nefalsovatelny token, jehoz vlastnictvi dava vlastnikovi specificka prava k danemu objektu. Lze chapat jako listek do kina.

jednou z metod zajsteni nefalsovatelnosti je, ze tokeny se nepredavaji primo subjektum, ale jsou udrzovany v chranene oblasti pameti, pristupne pouze systemu

pri pristupu k objektu tak system zkontroluje existenci prislusneho tokenu, tento postup lze urychlit tim, ze zvlast udrzujeme seznam Zpusobilosti prave beziciho procesu

vyhodou metody je, ze dovoluje definovat nove dosu nezname zpusoby pouzivani objektu a pridelovat odpovidajici opravneni

nevyhodou opet ponekud obtizna sprava techto tokenu, zejmena odebrani Zpusobilosti je netrivialni operace

Proceduralne orientovany pristup

namisto pridelovani obecneho pristupu k subjektu (cteni, zapis, ...) muzeme pridelovat pravo pouzivat nekterych funkci z rozhrani, prostrednictvim ktereho je objekt zpristupnovan

metoda podporuje koncept skryvani a zapouzdrovani informaci popsany v minule lekci

nevyhodou je jista ztrata efektivity a rychlosti pristupu

Ochrana souboru

kazdy multiuzivatelsky system musi poskytovat mechanismus na ochranu souboru

Opet z historie

puvodni IBM OS poskytoval nasledujici zpusob ochrany

uzivatele jsou v zasade duveryhodni a protoze nechteji, aby jim nekdo neco udelal s jejich soubory, nedelaji to ostatnim

pristup ke specifickym souborum muze administrator vazat na zadani hesla

Ochrana po skupinach

uzivatele jsou podle sveho zamereni, pracovniho zarazeni, ..., vhodne rozdeleny do skupin

pro ucely ochrany souboru je svet rozdelen na vlastnika souboru, skupinu, do ktere vlastnik patri a ostatni uzivatele

predpokada se, ze uzivatele v ramci skupiny potrebuji sdilet data

pri vytvoreni souboru vlastnik specifikuje, jaka prava prideluje sobe, uzivatelum ve stejne skupine, ostatnim

metoda je jednoducha, snadno implementovatelna lec neposkytujici dostatecne jemne rozliseni, navic je vetsinou nutne, aby kazdy uzivatel byl prave v jedne skupine, jinak nastavaji problemy s pridelovanim prav skupinam

Hesla nebo jine tokeny

pri vytvoreni souboru vlastnik specifikuje hesla, potrebna pro jiste mody pristupu k souboru, heslo zasle uzivatelum, kteri maji mit pristup

system splni zadost o pristup k souboru pouze tomu, kdo se prokaze odpovidajicim heslem

nevyhodou je, ze v pripade zapomenuti neni mozno zjistit, jak heslo vypadalo, v pripade, ze dojde k vyzrazeni hesla je slozite nastavit nove, stejne obtizne je odejmout pravo pristupu

Docasne propujceni opravneni

mechanismus znamy ze systemu UNIX.

stejne pridelovani prav jako v pripade ochrany po skupinach, navic je mozno stanovit, ze (spustitelny) soubor smi byt provaden s opravnenim vlastnika

prostrednictvim rutin bezicich s opravnenim vlastnika lze rizene pristupovat k souborum, ke kterym uzivatel primy pristup nema

problemem popsanych schemat je jista tezkopadnost, uzivatel nemuze selektivne pridelovat prava jistym uzivatelum k jistym skupinam souboru

kontrolni matice a podobne metody jsou zase prilis rozsahle a obtizne spravovatelne

VAX VMS/SE

ke kazdemu souboru muze uzivatel vytvorit Seznam opravneni udavajici kdo ma jaka prava

kazdy uzivatel je clenem jedne skupiny, navic administrator muze vytvorit skupinu typu obecny identifikator , a tuto skupinu mohou uzivatele uvadet v Seznamech opravneni

Seznamy opravneni mohou byt tez pouzity pro pridelovani pristupu k ostatnim systemovym zdrojum

Autentizace subjektu

shora popsane bezpecnostni mechanismy odvijeji svoji cinnost od informace, kdo zada jaky pristup

je tedy nutne mit mechanismus pro autentizaci subjektu

Hesla

jednoduche myslenkove i implementacne, overuje se platnost paru
<identifikace:heslo>

mechanismus prijeti teto dvojice by nemel poskytovat utocnikovi zbytecne informace o systemu

prihlasovani do systemu lze navic omezit na urcity cas ci misto, jisty omezeny pocet soucasnych prihlaseni daneho uzivatele do systemu

Hledani hesel

System musi mit moznost kontrolovat korektnost zadaneho hesla, tedy je nutne aby udrzoval informace o vsech heslech

Textove soubory hesel

soubor obsahuje v textove podobe dvojice <identifikace:heslo>

velmi nevhodne, hesla lze zjistit z odcizenych zaloh, z dumpu pameti pri padech systemu, dojde-li chybou nektere komponenty systemu v vyzrazeni souboru hesel

Zasifrovane soubory hesel

pro sifrovani je mozne pouzit konvencnich sifer, nebo lepe kryptografickych hasovacich funkci

soubory zasifrovanych hesel mohou byt volne pristupne

protoze by v pripade dvou uzivatelu se stejnym heslem vysla stejna sifra, je vhodne pred sifrovanim k heslu pridat nahodny retezec (salt), salt je uchovavan zaroven se zasifrovanym heslem a pri verifikaci vzdy pridan k zadanemu heslu

One time passwords

resi problemy uschovy hesel

namisto konstantni fraze ma uzivatel prirazenu konstantni funkci (vhodny matematicky vypocet, desifrovani soukromym k.licem, ...)

v procesu autentizace obdrzi od systemu nahodne zvolene vstupni parametry a odpovi vysledkem

metoda obzvlaste vhodna pro vzajemnou autentizaci stroju

Navrh bezpecnych operacnich systemu

na kvalite operacniho systemu zavisi bezpecnost celeho mechanismu ochrany dat

OS kontroluje chovani uzivatelu a programu a v konecnem dusledku zpristupnuje utajovane informace

proces vyvoje bezpecneho OS lze rozdelit do nekolika fazi

Bezpecnostni modely

prvni fazi tvorby bezpecneho OS je volba vhodneho bezpecnostniho modelu

pripomenme dodrzeni zakladnich pozadavku bezpecnosti:

utajeni, integrita, dostupnost

dale budeme predpokladat, ze umime rozhodnout, zda danemu subjektu poskytnout pristup k pozadovanemu objektu, modely poskytuji pouze mechanismus pro rozhodovani

Jednourovnove modely

jsou vhodne pouze pro pripady, kdy staci jednoduche ano/ne rozhodovani, zda danemu subjektu poskytnout pristup k pozadovanemu objektu

Monitor model

tez reference monitor

vyhodou jednoduchost a snadna implementovatelnost

nevyhodou je, ze proces poskytujici sluzby monitoruje volan pri kazdem pristupu k libovolnemu objektu, coz system velmi zatezuje

dalsi nevyhodou je, ze tento model je schopen kontrolovat pouze prime pristupy k datum, ale neni schopen zachytit napr. nasledujici pripad

if profit <= 0 then 
   delete file F
else
   write file F, "_zprava_"
endif

subjekt majici legitimni pristup k souboru F muze ziskavat informace o promenne profit, k niz by pristup mit nemel

Information flow model

odstranuje posledne jmenovanou nevyhodu predchoziho modelu

autori si vsimli, ze uzivatel muze ziskavat i jine informace, nez na ktere se explicitne pta

jiz ve fazi vyvoje je provadeno testovani vsech modulu, zda jejich vystupy zavisi na interakcich se senzitivnimi daty a pripadne jakym zpusobem

z techto dilcich vysledku je sestavovan celkovy graf zavilosti

veskere pozadavky na system prochazeji inteligentnim filtrem, ktery zjistuje, zda nedochazi k nezadouci kompromitaci informaci

Viceurovnove modely

v predchozich modelech jsme meli jednoduche vztahy objekt je/neni senzitivni, subjekt ma/nema pristup k danemu objektu

obecne vsak muze byt nekolik stupnu senzitivity a "opravnenosti"

Military security model

u zelenych mozku je kazda informace zarazena do nektere z kategorii utajeni (napr. unclassified, confidental, secret, top secret), ktere jsou disjunktni

silne uplatneni zde ma princip nejmensich privilegii - kazdy subjekt ma mit pouze takova opravneni, aby mohl konat svoji praci

vsechny chranene informace jsou rozdeleny podle obsahu do oblasti (compartments), informace muze byt i nekolika oblastech zaroven

klasifikaci informace potom rozumime dvojici <stupen_utajeni, oblasti>

aby subjekt mohl pouzivat pozadovanou informaci, musi mit dostatecne opravneni.

opravneni ma stejny tvar jako klasifikace - <stupen_utajeni, oblasti>, tedy dany subjekt smi pouzivat informace az do stupen_utajeni v techto oblastech.

Relace odpovida opravneni subjektu S k danemu objektu O.

Pozadavky na stupen utajeni byvaji oznacovany jako hierarchicke, rozdeleni na oblasti jako nehierarchicke omezeni.

Svazovy model (Lattice model)

predchozi military model je specielnim pripadem tohoto modelu

relace je castecnym usporadanim, mnozina klasifikaci vsech informaci v systemu tvori svaz, stejne tak mnozina opravneni vsech subjektu

v runych oblastech se pouziva ruznych svazu, napr. v komercni oblasti jsou obvykle stupne utajeni public, company confidental, high security, rovnez rozdeleni do oblasti se lisi pripad od pripadu ...

svazovy model je casto pouzivanym modelem v mnoha prostredich

dale popiseme dva modely, zabyvajici se tokem informaci uvnitr systemu

Bell-LaPadula model

model popisuje povolene presuny informaci, takove, aby bylo zajisteno jejich utajeni

pro kazdy subjekt S resp. objekt O v systemu necht je definovana bezpecnostni trida C(S) resp. C(O)

bezpecne presuny informaci maji nasledujici vlastnoti:

Vlastnost jednoduche bezpecnosti (Simple Security Property):

Subjekt S muze cist objekt O prave kdyz

*-vlastnost (*-Property):

Subjekt S majici pravo cteni k objektu O muze zapisovat do objektu P prave kdyz

Obycejne nepotrebujeme tak silna omezeni, ktera klade *-vlastnost. Casto je tato vlastnost ponekud oslabena v tom smyslu, ze system povoli zapis do objektu nizsi bezpecnostni tridy, pokud zapisovana data nezavisi na ctenych udajich.

Model byl je pouzivan v systemech, ktere paralelne zpracovavaji informace ruzneho stupne utajeni.

Biba model

predchozi model se vsak vubec nezabyva integritou dat, Biba model je dualnim modelem k Bell-LaPadula modelu

Necht pro kazdy subjekt S resp. objekt O v systemu je definovana integritni bezpecnostni trida I(S) resp. I(O). Obdobne jako v predchozim pripade definujeme:

Vlastnost jednoduche integrity (Simple Integrity Property):

Subjekt S muze modifikovat objekt O prave kdyz

Integritni *-vlastnost (Integrity *-Property):

Subjekt S majici pravo cteni k objektu O muze zapisovat do objektu P prave kdyz

Biba model se zabyva zajistenim integrity a tedy i duveryhodnosti dat. Bepecnostni trida entity vpodstate popisuje miru jeji duveryhodnosti pro ostatni.

Tento model vubec neresi utajeni dat.

Prestoze byla ucinena rada pokusu o nalezeni kompromisu mezi zajistenim integrity a utajeni, dosud neexistuje obecne prijaty model, ktery by resil oba problemy. Nasledujici modely se zabyvaji teoretickymi limity abstraktnich bezpecnostnich systemu.

Graham-Denning model

model pracuje s mnozinou subjektu S, mnozinou objektu O, mnozinou prav R a pristupovou matici A.

Kazdy objekt ma prirazen jeden subjekt nazyvany vlastnik, kazdy subjekt ma prirazen jiny subjekt nazyvany kontroler.

Model definuje nasledujici prava:

Nasledujici tabulka uvadi podminky nutne pro vykonani operaci s pristupovymi pravy.
vytvorit objekt o
-
vytvorit subjekt s
-
zrusit objekt ovlastnik je v A[x,o]
zrusit subjekt svlastnik je v A[x,s]
cist pristupova prava s k o kontroler je v A[x,s], nebo vlastnik v A[x,o]
zrusit pristupove pravo r subjektu s k o kontroler je v A[x,s], nebo vlastnik v A[x,o]
pridelit s pravo r k objektu o vlastnik je v A[x,o]
predat pristupove pravo r nebo r* k objektu o subjektu s r* je v A[x,o]

r* oznacuje predatelne pravo

Take-Grant system

model pracuje s ctyrmi zakladnimi primitivami: create, revoke, take, grant.

predpokladame, ze systemu obsahuje mnozinu subjektu S, mnozinu objektu O, objekty delime na aktivni (zaroven i subjekty) a pasivni (nejsou subjekty) a mnozinu prav R

Pro popis operaci pouzijeme nasledujici notaci:

Subjekt s ma k objektu o opravneni r.

create(o,r) - vytvoreni objektu

revoke(o,r) - odebrani opravneni

grant(o,p,r) - predani opravneni

take(o,p,r) - prevzeti opravneni

Vyhodou popsaneho systemu je, ze umoznuje v subpolynomialnim case resit dotazy na dostupnost jisteho objektu pro dany subjekt.

Navrh bezpecneho operacniho systemu

implementace bezpecnostnich mechanismu je v primem rozporu s efektivitou systemu

OS vykonava nekolik s bezpecnostni uzce souvisejicich cinnosti:

Bezpecnost musi byt brana v potaz ve vsech aspektech navrhu systemu a musi byt zapracovana jiz v prvotnim navrhu. Je velmi obtizne ji "pridat" do hotoveho navrhu.

Nasledujici principy je vhodne mit na pameti:

Nejmensi prava - kazdy subjekt by mel mit pouze nezbytna prava

Ekonomicky navrh - bezpecnosni system ma byt maly a jednoduchy, pak je testovatelny a verohodny

Otevreny navrh - bezpecnostni mechanismus by mel byt verejne znamy (a oponovany) a mel by zaviset na bezpecnosti co nejmene objektu

Uplne zprostredkovani - veskere pristupy k objektum zprostredkovava a testuje OS

Povolovani operace - co neni vyslovne povoleno, je zakazano

Rozdelene opravneni - pristup k objektum by mel zaviset na vice podminkach (napr. spravna autentizace a vlastnictvi klice)

Nejmensi sdilene prostredky - sdilene moduly jsou potencialnim kanalem pro unik informaci, melo by jich byt co nejmene

Snadna pouzitelnost - mechanismus neni obchazen, kdyz se neplete

Virtualni adresni prostor

IBM MVS provadi logicke oddeleni uzivatelu, ktere poskytuje dojem fyzicke separace

pomoci mechanismu strankovani jsou cela oddeleny adresni prostory jednotlivych uzivatelu, kazdy uzivatel vidi pouze svuj prostor, do kazdeho z uzivatelskych prostoru je mappvana oblast pameti obsahujici vlastni system, cimz vznika dojem, ze uzivatel ma cely system sam pro sebe

Virtual machine

operacni system IBM VM poskytuje nejen virtualni pamet, ale provadi virtualizaci celeho pocitace - I/O zarizeni, file-systemu a dalsich zdroju

simulovany stroj muze mit naprosto odlisne vlastnosti od vlastnosti pocitace, na kterem OS VM bezi

poskytovana ochrana je tedy daleko silnejsi

VM byl navrhovan jako system, umoznujici na jednom fyzickem pocitaci provozovat zaroven nekolik ruznych operacnich systemu

tak predstavuje dalsi vrstvu ochrany, nebot pokud se uzivateli podari proniknout ochrannymi mechanismy operacniho systemu, ktery pouziva, ziska pristup pouze k teto jedine domene, nebot VM mu zabrani v pristupu k celemu pocitaci

Kernel

... cast OS provadejici nejzakladnejsi funkce - standardne synchronizace, meziprocesova komunikace, zasilani zprav a obsluha preruseni

tzv. security kernel poskytuje zaklad pro vybudovani bezpecnostniho mechanismu, casto byva implementovan uvnitr kernelu

uzavrit bezpecnostni funkce systemu do security kernelu ma nekolik duvodu:

kernel hlida zejmena:

Vrstvovy model (Layered design)

jiz operacni systemy s kernelem obsahuji nekolik vrstev - hardware, kernel, zbytek OS, uziv. procesy

tyto vrstvy lze dale delit - napr. na uzivatelske urovni muzeme oddelit semi-sytemove programy jako ruzne databazove systemy, shelly apod.

vrstvy le chapat jako soustredne kruhy, cim blize je vrstva stredu, tim je duveryhodejsi a bezpecnejsi

ne vsechny bepecnostni funkce (napr. autentizace uzivatele) jsou implementovany uvnitr bezpecnostniho jadra

bezpecnostni jadro spolupracuje s okolnimi spolehlivymi vrstvami, ktere by meli byt formalne overeny a prinejmensim dobre otestovany

kazda vrstva pouziva sluzby nizsich vrstev a sama vyssim vrstvam poskytuje sluzby jiste urovne bepecnosti, stjna funkce muze byt implementovana v nekolika vrstvach zaroven

Kruhova struktura (Ring structured)

kruhy cislovany od 0 (kernel), cim duveryhodnejsi proces, tim nizsi cislo kruhu, do ktereho patri

kruhy jsou soustredne a prekryvajici se - proces patri do kruhu k a vsech dalsich, ve stredu je HW pocitace

kazda procedura, nebo oblast obsahujici data se nazyva segment

ochrana segmentu zalozena na trojici , nazyvane zavora kruhu (ring bracket), (b1, b2) nazyvame pristupova zavora (access bracket), (b2, b3) potom zavora volani (gate extension, call bracket)

necht programova rutina patri do kruhu k, pokud k = b1, muze pracovat primo s daty tohoto segmentu, pokud , muze pracovat primo s kopii dat a pokud , muze k datum pristupovat pouze prostrednictvim definovaneho rozhrani (gate)

tento zakladni mechanismus, nazyvany tez nondiscretionary nebo mandatory control muze byt dale doplnen o dalsi doplnkove (discretionary) mechanismy -

napr. k danym datum smeji pristupovat pouze jmenovite procesy, procesy patrici do okruhu pristupove zavory mohou volne cist, ale zapisovat pouze za specifickych podminek apod.

Pruniky operacnim systemem

  1. mistem nejvetsiho poctu pruniku je mechanismus zpracovani I/O operaci
    1. mnoha I/O zarizeni jsou do znacne miry inteligentni a nezavisla na zbytku systemu, provadeji optimalizaci sve cinnosti, jejich radice casto spravuji vice takovychto zarizeni
    2. kod I/O operaci je casto velmi rozsahly, je tezke jej radne testovat, nekdy je dokonce nutne pouzivat kod dodany vyrobcem zarizeni ...
    3. v zajmu rychlosti a efektivity I/O operace obcas obchazeji bezpecnostni mechanismy operacniho systemu, jako strankovani, segmentaci apod.
    4. velka cast I/O operaci je znakove orientovana, v zajmu efektivity se casto prislusne kontroly neprovadeji s kazdym prijatym znakem, ale pouze pri startu operace
  2. druhym problemem je hledani kompromisu mezi dukladnou izolaci uzivatelu a nutnosti umoznit sdileni dat, tento kompromis zhusta byva obtizne formalizovatelny, nejasnosti navrhu pak mohou byt pricinou "der" v implementaci
  3. ne vzdy je mozne provadet kontroly opravnenosti s kazdou operaci, casto je kontrola provadena pouze jednou behem provadeni celeho bloku akci, pokud se v teto dobe uzivateli podari zmenit parametry, muze dojit k pruniku
  4. dalsi skulinu v bezpecnosti muze zpusobit snaha o obecnost mozneho nasazeni systemu - aby bylo mozno system pouzivat pro nejruznejsi ukoly, ponechaji navrhari casto mechanismus, pomoci ktereho si uzivatel muze system prizpusobit
    tento mechanismus ovsem muze byt zneuzit


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