Bolo oznámené, že pre FreeBSD bol navrhnutý mechanizmus izolácie aplikácií , ktorý pripomína systémové volania foldde a unleave vyvinuté v rámci projektu OpenBSD.
Izolácia v plegde sa vykonáva zakázaním prístupu k systémovým volaniam, ktoré aplikácia nepoužíva, a sprístupnením selektívnym otvorením prístupu iba k určitý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 príkazmi `pledge` a `unveil` , vyvinutými pre FreeBSD , spočíva v poskytnutí ďalšej vrstvy , ktorá umožňuje izoláciu aplikácií s minimálnymi alebo žiadnymi zmenami v ich kóde. Pamätajte, že v OpenBSD sa `pledge` a `unlock` zameriavajú na úzku integráciu so základným prostredím a implementujú sa pridaním špeciálnych anotácií do kódu každej aplikácie.
Na zjednodušenie organizácie ochrany vám filtre umožňujú vyhnúť sa detailom 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, zásuvky, ioctl, sysctl, spustenie procesov atď.) . Funkcie obmedzenia prístupu možno volať v kóde aplikácie, keď sa vykonávajú určité akcie, napríklad prístup k zásuvkám a súborom možno zatvoriť po otvorení potrebných súborov a vytvorení sieťového pripojenia.
Autor portu skladania a rozkladania pre FreeBSD sa snaží poskytnúť možnosť izolácie ľubovoľných aplikácií. Na dosiahnutie tohto cieľa navrhuje utilitu curtain, ktorá 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ťou, protokolovaním atď.), ako aj súbor s pravidlami prístupu pre konkrétne aplikácie.
Obslužný program záclony možno použiť na izoláciu väčšiny pomôcok, serverových procesov, grafických aplikácií a dokonca aj celých relácií pracovnej plochy, ktoré neboli upravené. Podporuje sa zdieľanie závesu s izolačnými mechanizmami, ktoré poskytujú podsystémy Jail a Capsicum.
Vnorená izolácia je tiež možná, kde spustené aplikácie dedia pravidlá stanovené hlavnou aplikáciou a dopĺňajú ich o samostatné obmedzenia. Niektoré operácie jadra (ladiace nástroje, POSIX/SysV IPC, PTY) sú ďalej chránené bariérovým mechanizmom, ktorý bráni prístupu k objektom jadra vytvoreným inými procesmi ako aktuálnym alebo hlavným procesom.
Proces si môže nakonfigurovať vlastnú izoláciu volaním curtainctl alebo použitím funkcií pledge() a unveil() poskytovaných knižnicou libcurtain, podobne ako v OpenBSD. Na sledovanie zámkov počas behu 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í clony, ale podpora pre grafické aplikácie ešte nie je dostatočne stabilizovaná a má sériu nevyriešených problémov ( problémy sa objavujú hlavne pri používaní X11 a podpora Wayland je oveľa lepšia). Používatelia môžu pridať ďalšie obmedzenia vytvorením súborov lokálnych pravidiel (~/.curtain.conf). Napríklad,
Implementácia obsahuje modul jadra mac_curtain pre povinné riadenie prístupu (MAC), sadu záplat pre jadro FreeBSD s implementáciou potrebných ovládačov a filtrov, knižnicu libcurtain na používanie plegde a odhalených funkcií v aplikáciách, opona, ukazuje konfiguráciu súbory, sadu 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). Vždy, keď je to možné, sa autor snaží minimalizovať počet zmien, ktoré si vyžadujú opravu jadra a aplikácií.
Na záver, ak máte záujem dozvedieť sa viac , podrobnosti nájdete na nasledujúcom odkaze.