Pre FreeBSD sa vyvíja mechanizmus izolácie podobný sľubu a odhaleniu

Pre FreeBSD sa navrhuje implementácia mechanizmu izolácie aplikácií, ktorý pripomína systémové volania plegde and unveil vyvinuté projektom OpenBSD. Izolácia v plegde sa dosiahne zakázaním prístupu k systémovým volaniam, ktoré sa v aplikácii nepoužívajú, a odhalením selektívnym otvorením prístupu iba k jednotlivým cestám k súborom, s ktorými môže aplikácia pracovať. Pre aplikáciu sa vytvára akýsi biely zoznam systémových volaní a ciest k súborom a všetky ostatné volania a cesty sú zakázané.

Rozdiel medzi analógom plegde a unveil vyvíjaným pre FreeBSD spočíva v poskytnutí ďalšej vrstvy, ktorá vám umožňuje izolovať aplikácie bez zmien v ich kóde alebo s minimálnymi zmenami. Pripomeňme, že v OpenBSD sú plegde a unveil zamerané na tesnú integráciu so základným prostredím a používajú sa pridaním špeciálnych anotácií do kódu každej aplikácie. Pre zjednodušenie organizácie ochrany vám filtre umožňujú upustiť od detailov na úrovni jednotlivých systémových volaní a manipulovať s triedami systémových volaní (vstup/výstup, čítanie súborov, zápis súborov, sokety, ioctl, sysctl, spúšťanie procesov atď.) . Funkcie obmedzenia prístupu je možné volať v kóde aplikácie, keď sa vykonávajú určité akcie, napríklad prístup k zásuvkám a súborom môže byť odmietnutý po otvorení potrebných súborov a vytvorení sieťového pripojenia.

Autor port of plegde and unveil for FreeBSD má v úmysle poskytnúť možnosť izolovať ľubovoľné aplikácie, pre ktoré je navrhnutý nástroj záclony, ktorý vám umožňuje aplikovať pravidlá definované v samostatnom súbore na aplikácie. Navrhovaná konfigurácia obsahuje súbor so základnými nastaveniami, ktoré definujú triedy systémových volaní a typické cesty k súborom špecifické pre určité aplikácie (práca so zvukom, sieťová interakcia, protokolovanie atď.), ako aj súbor s pravidlami prístupu pre konkrétne aplikácie.

Pomôcku záclony možno použiť na izoláciu väčšiny neupravených pomôcok, serverových procesov, grafických aplikácií a dokonca aj celých relácií pracovnej plochy. Záves možno použiť v spojení s izolačnými mechanizmami, ktoré poskytujú podsystémy Jail a Capsicum. Je tiež možné organizovať vnorenú izoláciu, keď spustené aplikácie zdedia pravidlá nastavené pre nadradenú aplikáciu a dopĺňajú ich o individuálne obmedzenia. Niektoré operácie jadra (ladiace zariadenia, POSIX/SysV IPC, PTY) sú navyše chránené bariérovým mechanizmom, ktorý bráni prístupu k objektom jadra, ktoré nie sú vytvorené aktuálnym alebo nadradeným procesom.

Proces môže nakonfigurovať svoju vlastnú izoláciu volaním shutterctl alebo pomocou funkcií plegde() a unveil() libcurtain, podobných tým, ktoré nájdete v OpenBSD. Na sledovanie zámkov počas spustenia aplikácie je k dispozícii sysctl „security.curtain.log_level“. Prístup k protokolom X11 a Wayland je povolený samostatne zadaním možností „-X“/“-Y“ a „-W“ pri spustení závesu, ale podpora pre grafické aplikácie ešte nie je dostatočne stabilizovaná a má množstvo nevyriešených problémov ( problémy sa vyskytujú hlavne pri používaní X11 a podpora Wayland je implementovaná oveľa lepšie). Používatelia môžu pridať ďalšie obmedzenia vytvorením súborov lokálnych pravidiel (~/.curtain.conf). Napríklad, ak chcete povoliť zápis z Firfox len do adresára ~/Downloads/, môžete pridať sekciu „[firefox]“ s pravidlom „~/Downloads/: rw +“.

Implementácia obsahuje modul jadra mac_curtain pre povinné riadenie prístupu (MAC, Mandatory Access Control), sadu záplat pre jadro FreeBSD s implementáciou potrebných handlerov a filtrov, knižnicu libcurtain na používanie funkcií plegde a unveil v aplikáciách, pomôcka opona, príklady konfiguračných súborov, sada testov a záplat pre niektoré programy v užívateľskom priestore (napríklad na použitie $TMPDIR na zjednotenie práce s dočasnými súbormi). Ak je to možné, autor má v úmysle minimalizovať počet zmien, ktoré vyžadujú opravy jadra a aplikácií.

Zdroj: opennet.ru

Pridať komentár