FreeBSD alatt egy, a plegde-hez és unveil-hez hasonló izolációs mechanizmus fejlődik.

A FreeBSD-hez javasolták egy alkalmazásizolációs mechanizmus megvalósítását, amely hasonlít az OpenBSD projekt által kidolgozott plegde és unveil rendszerhívásokhoz. A plegde-nél az izoláció a nem használt rendszerhívásokhoz való hozzáférés megtiltásával valósul meg, míg az unveil célzottan csak egyes fájlútvonalakhoz biztosít hozzáférést, amelyekkel az alkalmazás dolgozhat. Az alkalmazás számára egyfajta fehérlistát alkotnak a rendszerhívások és fájlútvonalak tekintetében, míg minden más hívást és útvonalat tiltanak.

A FreeBSD számára fejlesztett plegde és unveil analógja közötti különbség abban rejlik, hogy egy további réteg biztosítja az alkalmazások izolálását anélkül, hogy módosítani kellene a kódjukat, vagy csak minimális módosításokkal. Emlékezzünk, hogy az OpenBSD plegde és unveil szorosan integrálódik az alap környezettel, és úgy használják őket, hogy különleges annotációkat adnak hozzá az egyes alkalmazások kódjához. A védelem megszervezésének egyszerűsítése érdekében a szűrők lehetővé teszik, hogy a részletezést elkerüljék az egyes rendszerhívások szintjén, és az rendszerhívásosztályokkal manipuláljanak (be- és kimenet, fájlok olvasása, fájlok írása, socketek, ioctl, sysctl, folyamatok indítása stb.). A hozzáféréskorlátozó funkciók a kód alapján hívhatók meg, amikor bizonyos műveleteket hajtanak végre, például a socketekhez és fájlokhoz való hozzáférés bezárható a szükséges fájlok megnyitása és a hálózati kapcsolat kialakítása után.

A FreeBSD-re szánt plegde és unveil port szerzője szándékozik lehetővé tenni tetszőleges alkalmazások izolációját, ezért javasolt egy curtain nevű segédeszköz, amely lehetővé teszi az alkalmazások számára a szabályok alkalmazását, amelyeket egy külön fájlban határoztak meg. A javasolt konfiguráció tartalmaz egy fájlt az alapbeállításokkal, amelyek meghatározzák a rendszerhívások osztályait és a specifikus fájlútvonalakat, amelyek bizonyos alkalmazásokhoz tartoznak (például hangkezelés, hálózati interakció, naplózás stb.), valamint egy fájlt a konkrét alkalmazások hozzáférési szabályaival.

A curtain utility can be used to isolate most unmodified utilities, server processes, graphical applications, and even entire desktop sessions. The use of curtain is supported alongside the isolation mechanisms provided by the Jail and Capsicum subsystems. Nested isolation is also possible, where launched applications inherit the rules set by the parent application, adding separate restrictions. Some kernel operations (debugging tools, POSIX/SysV IPC, PTYs) are additionally protected using barrier mechanisms that prevent access to kernel objects created by neither the current nor the parent process.

A process can independently configure its own isolation by calling curtainctl or using the functions plegde() and unveil() provided by the libcurtain library, similar to such functions from OpenBSD. To monitor blocks during application execution, the sysctl 'security.curtain.log_level' is provided. Access to X11 and Wayland protocols is enabled separately by specifying options '-X'/'-Y' and '-W' when launching curtain, but support for graphical applications is still not sufficiently stabilized and has a number of unresolved issues (problems primarily manifest with X11, while Wayland support is implemented significantly better). Users can add additional restrictions by creating local files with rules (~/.curtain.conf). For example, to allow write access from Firefox only to the directory ~/.Downloads/, a section '[firefox]' with the rule '~/.Downloads/ : rw +' can be added.

The implementation includes the mac_curtain kernel module for Mandatory Access Control (MAC), a set of patches for the FreeBSD kernel with necessary handlers and filters, the libcurtain library for using the plegde and unveil functions in applications, the curtain utility, configuration file examples, a set of tests, and patches for some user-space programs (for example, for using $TMPDIR to unify work with temporary files). Whenever possible, the author intends to minimize the number of changes requiring patches to the kernel and applications.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster