Inanunsyo na ang isang implementasyon ng mekanismo ng paghihiwalay ng aplikasyon ay iminungkahi para sa FreeBSD , na nakapagpapaalaala sa mga system call na foldde at unveil na binuo ng proyektong OpenBSD.
Ang paghihiwalay sa plegde ay ginagawa sa pamamagitan ng pagbabawal sa pag-access sa mga tawag sa system na hindi ginagamit ng application at pagsisiwalat sa pamamagitan ng piling pagbubukas ng access sa ilang partikular na path ng file na maaaring gamitin ng application. Para sa aplikasyon, isang uri ng puting listahan ng mga tawag sa system at mga landas ng file ay nabuo, at lahat ng iba pang mga tawag at landas ay ipinagbabawal.
Ang pagkakaiba sa pagitan ng `pledge` at `unveil` , na binuo para sa FreeBSD , ay nakasalalay sa pagbibigay ng karagdagang layer na nagpapahintulot sa mga application na ihiwalay nang may kaunting o walang pagbabago sa kanilang code. Tandaan na sa OpenBSD, ang `pledge` at `unlock` ay naglalayong magkaroon ng masikip na integrasyon sa base environment at ipinapatupad sa pamamagitan ng pagdaragdag ng mga espesyal na anotasyon sa code ng bawat application.
Upang pasimplehin ang organisasyon ng proteksyon, binibigyang-daan ka ng mga filter na maiwasan ang mga detalye sa antas ng mga indibidwal na tawag sa system at upang manipulahin ang mga klase ng mga tawag sa system (input/output, file read, file write, sockets, ioctl, sysctl, simula ng mga proseso, atbp) . Maaaring tawagan ang mga function ng paghihigpit sa pag-access sa code ng aplikasyon habang isinasagawa ang ilang partikular na pagkilos, halimbawa, ang pag-access sa mga socket at file ay maaaring isara pagkatapos buksan ang mga kinakailangang file at magtatag ng koneksyon sa network.
Ang may-akda ng FreeBSD port ng folding and unfolding ay naglalayong magbigay ng kakayahang ihiwalay ang mga arbitraryong aplikasyon. Upang makamit ito, iminungkahi nila ang curtain utility, na nagbibigay-daan sa paglalapat ng mga panuntunang tinukoy sa isang hiwalay na file sa mga aplikasyon. Kasama sa iminungkahing configuration ang isang file na may mga pangunahing setting na tumutukoy sa mga klase ng mga system call at mga tipikal na file path na partikular sa ilang partikular na aplikasyon (paggawa gamit ang tunog, networking, pag-log, atbp.), pati na rin ang isang file na may mga panuntunan sa pag-access para sa mga partikular na aplikasyon.
Maaaring gamitin ang curtain utility para ihiwalay ang karamihan sa mga utility, mga proseso ng server, mga graphical na application, at maging ang buong mga session sa desktop na hindi pa nabago. Ang pagbabahagi ng kurtina sa mga mekanismo ng paghihiwalay na ibinigay ng Jail at Capsicum subsystem ay suportado.
Posible rin ang nested isolation , kung saan ang mga inilunsad na aplikasyon ay nagmamana ng mga patakarang itinatag ng pangunahing aplikasyon, na dinadagdagan ang mga ito ng magkakahiwalay na mga paghihigpit. Ang ilang mga operasyon ng kernel (mga tool sa pag-debug, POSIX/SysV IPC, PTY) ay karagdagang pinoprotektahan ng isang mekanismo ng hadlang na pumipigil sa pag-access sa mga object ng kernel na nilikha ng mga proseso maliban sa kasalukuyan o pangunahing proseso.
Maaaring i-configure ng isang proseso ang sarili nitong isolation sa pamamagitan ng pagtawag sa curtainctl o paggamit ng mga pledge() at unveil() function na ibinibigay ng libcurtain library, katulad ng sa mga nasa OpenBSD. Ang sysctl na 'security.curtain.log_level' ay ibinibigay upang subaybayan ang mga lock habang tumatakbo ang application.
Ang pag-access sa mga protocol ng X11 at Wayland ay pinagana nang hiwalay sa pamamagitan ng pagtukoy sa mga opsyon na "-X"/"-Y" at "-W" kapag nagsisimula ng kurtina, ngunit ang suporta para sa mga graphical na application ay hindi pa sapat na nagpapatatag at may serye ng mga hindi nalutas na isyu ( pangunahing lumalabas ang mga problema kapag gumagamit ng X11, at mas mahusay ang suporta sa Wayland). Maaaring magdagdag ang mga user ng mga karagdagang paghihigpit sa pamamagitan ng paggawa ng mga file ng lokal na panuntunan (~/.curtain.conf). Halimbawa,
Kasama sa pagpapatupad ang module ng mac_curtain kernel para sa mandatory access control (MAC), isang set ng mga patch para sa kernel ng FreeBSD na may pagpapatupad ng mga kinakailangang driver at filter, ang library ng libcurtain para sa paggamit ng plegde at ipinahayag na mga function sa mga application, ang utility curtain, ay nagpapakita ng configuration mga file, isang hanay ng mga pagsubok, at mga patch para sa ilang program ng user-space (halimbawa, upang gamitin ang $TMPDIR upang pag-isahin ang pagtatrabaho sa mga pansamantalang file). Hangga't maaari, sinusubukan ng may-akda na bawasan ang bilang ng mga pagbabago na nangangailangan ng pag-patch sa kernel at mga application.
Panghuli, kung interesado kang matuto nang higit pa , makikita mo ang mga detalye sa sumusunod na link.