Za FreeBSD se razvija izolacijski mehanizem, podoben plegde in unveil

Za FreeBSD je predlagana izvedba mehanizma za izolacijo aplikacij, ki spominja na sistemske klice plegde in unveil, ki jih je razvil projekt OpenBSD. Izolacija v plegde je dosežena s prepovedjo dostopa do sistemskih klicev, ki se ne uporabljajo v aplikaciji, v unveil pa s selektivnim odpiranjem dostopa samo do posameznih poti datotek, s katerimi lahko aplikacija deluje. Za aplikacijo se oblikuje nekakšen beli seznam sistemskih klicev in poti do datotek, vsi drugi klici in poti pa so prepovedani.

Razlika med analogoma plegde in unveil, ki se razvijata za FreeBSD, se zmanjša na zagotavljanje dodatnega sloja, ki vam omogoča izolacijo aplikacij brez spreminjanja njihove kode ali z minimalnimi spremembami. Spomnimo se, da sta v OpenBSD plegde in unveil namenjena tesni integraciji z osnovnim okoljem in se uporabljata z dodajanjem posebnih opomb v kodo vsake aplikacije. Za poenostavitev organizacije zaščite vam filtri omogočajo, da se odrečete podrobnostim na ravni posameznih sistemskih klicev in manipulirate z razredi sistemskih klicev (vhod/izhod, branje datotek, pisanje datotek, vtičnice, ioctl, sysctl, zagon procesa itd.) . Funkcije za omejevanje dostopa lahko pokličete v kodi aplikacije, ko se izvajajo določena dejanja, na primer, dostop do vtičnic in datotek je mogoče zavrniti po odprtju potrebnih datotek in vzpostavitvi omrežne povezave.

Avtor pristanišča plegde and unveil za FreeBSD namerava zagotoviti možnost izolacije poljubnih aplikacij, za katere je predlagan pripomoček curtain, ki vam omogoča uporabo pravil, definiranih v ločeni datoteki, za aplikacije. Predlagana konfiguracija vključuje datoteko z osnovnimi nastavitvami, ki določajo razrede sistemskih klicev in tipične poti datotek, značilne za določene aplikacije (delo z zvokom, omrežna interakcija, beleženje itd.), ter datoteko s pravili dostopa za določene aplikacije.

Pripomoček Curtain lahko uporabite za izolacijo večine nespremenjenih pripomočkov, strežniških procesov, grafičnih aplikacij in celo celotnih namiznih sej. Zaveso je mogoče uporabiti v povezavi z izolacijskimi mehanizmi, ki jih zagotavljata podsistema Jail in Capsicum. Možno je tudi organizirati ugnezdeno izolacijo, ko zagnane aplikacije podedujejo pravila, nastavljena za nadrejeno aplikacijo, in jih dopolnijo s posameznimi omejitvami. Nekatere operacije jedra (možnosti za odpravljanje napak, POSIX/SysV IPC, PTY) so dodatno zaščitene z mehanizmom pregrade, ki preprečuje dostop do objektov jedra, ki jih ni ustvaril trenutni ali nadrejeni proces.

Proces lahko konfigurira lastno izolacijo s klicem curtainctl ali z uporabo funkcij plegde() in unveil() libcurtain, podobnih tistim v OpenBSD. Za sledenje zaklepanjem med delovanjem aplikacije je na voljo sysctl 'security.curtain.log_level'. Dostop do protokolov X11 in Wayland je omogočen ločeno z določitvijo možnosti “-X”/”-Y” in “-W” pri izvajanju zavese, vendar podpora za grafične aplikacije še ni dovolj stabilizirana in ima številne nerešene težave ( težave se pojavljajo predvsem pri uporabi X11, podpora za Wayland pa je implementirana veliko bolje). Uporabniki lahko dodajo dodatne omejitve z ustvarjanjem datotek lokalnih pravil (~/.curtain.conf). Če želite na primer dovoliti pisanje iz Firfoxa samo v imenik ~/Downloads/, lahko dodate razdelek »[firefox]« s pravilom »~/Downloads/ : rw +«.

Izvedba vključuje jedrni modul mac_curtain za obvezni nadzor dostopa (MAC, Mandatory Access Control), nabor popravkov za jedro FreeBSD z implementacijo potrebnih obdelovalcev in filtrov, knjižnico libcurtain za uporabo funkcij plegde in unveil v aplikacijah, pripomoček curtain, primeri konfiguracijskih datotek, nabor testov in popravkov za nekatere programe v uporabniškem prostoru (na primer za uporabo $TMPDIR za poenotenje dela z začasnimi datotekami). Kjer je mogoče, namerava avtor čim bolj zmanjšati število sprememb, ki zahtevajo popravke za jedro in aplikacije.

Vir: opennet.ru

Dodaj komentar