Після шести місяців розробки доступний реліз проекту 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):