Zaščita in varnost OS


Zaščita je mehanizem nadzora dostopa programskih procesov ali uporabnikov do resursov računalniškega sistema. Varnost takega sistema je mera zaupanja, da bo ohranjena integriteta sistema in njegovi podatki.

Domena zaščite:

Računalniški sistem je nabor procesov in objektov. Objekti so lahko aparaturni (CPE, pomnilniški segmenti, periferne naprave) ali programski (datoteke, programi, semaforji itd.).

Proces deluje v domeni zaščite (protection domain), ki definira množico objektov in operacij nad njimi, ki so procesu dovoljene. Domena zaščite je lahko uporabnik, nek proces ali celo procedura. Posamezne domene si lahko pravice do dostopa (access rights) tudi delijo.

Asociacija med procesom in domeno je lahko statična ali dinamična. V slednjem primeru lahko proces prehaja iz ene domene zaščite v drugo.

Organizacija zaščite je lahko hierarhična (obročna) (tako je bil organiziran zaščitni sistem pri MULTICS). Kontroliran prehod med domenami nastopi pri prečkanju med obroči.

Bolj učinkovit model zaščite ponuja matrika dostopnosti (Access matrix).

Komentar: Proces, ki se izvaja v domeni D3, ima pravico do branja objekta O2 in izvajanja objekta O3.

Vrste v matriki predstavljajo domene zaščite, kolone pa so posamezni objekti. Pri tvorbi novega objekta enostavno dodamo matriki dostopnosti novo kolono.

Matriki dostopnosti so dodane še kolone, ki določajo dopustne preklope med posameznimi domenami.

Komentar: Proces, ki se izvaja v domeni D2, lahko preide v domeno D3 ali D4.

Najbolj preprosta implementacija matrike dostopnosti je z globalno tabelo, ki jo predstavlja urejena množica trojčkov <domena, objekt, pravice> . V tej tabeli iščemo trojček <Di,Oj,Rk>. Če ga najdemo, je operacija dovoljena, sicer pa ne. Slabost take implementacije je v velikosti (razpršenosti) tabele.

Drug način implementacije obravnava vsako kolono matrike kot seznam dostopnosti za en objekt. Prazne elemente lahko izpuščamo. Za vsak objekt dobimo tako urejene pare <domena, pravice>.

Tretja različica predvideva, da namesto kolon (objektov) gledamo vrstice (domene). Tako dobimo za vsako domeno seznam zmožnosti (capability list).Operacijo na določenem objektu lahko izvedemo v dani domeni, če se v seznamu parov <objekt, pravice> za to domeno nahaja tudi tak par. Tako organizacijo zaščite zasledimo na primer pri sistemu MACH.

Tudi tak seznam je sam po sebi zaščiten objekt.

UNIX uporablja omejeno zaščito, ki se večinoma nanaša le na datoteke. Med sistemi, ki imajo implementiran seznam zmožnosti omenimo Mach. Ta razširja zaščitni mehanizem tudi na objekte, ki jih definira uporabnik.


Varnost sistemov

Medtem, ko je zaščita sistema interni problem operacijskega sistema, vključuje varnost tudi okolje, v katerem deluje. Zagotoviti moramo fizično zaščito sistema ter zaščito pred neavtoriziranimi dostopi, namernimi uničenji podatkov, naključnim vnašanjem nekonsistenc itd..