Objavljeno je da je za FreeBSD predložena implementacija mehanizma izolacije aplikacija , koja podsjeća na sistemske pozive foldde i unlevel koje je razvio OpenBSD projekt.
Izolacija u plegde se vrši zabranom pristupa sistemskim pozivima koje aplikacija ne koristi i otkrivanjem selektivnog otvaranja pristupa samo određenim putevima datoteka s kojima aplikacija može raditi. Za aplikaciju se formira svojevrsni bijeli popis sistemskih poziva i puteva datoteka, a svi ostali pozivi i putovi su zabranjeni.
Razlika između naredbi `pledge` i `unveil` , razvijenih za FreeBSD , svodi se na pružanje dodatnog sloja koji omogućuje izolaciju aplikacija uz minimalne ili nikakve promjene u njihovom kodu. Imajte na umu da u OpenBSD-u, `pledge` i `unlock` imaju za cilj blisku integraciju s osnovnim okruženjem i implementiraju se dodavanjem posebnih napomena kodu svake aplikacije.
Kako bi pojednostavili organizaciju zaštite, filtri vam omogućuju izbjegavanje detalja na razini pojedinačnih poziva sustava i manipulaciju klasama sistemskih poziva (ulaz/izlaz, čitanje datoteke, pisanje datoteke, utičnice, ioctl, sysctl, početak procesa itd.) . Funkcije ograničenja pristupa mogu se pozvati u kodu aplikacije dok se izvode određene radnje, na primjer, pristup utičnicama i datotekama može se zatvoriti nakon otvaranja potrebnih datoteka i uspostavljanja mrežne veze.
Autor FreeBSD porta za savijanje i rasklapanje ima za cilj omogućiti izolaciju proizvoljnih aplikacija. Kako bi to postigao, predlaže uslužni program curtain koji omogućuje primjenu pravila definiranih u zasebnoj datoteci na aplikacije. Predložena konfiguracija uključuje datoteku s osnovnim postavkama koje definiraju klase sistemskih poziva i tipične putanje datoteka specifične za određene aplikacije (rad sa zvukom, umrežavanje, zapisivanje itd.), kao i datoteku s pravilima pristupa za određene aplikacije.
Uslužni program zavjesa može se koristiti za izolaciju većine uslužnih programa, poslužiteljskih procesa, grafičkih aplikacija, pa čak i cijelih desktop sesija koje nisu izmijenjene. Podržano je dijeljenje zastora s izolacijskim mehanizmima koje osiguravaju podsustavi Jail i Capsicum.
Moguća je i ugniježđena izolacija , gdje pokrenute aplikacije nasljeđuju pravila koja je uspostavila glavna aplikacija, dopunjujući ih zasebnim ograničenjima. Neke operacije kernela (alati za otklanjanje pogrešaka, POSIX/SysV IPC, PTY) dodatno su zaštićene mehanizmom barijere koji sprječava pristup objektima kernela koje su stvorili procesi koji nisu trenutni ili glavni proces.
Proces može konfigurirati vlastitu izolaciju pozivom funkcije curtain ili korištenjem funkcija pledge() i unveil() koje pruža biblioteka libcurtain, slična onima u OpenBSD-u. Sysctl 'security.curtain.log_level' služi za praćenje zaključavanja dok se aplikacija izvodi.
Pristup X11 i Wayland protokolima omogućen je odvojeno navođenjem opcija "-X"/"-Y" i "-W" prilikom pokretanja zavjese, ali podrška za grafičke aplikacije još nije dovoljno stabilizirana i ima niz neriješenih problema ( problemi se javljaju uglavnom pri korištenju X11, a podrška za Wayland je puno bolja). Korisnici mogu dodati dodatna ograničenja stvaranjem datoteka lokalnih pravila (~/.curtain.conf). Na primjer,
Implementacija uključuje modul kernela mac_curtain za obaveznu kontrolu pristupa (MAC), skup zakrpa za FreeBSD kernel s implementacijom potrebnih drajvera i filtara, biblioteku libcurtain za korištenje plegdea i otkrivenih funkcija u aplikacijama, uslužnu zavjesu, prikazuje konfiguraciju datoteke, skup testova i zakrpe za neke programe u korisničkom prostoru (na primjer, za korištenje $TMPDIR za objedinjavanje rada s privremenim datotekama). Kad god je to moguće, autor nastoji minimizirati broj promjena koje zahtijevaju krpljenje kernela i aplikacija.
Konačno, ako ste zainteresirani saznati više , detalje možete pronaći na sljedećoj poveznici.