Выпуск сістэмы ізаляцыі прыкладанняў Firejail 0.9.62
Пасля шасці месяцаў распрацоўкі даступны рэліз праекта Firejail 0.9.62, у рамках якога развіваецца сістэма для ізаляванага выканання графічных, кансольных і серверных прыкладанняў. Ужыванне Firejail дазваляе мінімізаваць рызыку кампраметацыі асноўнай сістэмы пры запуску не вартыя даверу або патэнцыйна ўразлівых праграм. Праграма напісана на мове Сі, распаўсюджваецца пад ліцэнзіяй GPLv2 і можа працаваць у любым дыстрыбутыве Linux з ядром старэйшыя за 3.0. Гатовыя пакеты з Firejail падрыхтаваны у фарматах deb (Debian, Ubuntu) і rpm (CentOS, Fedora).
Для ізаляцыі ў Firejail выкарыстоўваюцца прасторы імёнаў (namespaces), AppArmor і фільтраванне сістэмных выклікаў (seccomp-bpf) у Linux. Пасля запуску праграма і ўсе яе даччыныя працэсы выкарыстоўваюць асобныя ўяўленні рэсурсаў ядра, такіх як сеткавы стэк, табліца працэсаў і кропкі мантавання. Залежныя паміж сабой прыкладанні можна аб'ядноўваць у адзін агульны sandbox. Пры жаданні Firejail можна ўжываць і для запуску кантэйнераў Docker, LXC і OpenVZ.
У адрозненне ад сродкаў кантэйнернай ізаляцыі firejail лімітава просты у канфігурацыі і не патрабуе падрыхтоўкі сістэмнай выявы - склад кантэйнера фармуецца на лёце на аснове змесціва бягучай ФС і выдаляецца пасля завяршэння працы прыкладання. Прадстаўляюцца гнуткія сродкі задання правіл доступу да файлавай сістэмы, можна вызначаць да якіх файламі і дырэкторыям дазволены ці забаронены доступ, падлучаць для дадзеных часавыя ФС (tmpfs), абмяжоўваць доступ да файлаў ці дырэкторыям толькі на чытанне, сумяшчаць дырэкторыі праз bind-mount і overlayfs.
Для вялікай колькасці папулярных прыкладанняў, у тым ліку для Firefox, Chromium, VLC і Transmission, падрыхтаваны гатовыя профілі ізаляцыі сістэмных выклікаў. Для атрымання прывілеяў, неабходных для налады ізаляванага асяроддзя, выкананы файл firejail усталёўваецца са сцягам SUID root (пасля ініцыялізацыі прывілея скідаюцца). Для выканання праграмы ў рэжыме ізаляцыі дастаткова ўказаць імя прыкладання ў якасці аргументу ўтыліты firejail, напрыклад, "firejail firefox" або "sudo firejail /etc/init.d/nginx start".
У новым выпуску:
У файл канфігурацыі /etc/firejail/firejail.config дададзена настройка file-copy-limit, якая дазваляе абмежаваць памер файлаў, якія будуць скапіяваныя ў памяць пры выкарыстанні опцый «—private-*» (па змаўчанні абмежаванне выстаўлена ў 500MB).
У каталог /usr/share/doc/firejail дададзены шаблоны для стварэння новых профіляў абмежавання прыкладанняў.
У профілях дазволена выкарыстанне адладчыкаў.
Палепшана фільтраванне сістэмных выклікаў пры дапамозе механізма seccomp.
Забяспечана аўтавызначэнне флагаў кампілятара.
Выклік chroot зараз выконваецца не на аснове шляху, а выкарыстоўваючы кропкі мантавання на базе файлавага дэскрыптара.
Каталог /usr/share змешчаны ў белы спіс разнастайных профіляў.
У секцыю conrib дададзены новыя дапаможныя скрыпты gdb-firejail.sh і sort.py.
Узмоцнена абарона на стадыі выканання прывілеяванага кода (SUID).
Для профіляў рэалізаваны новыя ўмоўныя прыкметы HAS_X11 і HAS_NET для праверкі наяўнасці X-сервера і сеткавага доступу.
Дададзеныя профілі для ізаляванага запуску прыкладанняў (агульная колькасць профіляў даведзена да 884):