lansarea proiectului , în cadrul căruia se dezvoltă un sistem pentru execuția izolată a aplicațiilor grafice, de consolă și server. Utilizarea Firejail permite minimizarea riscului de compromisare a sistemului de bază la lansarea programelor ce nu sunt de încredere sau potențial vulnerabile. Programul este scris în limbajul C, sub licența GPLv2 și poate funcționa pe orice distribuție Linux cu kernel mai recent de 3.0. Pachetele gata pregătite cu Firejail sunt disponibile în formate deb (Debian, Ubuntu) și rpm (CentOS, Fedora).
Pentru izolarea în Firejail spații de nume (namespaces), AppArmor și filtrarea apelurilor de sistem (seccomp-bpf) în Linux. După lansare, programul și toate procesele sale copil folosesc vederi separate ale resurselor nucleului, cum ar fi stiva de rețea, tabelul proceselor și punctele de montare. Aplicațiile interdependente pot fi grupate într-un singur sandbox comun. Dacă se dorește, Firejail poate fi utilizat și pentru a lansa containere Docker, LXC și OpenVZ.
Spre deosebire de metodele de izolare a containerelor, firejail este extrem de în configurație și nu necesită pregătirea unei imagini a sistemului — compunerea containerului se realizează în timp real, pe baza conținutului FS-ului actual și este eliminată după finalizarea lucrului aplicației. Se oferă instrumente flexibile pentru stabilirea regulilor de acces la sistemul de fișiere, putându-se determina la ce fișiere și directoare este permis sau interzis accesul, conectându-se pentru date sisteme de fișiere temporare (tmpfs), limitând accesul la fișiere sau directoare doar la citire, combinând directoare prin bind-mount și overlayfs.
Pentru un număr mare de aplicații populare, inclusiv Firefox, Chromium, VLC și Transmission, au fost pregătite de izolare a apelurilor de sistem. Pentru a executa programul în modul de izolare, este suficient să specifici numele aplicației ca argument al utilitarului firejail, de exemplu, „firejail firefox” sau „sudo firejail /etc/init.d/nginx start”.
În noua versiune:
- A fost eliminată o vulnerabilitate care permitea unui proces malițios să evite mecanismul de restricție a apelurilor de sistem. Esența vulnerabilității constă în faptul că filtrele Seccomp sunt copiate în directorul /run/firejail/mnt, disponibil pentru scriere în interiorul mediu izolat. Procesele malițioase lansate în modul de izolare pot modifica aceste fișiere, ceea ce va conduce la faptul că noile procese lansate în același mediu vor fi executate fără aplicarea filtrului de apeluri de sistem.
- Filtrul memory-deny-write-execute asigură blocarea apelului „memfd_create”;
- A fost adăugată o nouă opțiune „private-cwd” pentru a schimba directorul de lucru pentru jail;
- A fost adăugată opțiunea „—nodbus” pentru a bloca socket-urile D-Bus;
- A fost readus suportul pentru CentOS 6;
- suport pentru pachete în formate și .
, că pentru aceste pachete ar trebui să folosească propriul lor instrumentar; - Au fost adăugate noi profile pentru izolarea a 87 de programe suplimentare, printre care 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 și cantata.
Sursa: opennet.ro
