Die neue Version des Firejail-Projekts 0.9.72 wurde veröffentlicht. Firejail ist ein System zur isolierten Ausführung von grafischen, Konsolen- und Serveranwendungen, das hilft, das Risiko einer Kompromittierung des Hauptsystems beim Ausführen von nicht vertrauenswürdigen oder potenziell anfälligen Programmen zu minimieren. Die Anwendung ist in C geschrieben, wird unter der GPLv2-Lizenz verbreitet und ist mit jeder Linux-Distribution ab Kernel 3.0 kompatibel. Fertige Pakete von Firejail sind im deb-Format (Debian, Ubuntu) und im rpm-Format (CentOS, Fedora) verfügbar.
Firejail verwendet zur Isolation die Linux-Namensräume (namespaces), AppArmor und syscall-Filterung (seccomp-bpf). Nach dem Start nutzt das Programm zusammen mit all seinen Unterprozessen separate Ansichten der Kernelressourcen, wie z. B. den Netzwerkstack, die Prozessliste und die Mount-Punkte. Abhängige Anwendungen können in einem gemeinsamen Sandbox zusammengefasst werden. Firejail kann auch zum Starten von Docker-, LXC- und OpenVZ-Containern verwendet werden.
Im Gegensatz zu Container-Isolierungsmitteln ist Firejail extrem einfach zu konfigurieren und erfordert keine Vorbereitung eines System-Images – der Container wird zur Laufzeit basierend auf dem Inhalt des aktuellen Dateisystems gebildet und nach Beendigung der Anwendung gelöscht. Flexible Mittel zur Festlegung von Zugriffsregeln für das Dateisystem werden bereitgestellt; Sie können bestimmen, auf welche Dateien und Verzeichnisse der Zugriff erlaubt oder verboten ist, temporäre Dateisysteme (tmpfs) für Daten einbinden, den Zugriff auf Dateien oder Verzeichnisse nur im Lesemodus beschränken und Verzeichnisse über Bind-Mount und OverlayFS kombinieren.
Für eine Vielzahl beliebter Anwendungen, einschließlich Firefox, Chromium, VLC und Transmission, sind fertige Profile zur Isolierung von Systemaufrufen verfügbar. Um die erforderlichen Berechtigungen für die Einrichtung einer isolierten Umgebung zu erhalten, wird die ausführbare Firejail-Datei mit dem SUID-Root-Flag installiert (nach der Initialisierung werden die Berechtigungen zurückgesetzt). Um ein Programm im Isolationsmodus auszuführen, genügt es, den Namen der Anwendung als Argument des Firejail-Tools 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 (die Option „—restrict-namespaces“ wurde zur Aktivierung hinzugefügt). Die Tabellen für Systemaufrufe und Seccomp-Gruppen wurden aktualisiert.
- Der Modus force-nonewprivs (NO_NEW_PRIVS), der das Erlangen zusätzlicher Privilegien in neuen Prozessen verbietet, wurde verbessert.
- Die Verwendung eigener AppArmor-Profile wurde hinzugefügt (die Option „—apparmor“ wurde zur Aktivierung angeboten).
- Im System zur Überwachung des Netzwerkverkehrs nettrace, das Informationen über IP-Adressen und den Verkehrsintensität jedes Adress zeigt, wurde die Unterstützung von ICMP implementiert und die Optionen „—dnstrace“, „—icmptrace“ und „—snitrace“ angeboten.
- Die Befehle —cgroup und —shell wurden entfernt (standardmäßig wird —shell=none verwendet). Der Build von firetunnel wurde standardmäßig eingestellt. Die Einstellungen chroot, private-lib und tracelog in /etc/firejail/firejail.config wurden deaktiviert. Die Unterstützung für grsecurity wurde eingestellt.
Quelle: opennet.ru
