Projekt-Releases , in dessen Rahmen ein System für die isolierte Ausführung von grafik-, konsole- und serverbasierten Anwendungen entwickelt wird. Die Verwendung von Firejail minimiert das Risiko einer Kompromittierung des Hauptsystems beim Start von nicht vertrauenswürdigen oder potenziell anfälligen Programmen. Das Programm ist in C geschrieben, unter der GPLv2-Lizenz und kann in jeder Linux-Distribution mit einem Kernel neuerer Version als 3.0 betrieben werden. Fertige Pakete von Firejail liegen in den Formaten deb (Debian, Ubuntu) und rpm (CentOS, Fedora) vor.
Für die Isolation in Firejail Namespaces, AppArmor und die Filterung von Systemaufrufen (seccomp-bpf) in Linux verwendet. Nach dem Start nutzt das Programm und alle seine Kindprozesse separate Ansichten von Kernelressourcen wie Netzstack, Prozess-Tabelle und Einhängepunkte. Abhängige Anwendungen können in einem gemeinsamen Sandbox zusammengefasst werden. Bei Bedarf kann Firejail auch zur Ausführung von Docker-, LXC- und OpenVZ-Containern verwendet werden.
Im Gegensatz zu Containerisolationstools ist Firejail absolut Die Konfiguration erfordert kein Systemabbild — der Container wird dynamisch auf Grundlage des Inhalts des aktuellen Dateisystems erstellt und nach Beendigung der Anwendung gelöscht. Flexible Mittel zur Festlegung von Zugriffskontrollregeln für das Dateisystem stehen zur Verfügung, sodass bestimmt werden kann, auf welche Dateien und Verzeichnisse der Zugang erlaubt oder verweigert ist. Temporäre Dateisysteme (tmpfs) können für Daten angeschlossen werden, der Zugriff auf Dateien oder Verzeichnisse kann auf nur lesenden Zugriff beschränkt werden, und Verzeichnisse können mit bind-mount und overlayfs kombiniert werden.
Für eine Vielzahl von beliebten Anwendungen, einschließlich Firefox, Chromium, VLC und Transmission, sind vorgefertigte zur Isolation von Systemaufrufen vorbereitet. Um ein Programm im isolierten Modus auszuführen, genügt es, den Namen der Anwendung als Argument des Tools firejail anzugeben, zum Beispiel „firejail firefox“ oder „sudo firejail /etc/init.d/nginx start“.
In der neuen Version:
- Eine Sicherheitsanfälligkeit wurde behoben, die es schädlichen Prozessen ermöglicht, den Systemsystemaufruf-Restrukturierungsmechanismus zu umgehen. Das Problem besteht darin, dass die Seccomp-Filter in das Verzeichnis /run/firejail/mnt kopiert werden, das innerhalb der isolierten Umgebung schreibbar ist. Schadhafte Prozesse, die im Isolationsmodus ausgeführt werden, können diese Dateien ändern, was dazu führt, dass neue Prozesse, die in dieser Umgebung gestartet werden, ohne Anwendung des Systemsystemaufruf-Filters ausgeführt werden;
- Im Filter memory-deny-write-execute wurde der Aufruf „memfd_create“ blockiert;
- Eine neue Option „private-cwd“ wurde hinzugefügt, um das Arbeitsverzeichnis für das Jail zu ändern;
- Die Option „—nodbus“ wurde hinzugefügt, um D-Bus-Sockets zu blockieren;
- Die Unterstützung für CentOS 6 wurde zurückgegeben;
- Unterstützung für Pakete in den Formaten und .
, dass für diese Pakete deren eigene Werkzeuge verwendet werden sollten; - Neue Profile zur Isolierung von 87 zusätzlichen Programmen wurden hinzugefügt, darunter mypaint, nano, xfce4-mixer, gnome-keyring, redshift, font-manager, gconf-editor, gsettings, freeciv, lincity-ng, openttd, torcs, tremulous, warsow, freemind, kid3, freecol, opencity, utox, freeoffice-planmaker, freeoffice-presentations, freeoffice-textmaker, inkview, meteo-qt, ktouch, yelp und cantata.
Quelle: opennet.ru
