Die Veröffentlichung von Firejail 0.9.72 wurde bekannt gegeben. Dieses Projekt entwickelt ein System fĂŒr die isolierte AusfĂŒhrung von grafischen, konsolenbasierten und Serveranwendungen, das das Risiko einer Kompromittierung des Hauptsystems beim AusfĂŒhren von nicht vertrauenswĂŒrdigen oder potenziell anfĂ€lligen Programmen minimiert. Die Software ist in C geschrieben, wird unter der GPLv2-Lizenz verbreitet und kann in jeder Linux-Distribution mit einem Kernel Ă€lter als 3.0 betrieben werden. Fertige Pakete fĂŒr Firejail sind in den Formaten deb (Debian, Ubuntu) und rpm (CentOS, Fedora) verfĂŒgbar.
FĂŒr die Isolation in Firejail werden Namespaces, AppArmor und system call filtering (seccomp-bpf) in Linux verwendet. Nach dem Start verwendet das Programm sowie alle seine Kindprozesse separate Ansichten der Systemressourcen, wie etwa den Netzwerkstack, die Prozessliste und die Mount-Punkte. AbhĂ€ngige Anwendungen können in einem gemeinsamen Sandbox zusammengefĂŒhrt werden. Bei Bedarf kann Firejail auch zum Starten von Docker-, LXC- und OpenVZ-Containern verwendet werden.
Im Gegensatz zu Containerisolierungsmethoden ist Firejail extrem einfach zu konfigurieren und erfordert keine Vorbereitung eines Systemimages â der Inhalt des Containers wird zur Laufzeit basierend auf dem Inhalt des aktuellen Dateisystems erstellt und nach Abschluss der Anwendung entfernt. Flexible Mittel zur Festlegung von Zugriffsregeln fĂŒr das Dateisystem werden bereitgestellt, man kann bestimmen, auf welche Dateien und Verzeichnisse der Zugriff erlaubt oder verweigert wird, temporĂ€re Dateisysteme (tmpfs) fĂŒr Daten einbinden, den Zugriff auf Dateien oder Verzeichnisse nur zum Lesen beschrĂ€nken und Verzeichnisse ĂŒber Bind-Mount und Overlayfs kombinieren.
FĂŒr eine Vielzahl beliebter Anwendungen, einschlieĂlich Firefox, Chromium, VLC und Transmission, wurden vorgefertigte Profile zur Isolation von Systemaufrufen erstellt. Um die fĂŒr die Konfiguration einer isolierten Umgebung erforderlichen Berechtigungen zu erhalten, wird die ausfĂŒhrbare Datei firejail mit dem SUID-Root-Flag installiert (nach der Initialisierung werden die Berechtigungen zurĂŒckgesetzt). Um das Programm im Isolationsmodus auszufĂŒhren, genĂŒgt es, den Namen der Anwendung als Argument der firejail-Utility anzugeben, zum Beispiel âfirejail firefoxâ oder âsudo firejail /etc/init.d/nginx startâ.
In der neuen Version:
- Ein Seccomp-Filter fĂŒr Systemaufrufe wurde hinzugefĂŒgt, der die Erstellung von NamensrĂ€umen blockiert (um diese Funktion zu aktivieren, wurde die Option âârestrict-namespacesâ hinzugefĂŒgt). Die Tabellen der Systemaufrufe und der Seccomp-Gruppen wurden aktualisiert.
- Der Modus force-nonewprivs (NO_NEW_PRIVS) wurde verbessert, um das Erlangen zusÀtzlicher Privilegien in neuen Prozessen zu verbieten.
- Die Verwendung eigener AppArmor-Profile wurde hinzugefĂŒgt (die Option ââapparmorâ wurde fĂŒr die Einbindung vorgeschlagen).
- Im System zur Ăberwachung des Netzwerkverkehrs nettrace, das Informationen ĂŒber IP und den Verkehrsaufkommen von jeder Adresse anzeigt, wurde die UnterstĂŒtzung von ICMP implementiert, und es wurden die Optionen ââdnstraceâ, ââicmptraceâ und ââsnitraceâ angeboten.
- Die Befehle âcgroup und âshell wurden entfernt (standardmĂ€Ăig wird âshell=none angewendet). Der Build von firetunnel wurde standardmĂ€Ăig eingestellt. Die Konfigurationen chroot, private-lib und tracelog in /etc/firejail/firejail.config wurden deaktiviert. Die UnterstĂŒtzung fĂŒr grsecurity wurde eingestellt.
Quelle: opennet.ru
