Увидел свет (https://github.com/netblue30/firejail/releases/tag/0.9.60) релиз проекта Firejail 0.9.60 (https://firejail.wordpress.com/), в рамках которого развивается система для изолированного выполнения графических, консольных и серверных приложений. Применение Firejail позволяет минимизировать риск компрометации основной системы при запуске не заслуживающих доверия или потенциально уязвимых программ. Программа написана на языке Си, распространяется (https://github.com/netblue30/firejail) под лицензией GPLv2 и может работать в любом дистрибутиве Linux с ядром старше 3.0. Готовые пакеты с Firejail подготовлены (https://sourceforge.net/projects/firejail/files/firejail/) в форматах deb (Debian, Ubuntu) и rpm (CentOS, Fedora).Для изоляции в Firejail используются (https://firejail.wordpress.com/features-3/) пространства имён (namespaces), AppArmor и фильтрация системных вызовов (seccomp-bpf) в Linux. После запуска программа и все её дочерние процессы используют отдельные представления ресурсов ядра, таких как сетевой стек, таблица процессов и точки монтирования. Зависимые между собой приложения можно объединять в один общий sandbox. При желании, Firejail можно применять и для запуска контейнеров Docker, LXC и OpenVZ.
В отличие от средств контейнерной изоляции firejail предельно прост (https://firejail.wordpress.com/documentation-2/basic-usage/) в конфигурации и не требует подготовки системного образа - состав контейнера формируется на лету на основе содержимого текущей ФС и удаляется после завершения работы приложения. Предоставляются гибкие средства задания правил доступа к файловой системе, можно определять к каким файлами и директориям разрешён или запрещён доступ, подключать для данных временные ФС (tmpfs), ограничивать доступа к файлам или директориям только на чтение, совмещать директории через bind-mount и overlayfs.
Для большого числа популярных приложений, в том числе для Firefox, Chromium, VLC и Transmission, подготовлены готовые профили (https://firejail.wordpress.com/documentation-2/building-cust.../) изоляции системных вызовов. Для выполнения программы в режиме изоляции достаточно указать имя приложения в качестве аргумента утилиты firejail, например, "firejail firefox" или "sudo firejail /etc/init.d/nginx start".
В новом выпуске:
- Устранена уязвимость, позволяющая вредоносному процессу обойти механизм ограничения системных вызовов. Суть уязвимость в том, что фильтры Seccomp копируются в каталог /run/firejail/mnt, доступный на запись внутри изолированного окружения. Запускаемые в режиме изоляции вредоносные процессы могут изменить эти файлы, что приведёт к тому, что новые процессы, запущенные в этом же окружении, будут выполнены без применения фильтра системных вызовов;- В фильтре memory-deny-write-execute обеспечена блокировка вызова "memfd_create";
- Добавлена новая опция "private-cwd" для изменения рабочего каталога для jail;
- Добавлена опция "--nodbus" для блокировки сокетов D-Bus;
- Возвращена поддержка CentOS 6;
- Прекращена (https://github.com/netblue30/firejail/pull/2601) поддержка пакетов в форматах flatpak (https://flatpak.org/) и snap (https://snapcraft.io/).
Указано (https://github.com/netblue30/firejail/pull/2601/commits/581d...), что для данных пакетов следует использовать их собственный инструментарий;- Добавлены новые профили для изоляции 87 дополнительных программ, в числе которых 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 и cantata.
URL: https://github.com/netblue30/firejail/releases/tag/0.9.60
Новость: https://www.opennet.dev/opennews/art.shtml?num=50760
а ограничивать доступ в интернеты оно умеет? А то я по-старинке режу через иптаблес и неймспейсы
да, через неймсейсы же и делает
Судя по истории изменений, Firejail также можно считать потенциально уязвимой программой.
Все программы потенциально уязвимые.
Не забываем, что это suid-программа, в котороый уже были уязвимости, позволяющие получить root: https://www.opennet.dev/opennews/art.shtml?num=45824
...при условии, что приложение-вредонос уже запущено _извне_ сэндбокса
Локальное повышение привилегий - это тоже уязвимость.
тогда только bubblewrap
bubblewrap самое оно.Пользовался firejail-ом несколько лет. Писал все скрипты сам, знал почти опции и как оно примерно работает. Задолбался работать со всеми этими глюками, обилием критических уязвимостей (одну зарепортил сам, кстати -- позволяла обнулить любой файл в хост-системе).
Ушёл в bwrap, не жалею. В начале этого года извёл, наконец, последние скрипты на нём и переписал на bwrap. Всё чище, приятнее, никаких исключений и особых правил.
Если кто пишет firejail-правила самостоятельно -- рекомендую попробовать bwrap.
а как оно, в плане дружелюбности для обычного_пользователя? У firejail есть заготовленный список правил для ленивых, вики с кучей примеров настройки на все случаи жизни и гуй для неосиляторов консоли, а что тут?
это разве не самодостаточные пакеты, которые ффтoпку?
Нет, это паpaзuтopии туда. Путаешь, как всегда.
Это прекрасно, но не на гнилых процессорах.
RISC-V не гниет
Кто же вас заставляет Интел использовать?
Apparmor уже не торт? Кто-то даже профили пишет https://github.com/viewizard/gentoo-apparmor/tree/master/app...
Она использует apparmor, если скомпилировать с этой опцией.
А какой смысл ограничивать тот же xfce4-mixer? Ладно браузер, там недоверенный жабаскрипт и прочий wasm, ладно mypaint - могут быть эксплоиты в редактируемых изображениях, с натяжкой даже redshift - он к сети обращается для определения координат, если их не задать вручную, и теоретически можно подменой ответа сервера сделать какую-нибудь бяку. Но вот на сценарий эксплуатации уязвимости в ползунке регулировки громкости у меня не хватает фантазии.
Ну например уязвимость в протоколе/реализации pulseaudio любое приложение выводящее звук потенциальный атакующий, если не изолировать саму пульсу и всех её клиентов, то остается повышенный риск эксплуатации такой уязвимости.
Хакнры доберутся до пшшаудио и включат русский рэп.
Это ИМХО пострашнее всяких Spectre.
Лол атакуют всегда там где не ждут. Через ползунок можно поднять громкость и через динамики данные передавать на ультразвуке. Узко мыслите товарищ.
>Программа написана на языке СиИзоляция? Ну-ну.
Перепиши на ржавчину.
А смысл, оно лишь удобная обертка к фичам ядра. Тогда надо ядро сначала переписать.
А что не так?
Не модно, не молодежно, же. Для вэбмакаки Си - это даже не граната, а ядрена боеголовка на пару магатонн.
пох залогинься. Кроме вебмакак сейчас никого и не осталось. Так что с си потенциально опасно.
Я не пох. Но таки да
> Кроме вебмакак сейчас никого и не осталось.и это печально.
что люди не делают, лишь бы selinux не использовать
> что люди не делают, лишь бы selinux не использоватьselinux отдельно, контейнеры отдельно. Просто банально страшно давать яве доступ к файловой системе и хочется ограничить его.
Тот у кого руки от плеч и голова от шеи, напишет на чистом Си суперсекурную прогу.