'n Isolasiemeganisme soortgelyk aan plegde en onthulling word vir FreeBSD ontwikkel

Vir FreeBSD word 'n implementering van 'n toepassing-isolasiemeganisme voorgestel, wat herinner aan die plegde- en onthullingsstelseloproepe wat deur die OpenBSD-projek ontwikkel is. Isolasie in plegde word bewerkstellig deur toegang te verbied tot stelseloproepe wat nie in die toepassing gebruik word nie, en in onthulling deur selektief slegs toegang oop te maak vir individuele lêerpaaie waarmee die toepassing kan werk. Vir die toepassing word 'n soort witlys van stelseloproepe en lêerpaaie gevorm, en alle ander oproepe en paaie word verbied.

Die verskil tussen die analoog van plegde en onthulling wat vir FreeBSD ontwikkel word, kom neer op die verskaffing van 'n bykomende laag wat jou toelaat om toepassings te isoleer sonder om veranderinge aan hul kode of met minimale veranderinge aan te bring. Onthou dat in OpenBSD, plegde en onthulling gemik is op noue integrasie met die onderliggende omgewing en word gebruik deur spesiale aantekeninge by die kode van elke toepassing by te voeg. Om die organisasie van beskerming te vereenvoudig, laat filters jou toe om korreligheid op die vlak van individuele stelseloproepe te vermy en klasse stelseloproepe te manipuleer (invoer/uitvoer, leeslêers, skryflêers, voetstukke, ioctl, sysctl, prosesbekendstelling, ens.). Toegangsbeperkingsfunksies kan in die toepassingskode opgeroep word soos sekere aksies uitgevoer word, byvoorbeeld toegang tot voetstukke en lêers kan geweier word nadat die nodige lêers oopgemaak is en 'n netwerkverbinding tot stand gebring is.

Die skrywer van die hawe van plegde en onthulling vir FreeBSD is van voorneme om die vermoë te bied om arbitrêre toepassings te isoleer, waarvoor die gordynhulpmiddel voorgestel word, wat u toelaat om reëls wat in 'n aparte lêer gedefinieer is, op toepassings toe te pas. Die voorgestelde konfigurasie sluit 'n lêer met basiese instellings in wat klasse stelseloproepe en tipiese lêerpaaie spesifiek vir sekere toepassings definieer (werk met klank, netwerkinteraksie, aanteken, ens.), sowel as 'n lêer met toegangsreëls vir spesifieke toepassings.

Die gordynnutsmiddel kan gebruik word om die meeste ongewysigde nutsprogramme, bedienerprosesse, grafiese toepassings en selfs hele lessenaarsessies te isoleer. Gordyn kan gebruik word in samewerking met die isolasiemeganismes wat deur die Tronk- en Capsicum-substelsels voorsien word. Dit is ook moontlik om geneste isolasie te organiseer, wanneer geloodsde toepassings die reëls wat vir die ouertoepassing gestel is, erf, en dit aanvul met individuele beperkings. Sommige kernbedrywighede (ontfoutingsfasiliteite, POSIX/SysV IPC, PTY's) word addisioneel beskerm deur 'n versperringsmeganisme wat toegang tot kernvoorwerpe verhoed wat nie deur die huidige of ouerproses geskep word nie.

'n Proses kan sy eie isolasie instel deur curtainctl te roep of deur libcurtain se plegde() en unveil() funksies te gebruik, soortgelyk aan dié wat in OpenBSD gevind word. Om slotte op te spoor terwyl die toepassing loop, word die sysctl 'security.curtain.log_level' verskaf. Toegang tot die X11- en Wayland-protokolle word afsonderlik geaktiveer deur die "-X"/"-Y" en "-W"-opsies te spesifiseer wanneer gordyn loop, maar ondersteuning vir grafiese toepassings is nog nie genoegsaam gestabiliseer nie en het 'n aantal onopgeloste probleme ( probleme verskyn hoofsaaklik wanneer X11 gebruik word, en Wayland-ondersteuning word baie beter geïmplementeer). Gebruikers kan bykomende beperkings byvoeg deur plaaslike reëllêers (~/.curtain.conf) te skep. Byvoorbeeld, om slegs skryf vanaf Firfox na die ~/Downloads/-gids toe te laat, kan jy 'n "[firefox]"-afdeling byvoeg met die reël "~/Downloads/ : rw +".

Die implementering sluit die mac_curtain kernel module in vir verpligte toegangsbeheer (MAC, Mandatory Access Control), 'n stel pleisters vir die FreeBSD kern met die implementering van die nodige hanteerders en filters, die libcurtain biblioteek vir die gebruik van die plegde en onthul funksies in toepassings, die gordynnutsmiddel, voorbeeldkonfigurasielêers, 'n stel toetse en pleisters vir sommige programme in gebruikersruimte (byvoorbeeld vir die gebruik van $TMPDIR om werk met tydelike lêers te verenig). Waar moontlik, beoog die skrywer om die aantal veranderinge wat pleisters aan die kern en toepassings vereis, te verminder.

Bron: opennet.ru

Voeg 'n opmerking