Het werd onthuld dat een implementatie is voorgesteld een applicatie-isolatiemechanisme voor FreeBSD, wat doet denken aan de fold and reveal system calls die zijn ontwikkeld door het OpenBSD-project.
Isolatie in plegde wordt gedaan door de toegang tot systeemaanroepen die niet door de toepassing worden gebruikt te verbieden en door selectief alleen toegang te openen tot bepaalde bestandspaden waarmee de toepassing kan werken. Voor de applicatie wordt een soort witte lijst met systeemaanroepen en bestandspaden gevormd, en alle andere oproepen en paden zijn verboden.
Het verschil tussen gevouwen en onthuld, ontwikkeld voor FreeBSD, het komt erop neer dat er een extra laag wordt aangebracht waarmee u toepassingen kunt isoleren zonder of met minimale wijzigingen in hun code. Onthoud dat in OpenBSD plegde en unlock streven naar nauwe integratie met de basisomgeving en worden geïmplementeerd door speciale annotaties toe te voegen aan de code van elke applicatie.
Om de organisatie van de beveiliging te vereenvoudigen, kunt u met filters details op het niveau van individuele systeemaanroepen vermijden en klassen van systeemaanroepen manipuleren (invoer/uitvoer, lezen van bestanden, schrijven van bestanden, sockets, ioctl, sysctl, start van processen, enz.) . Toegangsbeperkingsfuncties kunnen worden aangeroepen in applicatiecode wanneer bepaalde acties worden uitgevoerd, bijvoorbeeld toegang tot sockets en bestanden kan worden gesloten na het openen van de benodigde bestanden en het tot stand brengen van een netwerkverbinding.
De auteur van de vouw- en onthullingspoort voor FreeBSD bedoeld om de mogelijkheid te bieden om willekeurige toepassingen te isoleren, waarvoor het gordijnhulpprogramma wordt voorgesteld, waarmee regels die in een afzonderlijk bestand zijn gedefinieerd, op toepassingen kunnen worden toegepast. De voorgestelde configuratie omvat een bestand met basisinstellingen die de klassen van systeemaanroepen en typische bestandspaden definiëren die specifiek zijn voor bepaalde toepassingen (werken met geluid, netwerken, logboekregistratie, enz.), evenals een bestand met toegangsregels voor specifieke toepassingen.
Het gordijnhulpprogramma kan worden gebruikt om de meeste hulpprogramma's, serverprocessen, grafische toepassingen en zelfs volledige desktopsessies die niet zijn gewijzigd, te isoleren. Gordijn delen met de isolatiemechanismen van de subsystemen Jail en Capsicum wordt ondersteund.
ook het is mogelijk om geneste isolatie te organiseren, wanneer gestarte applicaties de regels overnemen die zijn ingesteld door de bovenliggende applicatie, door ze aan te vullen met afzonderlijke beperkingen. Sommige kernelbewerkingen (tools voor foutopsporing, POSIX/SysV IPC, PTY) worden bovendien beschermd door een barrièremechanisme dat de toegang tot kernelobjecten die door andere processen dan het huidige of bovenliggende proces zijn gemaakt, verhindert.
Een proces kan zijn eigen isolatie configureren door curtainctl . aan te roepen of door gebruik te maken van de functies plegde() en onthullen() die worden geleverd door de libcurtain-bibliotheek, vergelijkbaar met die van OpenBSD. Het 'security.curtain.log_level' sysctl wordt geleverd om vergrendelingen te volgen terwijl de applicatie draait.
Toegang tot de X11- en Wayland-protocollen wordt afzonderlijk ingeschakeld door de opties "-X"/"-Y" en "-W" op te geven bij het starten van gordijn, maar de ondersteuning voor grafische toepassingen is nog niet voldoende gestabiliseerd en heeft een reeks onopgeloste problemen ( problemen treden meestal op bij gebruik van X11, en Wayland-ondersteuning is veel beter). Gebruikers kunnen extra beperkingen toevoegen door lokale regelbestanden te maken (~/.curtain.conf). Bijvoorbeeld,
De implementatie omvat de mac_curtain-kernelmodule voor verplichte toegangscontrole (MAC), een set patches voor de FreeBSD-kernel met de implementatie van de benodigde stuurprogramma's en filters, de libcurtain-bibliotheek voor het gebruik van plegde en onthulde functies in toepassingen, het hulpprogramma-gordijn, toont de configuratie bestanden, een reeks tests en patches voor sommige gebruikersruimteprogramma's (bijvoorbeeld om $TMPDIR te gebruiken om het werken met tijdelijke bestanden te verenigen). Waar mogelijk probeert de auteur het aantal wijzigingen die een patch voor de kernel en applicaties vereisen tot een minimum te beperken.
Eindelijk als u er meer over wilt weten, kunt u de details bekijken In de volgende link.