Bylo vydáno nové vydání projektu Firejail 0.9.72, který vyvíjí systém pro izolované spouštění grafických, konzolových a serverových aplikací, což umožňuje minimalizovat riziko kompromitace hlavní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, distribuuje se pod licencí GPLv2 a může fungovat v jakékoliv distribuci Linuxu s jádrem starším než 3.0. Hotové balíčky s Firejail byly 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 extrémně jednoduchý na konfiguraci a nevyžaduje přípravu systémového obrazu — složení kontejneru se formuje za běhu na základě obsahu aktuálního FS a po dokončení práce aplikace se odstraní. Jsou poskytovány flexibilní prostředky pro stanovení pravidel přístupu k souborovému systému, lze určovat, k jakým souborům a adresářům je přístup povolen nebo zakázán, připojit pro data dočasné FS (tmpfs), omezit přístup k souborům nebo adresářům pouze na čtení, kombinovat 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í:
- Byl přidán seccomp filtr systémových volání, který blokuje vytváření prostorů jmen (pro aktivaci byla přidána možnost „—restrict-namespaces“). Byly aktualizovány tabulky systémových volání a skupiny seccomp.
- Byl vylepšen režim force-nonewprivs (NO_NEW_PRIVS), který zakazuje získávání dodatečných privilegií v nových procesech.
- Byla přidána možnost používání vlastních profilů AppArmor (pro připojení je nabízena volba „—apparmor“).
- V systému sledování síťového provozu nettrace, který zobrazuje informace o IP a intenzitě provozu z každé adresy, byla implementována podpora ICMP a byly nabídnuty volby „—dnstrace“, „—icmptrace“ a „—snitrace“.
- Byly odstraněny příkazy —cgroup a —shell (výchozí nastavení je —shell=none). Výchozí sestavení firetunnel bylo zastaveno. Byla vypnuta nastavení chroot, private-lib a tracelog v /etc/firejail/firejail.config. Podpora grsecurity byla ukončena.
Zdroj: opennet.ru
