Das Projekt Landrun hat die Entwicklung eines neuen Systems fĂŒr die isolierte AusfĂŒhrung einzelner Anwendungen begonnen. Zur Isolation wird das LSM-Modul des Linux-Kernels Landlock verwendet, das es ermöglicht, ohne den Einsatz privilegierter Operationen eine Sandbox-Umgebung zu erstellen. In seinen Funktionen Ă€hnelt Landrun dem Dienstprogramm Firejail, unterscheidet sich jedoch durch eine einfachere Implementierung, Leichtgewichtigkeit und die Möglichkeit, unter einem normalen, unprivilegierten Benutzer ohne SUID-Flag zu arbeiten. Der Code des Projekts ist in der Programmiersprache Go geschrieben und wird unter der GPLv2-Lizenz vertrieben.
Der Landlock-Mechanismus ermöglicht es unprivilegierten Programmen, die Nutzung von Objekten des Linux-Kernels, wie z. B. Dateihierarchien, Netzwerksockets und ioctl, einzuschrĂ€nken. 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 Systemzugriffsmechanismen gebildet. FĂŒr die Interaktion mit dem Landlock-Subsystem verwendet das Dienstprogramm landrun die go-landlock-Bibliothek der Entwickler von LandLock.
Landrun reduziert das Risiko der Kompromittierung des Hauptsystems beim AusfĂŒhren von nicht vertrauenswĂŒrdigen oder potenziell anfĂ€lligen Programmen. Zu den Funktionen gehört die UnterstĂŒtzung von selektiven Zugriffssteuerungen auf katalogĂŒbergreifender Ebene, die Bindung von Rechten an Dateipfade (Erlauben oder Verhindern von Lesen, Schreiben und AusfĂŒhren) sowie die Kontrolle ĂŒber die Initiierung und den Empfang von TCP-Verbindungen.
Zum Beispiel kann mit Hilfe von Landrun einem Prozess das AusfĂŒhren von Executables untersagt, das Schreiben nur in einen bestimmten Datenunterordner erlaubt, das Erstellen von Listening-Sockets fĂŒr den Empfang von Netzwerkverbindungen untersagt und das Senden von Netzwerk-Anfragen nur an bestimmte TCP-Ports erlaubt werden. Im einfachsten Fall kann man mit dem Befehl "landrun âro /" das Schreiben, Starten und NetzwerkfĂ€higkeiten verbieten, wĂ€hrend fĂŒr die Isolation von nginx folgendes verwendet werden kann: landrun ârox /usr/bin âro /lib,/lib64,/var/www ârwx /var/log âbind-tcp 80,443 /usr/bin/nginx.
In den zukĂŒnftigen PlĂ€nen wird eine erweiterte Zugriffskontrolle auf das Dateisystem, die UnterstĂŒtzung von UDP und das Ressourcenmanagement von Prozessen erwĂ€hnt. FĂŒr die EinschrĂ€nkung des Zugriffs auf das Dateisystem ist mindestens der Kernel Linux 5.13 erforderlich, und fĂŒr NetzwerkbeschrĂ€nkungen 6.8.
ZusĂ€tzlich kann erwĂ€hnt werden, dass Ănderungen in den Firejail-Code ĂŒbernommen wurden, die die Nutzung des Landlock-Kernelsubsystems zur Isolierung ohne SUID-Bit und zur Erhöhung von Rechten ermöglichen, aber die Veröffentlichung mit dieser UnterstĂŒtzung steht noch aus.
Quelle: opennet.ru
