Das Landrun-Projekt hat die Entwicklung eines neuen Systems fĂŒr die isolierte AusfĂŒhrung einzelner Anwendungen begonnen. Zur Isolierung wird das LSM-Modul des Linux-Kernels Landlock verwendet, welches die AusfĂŒhrung privilegierter Operationen bei der Erstellung einer Sandbox-Umgebung ĂŒberflĂŒssig macht. In seinen Funktionen Ă€hnelt Landrun dem Tool Firejail, unterscheidet sich jedoch durch eine einfachere Implementierung, Leichtgewichtigkeit und die Möglichkeit, als normaler nicht privilegierter Benutzer ohne die Suid-Flagge zu arbeiten. Der Code des Projekts ist in Go geschrieben und wird unter der GPLv2-Lizenz vertrieben.
Der Landlock-Mechanismus ermöglicht es nicht privilegierten Programmen, die Nutzung von Objekten des Linux-Kernels einzuschrĂ€nken, wie zum Beispiel Datei-Hierarchien, Netzwerksockets und ioctl. Im Gegensatz zu Namespaces und der Filterung von Systemaufrufen wird die isolierte Umgebung vom Linux-Kernel in Form einer zusĂ€tzlichen Schicht ĂŒber den bestehenden Systemmechanismen zur Zugriffskontrolle gebildet. Zur Interaktion mit dem Landlock-Subsystem verwendet das Tool landrun die von den Entwicklern von LandLock bereitgestellte go-landlock-Bibliothek.
Landrun hilft, das Risiko der Kompromittierung der Hauptsysteme zu verringern, wenn man misstrauische oder potenziell anfĂ€llige Software ausfĂŒhrt. Zu den Funktionen gehört die UnterstĂŒtzung selektiver ZugriffsbeschrĂ€nkungen auf der Ebene einzelner Verzeichnisse, die Bindung von Berechtigungen an Dateipfade (Erlauben oder Verweigern von Lese-, Schreib- und AusfĂŒhrungsrechten) sowie die Kontrolle ĂŒber die Initiierung und den Empfang von TCP-Verbindungen.
Mit Landrun kann beispielsweise der Prozess das AusfĂŒhren von ausfĂŒhrbaren Dateien untersagen, die Schreibrechte nur in einem bestimmten Unterverzeichnis mit Daten erlauben, das Erstellen von Listening-Sockets fĂŒr den Empfang von Netzwerkverbindungen verbieten und die Ăbermittlung von Netzwerkrequests nur an angegebene TCP-Ports gestatten. Im einfachsten Fall können Sie Schreib-, AusfĂŒhrungs- und NetzwerkfĂ€higkeiten mit dem Befehl «landrun âro /» untersagen, und zur Isolation von nginx könnte man Folgendes verwenden: landrun ârox /usr/bin âro /lib,/lib64,/var/www ârwx /var/log âbind-tcp 80,443 /usr/bin/nginx
ZukĂŒnftige PlĂ€ne beinhalten eine erweiterte Verwaltung des Zugriffs auf das Dateisystem, UDP-UnterstĂŒtzung und das Management von Prozessressourcen. FĂŒr den Dateisystemzugriff ist mindestens der Linux-Kernel 5.13 erforderlich, wĂ€hrend fĂŒr NetzwerkbeschrĂ€nkungen die Version 6.8 benötigt wird.
ZusĂ€tzlich ist erwĂ€hnenswert, dass Ănderungen in den Quellcode von Firejail ĂŒbernommen wurden, die die Nutzung des Landlock-Kernel-Subsystems zur Isolierung ohne SUID-Bit und Privilegiensteigerung ermöglichen. Eine Version mit dieser UnterstĂŒtzung wurde jedoch noch nicht veröffentlicht.
Quelle: opennet.ru
