Bejelentették, hogy javaslatot tettek egy alkalmazási izolációs mechanizmus megvalósítására a FreeBSD-ben , amely az OpenBSD projekt által kifejlesztett foldde és unneveal rendszerhívásokra emlékeztet.
A plegde-ben történő elkülönítés az alkalmazás által nem használt rendszerhívásokhoz való hozzáférés tiltásával történik, és csak bizonyos fájlútvonalakhoz való hozzáférés szelektív megnyitásával történik, amelyekkel az alkalmazás működni tud. Az alkalmazáshoz egyfajta fehér lista jön létre a rendszerhívásokról és a fájl elérési útjairól, és minden más hívás és elérési út tiltva van.
A FreeBSD-re fejlesztett `pledge` és `unveil` közötti különbség lényegében egy további réteg biztosítása , amely lehetővé teszi az alkalmazások elkülönítését minimális vagy semmilyen kódmódosítással. Ne feledjük, hogy az OpenBSD-ben a `pledge` és az `unlock` célja a szoros integráció az alapkörnyezettel, és az egyes alkalmazások kódjához speciális annotációk hozzáadásával valósíthatók meg.
A védelem megszervezésének egyszerűsítése érdekében a szűrők lehetővé teszik a részletek elkerülését az egyes rendszerhívások szintjén, és a rendszerhívások osztályainak kezelését (bemenet/kimenet, fájlolvasás, fájlírás, socketek, ioctl, sysctl, folyamatok indítása stb.) . Hozzáférés-korlátozási funkciók az alkalmazás kódjában hívhatók meg bizonyos műveletek végrehajtása során, például a socketekhez és fájlokhoz való hozzáférés lezárható a szükséges fájlok megnyitása és a hálózati kapcsolat létrehozása után.
A FreeBSD-ben a folding and unfolding port szerzője célja, hogy lehetővé tegye tetszőleges alkalmazások elkülönítését. Ennek eléréséhez a curtain segédprogramot javasolták, amely lehetővé teszi egy külön fájlban definiált szabályok alkalmazását az alkalmazásokra. A javasolt konfiguráció tartalmaz egy alapvető beállításokat tartalmazó fájlt, amely meghatározza a rendszerhívások osztályait és az egyes alkalmazásokra jellemző tipikus fájlútvonalakat (hanggal való munka, hálózatkezelés, naplózás stb.), valamint egy fájlt, amely az egyes alkalmazások hozzáférési szabályait tartalmazza.
A függöny segédprogram használható a legtöbb segédprogram, szerverfolyamat, grafikus alkalmazás és akár teljes, nem módosított asztali munkamenet elkülönítésére. A függöny megosztása a Jail és a Capsicum alrendszerek által biztosított elkülönítési mechanizmusokkal támogatott.
Beágyazott izoláció is lehetséges, ahol az elindított alkalmazások öröklik a fő alkalmazás által létrehozott szabályokat, kiegészítve azokat külön korlátozásokkal. Néhány kernelműveletet (hibakereső eszközök, POSIX/SysV IPC, PTY) egy további védelmi mechanizmus véd, amely megakadályozza a hozzáférést a nem az aktuális vagy a fő folyamat által létrehozott kernelobjektumokhoz.
Egy folyamat beállíthatja saját izolációját a curtainctl meghívásával vagy a libcurtain könyvtár által biztosított pledge() és unnever() függvények használatával, hasonlóan az OpenBSD-ben találhatóakhoz. A sysctl 'security.curtain.log_level' függvény a zárolások nyomon követésére szolgál az alkalmazás futása közben.
Az X11 és a Wayland protokollokhoz való hozzáférés külön engedélyezve van az "-X"/"-Y" és a "-W" opciók megadásával a curtain indításakor, de a grafikus alkalmazások támogatása még nem stabilizálódott kellően, és számos megoldatlan probléma van ( problémák főleg az X11 használatakor jelentkeznek, és a Wayland támogatás sokkal jobb). A felhasználók helyi szabályfájlok (~/.curtain.conf) létrehozásával további korlátozásokat adhatnak hozzá. Például,
A megvalósítás tartalmazza a mac_curtain kernel modult a kötelező hozzáférés-vezérléshez (MAC), a FreeBSD kernel javításainak készletét a szükséges illesztőprogramok és szűrők megvalósításával, a libcurtain könyvtárat a plegde és a feltárt funkciók használatához az alkalmazásokban, a segédprogram függönyét, megmutatja a konfigurációt fájlokat, tesztcsomagot és javításokat egyes felhasználói területprogramokhoz (például a $TMPDIR használatához az ideiglenes fájlokkal való munka egységesítésére). Amikor csak lehetséges, a szerző megpróbálja minimalizálni a kernel és az alkalmazások javítását igénylő változtatások számát.
Végül, ha többet szeretnél megtudni , a részleteket az alábbi linken találod .