Het Landrun-project ontwikkelt een niet-bevoorrechte applicatie-isolatiesysteem

Het Landrun-project is begonnen met de ontwikkeling van een nieuw systeem voor het geïsoleerd uitvoeren van afzonderlijke applicaties. Voor isolatie wordt de LSM-module van de Linux-kernel Landlock gebruikt, die het mogelijk maakt om zonder het uitvoeren van geprivilegieerde operaties een sandbox-omgeving te creëren. Wat betreft de functionaliteit lijkt Landrun op de utility Firejail, maar het onderscheidt zich door een eenvoudigere implementatie, lichtgewicht ontwerp en de mogelijkheid om te werken onder een reguliere, niet-geprivilegieerde gebruiker zonder met de suid-vlag te werken. De code van het project is geschreven in de programmeertaal Go en wordt verspreid onder de GPLv2-licentie.

De Landlock-mechanismen stellen niet-geprivilegieerde programma's in staat het gebruik van objecten in de Linux-kernel te beperken, zoals bestandsstructuren, netwerk-sockets en ioctl. In tegenstelling tot naamruimten en systeemoproepfilters wordt de geĆÆsoleerde omgeving door de Linux-kernel gevormd in de vorm van een extra laag bovenop de bestaande systeme beheermechanismen voor toegang. Voor interactie met de Landlock-subsysteem wordt in de utility landrun de go-landlock bibliotheek van de ontwikkelaars van LandLock gebruikt.

Landrun maakt het mogelijk om het risico op compromittering van het hoofd systeem te verlagen bij het uitvoeren van niet-vertrouwde of potentieel kwetsbare programma's. Tot de mogelijkheden behoort het ondersteunen van selectieve toegangsbeperkingen op niveau van afzonderlijke mappen, het binden van bevoegdheden aan bestands paden (toestaan of verbieden van lezen, schrijven en uitvoeren) en controle over het initiƫren en ontvangen van TCP-verbindingen.

Bijvoorbeeld, met behulp van Landrun kan een proces geweigerd worden uitvoerbare bestanden uit te voeren, kan schrijven alleen toegestaan worden naar een specifieke submap met gegevens, kan het creƫren van luisterende sockets voor het ontvangen van netwerkverbindingen verboden worden en kunnen netwerkverzoeken alleen naar specifieke TCP-poorten worden toegestaan. In het meest eenvoudige geval kan het programma worden uitgevoerd met het commando "landrun --ro /", terwijl voor de isolatie van nginx de volgende opdracht gebruikt kan worden: landrun --rox /usr/bin --ro /lib,/lib64,/var/www --rwx /var/log --bind-tcp 80,443 /usr/bin/nginx

Toekomstplannen omvatten uitgebreidere toegang tot het bestandssysteem, ondersteuning voor UDP en procesresourcebeheer. Voor toegang op niveau van het bestandssysteem is ten minste de Linux-kernel 5.13 vereist, terwijl voor netwerkbeperkingen 6.8 nodig is.

Daarnaast valt op dat er veranderingen zijn aangebracht in de codebase van Firejail die het mogelijk maken om de Landlock-kernelsubsystemen te gebruiken voor isolatie zonder een suid-bit en verhoogde privileges, maar de release met deze ondersteuning is nog niet gepubliceerd.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster