Byla vydána verze projektu Firejail 0.9.78, který vyvíjí systém pro izolované spouštění grafických, konzolových a serverových aplikací, umožňující minimalizovat riziko kompromitace základního systému při spuštění nedůvěryhodných nebo potenciálně zranitelných programů. Program je napsán v jazyce C, je distribuován pod licencí GPLv2 a může fungovat v jakékoli distribuci Linuxu s jádrem starším než 3.0. Hotové balíčky s Firejail jsou připraveny ve formátech deb (Debian, Ubuntu) a rpm (CentOS, Fedora).
Pro izolaci v Firejail se používají prostory jmen (namespaces), AppArmor a filtrování systémových volání (seccomp-bpf) v Linuxu. Po spuštění program a všechny její potomkové procesy používají oddělená zobrazení prostředků jádra, jako jsou síťový zásobník, tabulka procesů a body připojení. Vzájemně závislé aplikace lze spojit do jednoho společného sandboxu. Pokud si přejete, můžete Firejail použít i pro spouštění kontejnerů Docker, LXC a OpenVZ.
Na rozdíl od prostředků kontejnerové izolace je firejail maximálně jednoduchý na konfiguraci a nevyžaduje přípravu systémového obrazu — složení kontejneru se vytváří za běhu na základě obsahu aktuálního souborového systému a je odstraněno po dokončení provozu aplikace. Jsou poskytovány flexibilní prostředky pro zadání pravidel přístupu k souborovému systému, které umožňují definovat, k jakým souborům a adresářům je povolen či zakázán přístup, připojovat pro data dočasné souborové systémy (tmpfs), omezovat přístup k souborům nebo adresářům pouze pro čtení, spojovat adresáře pomocí bind-mount a overlayfs.
Pro velké množství populárních aplikací, včetně Firefoxu, Chromiumu, VLC a Transmission, jsou připraveny hotové profily izolace systémových volání. Pro získání oprávnění potřebných k nastavení izolovaného prostředí se spouštěcí soubor firejail nainstaluje s flagem SUID root (po inicializaci jsou oprávnění obnovena). Pro spuštění programu v režimu izolace stačí uvést název aplikace jako argument utilitě firejail, například „firejail firefox“ nebo „sudo firejail /etc/init.d/nginx start“.
V novém vydání:
- Do konfiguračního souboru firejail.config byly přidány možnosti arg-max-count, arg-max-len, env-max-count a env-max-len pro změnu limitů na počet a velikost voleb příkazového řádku a proměnných prostředí. Ve výchozím nastavení je počet argumentů omezen na 128, počet proměnných prostředí na 256 a velikost každého argumentu — PATH_MAX z limits.h (v Linuxu 40196) + 32.
- Byla přidána volba „—xephyr-extra-params“ pro zadání dalších voleb k Xephyr (používá se pro vytváření sandboxových prostředí X11 s vlastním X-serverem spuštěným v okně) v příkazovém řádku bez změny firejail.config.
- Nainstalovaná utilita bwrap (bubblewrap) do sandboxového prostředí byla nahrazena meziproduktem fbwrap, který spouští programy bez izolace, aby se vyřešily problémy se spouštěním Firefoxu, Thunderbirdu, GIMPu kvůli volání glycin 2.0.0 z gdk-pixbuf2 s použitím bwrap. Pro kopírování bwrap byla přidána volba „—allow-bwrap“ místo meziproduktu.
- Byly aktualizovány tabulky systémových volání pro seccomp. Byly přidány nové systémové volání, jako epoll_pwait2 a futex_wait.
- Byla odstraněna možnost kompilace „—disable-globalcfg“, bylo ukončeno podporování overlayfs („—overlay“) a režimu IDS (Intrusion Detection System, „—ids“).
- Byly přidány izolační profily pro textový editor ne (textový editor), prohlížeč Trivalent a herní enginy OpenRA, quakespasm, gzdoom, lzdoom, uzdoom.
- Byly aktualizovány profily pro thunderbird, wine, qutebrowser, firefox, godot, wusc, mullvad-browser, blink, steam, ssh, brave a hashcat.
Zdroj: opennet.ru
