Nach sechs Monaten Entwicklungszeit Projektveröffentlichung , im Rahmen dessen ein System für die isolierte Ausführung von grafischen, Konsolen- und Serveranwendungen entwickelt wird. Die Anwendung von Firejail minimiert das Risiko einer Kompromittierung des Hauptsystems beim Starten von nicht vertrauenswürdigen oder potenziell anfälligen Programmen. Das Programm ist in der Programmiersprache C geschrieben, unter der Lizenz GPLv2 und kann in jeder Linux-Distribution mit einem Kernel höher als 3.0 laufen. Fertige Pakete mit Firejail in den Formaten deb (Debian, Ubuntu) und rpm (CentOS, Fedora).
Für die Isolation in Firejail Namensräume (namespaces), AppArmor und die Filterung von Systemaufrufen (seccomp-bpf) in Linux. Nach dem Start verwendet das Programm und alle seine untergeordneten Prozesse separate Ansichten der Kernel-Ressourcen, wie z. B. den Netzwerkstack, die Prozess-Tabelle und die Mount-Punkte. Abhängige Anwendungen können in einem gemeinsamen Sandbox vereinigt werden. Firejail kann auch verwendet werden, um Docker-, LXC- und OpenVZ-Container zu starten.
Im Gegensatz zu Containermethoden ist Firejail äußerst In der Konfiguration ist keine Vorbereitung eines Systemabbilds erforderlich – der Container wird zur Laufzeit basierend auf dem Inhalt des aktuellen Dateisystems gebildet und nach dem Ende der Anwendung gelöscht. Es stehen flexible Mittel zur Verfügung, um Zugriffsregeln für das Dateisystem festzulegen; man kann 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 lesend einschränken und Verzeichnisse über bind-mount und overlayfs kombinieren.
Für eine Vielzahl beliebter Anwendungen, einschließlich Firefox, Chromium, VLC und Transmission, wurden vorbereitete Isolation von Systemaufrufen. Um die erforderlichen Berechtigungen zur Einrichtung einer isolierten Umgebung zu erhalten, wird die ausführbare Datei firejail mit dem SUID-Root-Flag gesetzt (nach der Initialisierung werden die Berechtigungen zurückgesetzt). Um das Programm im isolierten Modus auszuführen, genügt es, den Namen der Anwendung als Argument für das firejail-Dienstprogramm anzugeben, z. B. „firejail firefox“ oder „sudo firejail /etc/init.d/nginx start“.
In der neuen Version:
- In die Konfigurationsdatei /etc/firejail/firejail.config die Einstellung file-copy-limit, die die Größe der Dateien begrenzt, die bei Verwendung der Optionen „—private-*“ in den Speicher kopiert werden sollen (Standardmäßig ist die Begrenzung auf 500 MB festgelegt).
- Im Verzeichnis /usr/share/doc/firejail wurden Vorlagen zum Erstellen neuer Anwendungsprofile hinzugefügt.
- In den Profilen ist die Verwendung von Debuggern erlaubt.
- Die Filterung von Systemaufrufen wurde durch den Mechanismus seccomp verbessert.
- Es wurde eine automatische Erkennung der Compiler-Flags sichergestellt.
- Der chroot-Aufruf erfolgt jetzt nicht mehr auf Basis des Pfades, sondern unter Verwendung von Mount-Punkten auf Basis des Dateideskriptor.
- Das Verzeichnis /usr/share wurde in die Whitelist verschiedener Profile aufgenommen.
- In den Abschnitt contrib wurden neue Hilfsskripte gdb-firejail.sh und sort.py hinzugefügt.
- Der Schutz in der Ausführungsphase privilegierten Codes (SUID) wurde verstärkt.
- Für die Profile wurden neue bedingte Merkmale HAS_X11 und HAS_NET zur Überprüfung der Verfügbarkeit eines X-Servers und des Netzwerkzugriffs implementiert.
- Profile für den isolierten Start von Anwendungen hinzugefügt (insgesamt wurden 884 Profile erreicht):
- i2p,
- tor-browser (AUR),
- Zulip,
- rsync,
- signal-cli,
- tcpdump,
- tshark,
- qgis,
- OpenArena,
- godot,
- klatexformula,
- klatexformula_cmdl,
- links,
- xlinks,
- pandoc,
- teams-for-linux,
- gnome-sound-recorder,
- newsbeuter,
- keepassxc-cli,
- keepassxc-proxy,
- rhythmbox-client,
- jerry,
- zeal,
- mpg123,
- conplay,
- mpg123.bin,
- mpg123-alsa,
- mpg123-id3dump,
- out123,
- mpg123-jack,
- mpg123-nas,
- mpg123-openal,
- mpg123-oss,
- mpg123-portaudio,
- mpg123-pulse,
- mpg123-strip,
- pavucontrol-qt,
- gnome-characters,
- gnome-character-map,
- Whalebird,
- tb-starter-wrapper,
- bzcat,
- kiwix-desktop,
- bzcat,
- zstd,
- pzstd,
- zstdcat,
- zstdgrep,
- zstdless,
- zstdmt,
- unzstd,
- ar,
- gnome-latex,
- pngquant,
- kalgebra,
- kalgebramobile,
- amuled,
- kfind,
- profanity,
- audio-recorder,
- cameramonitor,
- ddgtk,
- drawio,
- unf,
- gmpc,
- electron-mail,
- gist,
- gist-paste.
Quelle: opennet.ru
