В утилите для изолированного выполнения приложений Firejail выявлена уязвимость (CVE-2022-31214), позволяющая локальному пользователю получить права root в основной системе. В открытом доступе имеется рабочий эксплоит, проверенный в актуальных выпусках openSUSE, Debian, Arch, Gentoo и Fedora с установленной утилитой firejail. Проблема устранена в выпуске firejail 0.9.70. В качестве обходного пути защиты можно выставить в настройках (/etc/firejail/firejail.config) параметры "join no" и "force-nonewprivs yes"...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=57337
Никогда такого не было, и вот опять.
# Prerequisites:
# - the firejail setuid-root binary needs to be installed and accessible to the
# invoking user
Ты должен был ИЗОЛИРОВАТЬ приложения, а не давать доступ к руту!!!
Забавная там многоходовочка.
Изолированный запуск app безопасно говорили они
Классический юниксовый подход - чтобы снизить привилегии, нужно сначала их получить.
Поэтому традиционно демоны стартуют из-под рута, выполняют привилегированные операции (socket bind, chroot и т.д.) и только после этого сбрасывают привилегии. И если их ломануть на этой стадии - получим рута.Со всяческими "изоляторами" - ровно то же самое. Чтобы нормально заизолировать процесс, то есть настроить namespaces, cgroups и прочее - нужно иметь рута.
Простая аналогия из мира людей: государственная система, эффективно борющаяся с коррупцией, легко уязвима для госпереворота.
Надо было писать на Rust, говорили они.
И написали на C.
Ошибка логическая - от яп вон то вообще не зависит.
Нормально всё - детские болезни вылазят просто. Линукс лезет к конечному пользователю (desktop, laptop ), набивают шишки.Фряха не лезет и не страдает от такого (ну там конечно будет позже вопрос кто остался на фряхе кроме тех кто может патчить код, но это другое).
> Фряха не лезет и не страдает от такогоВ смысле, так и остаётся Неуловимым Джо, в котором дыры есть, но искать их некому, потому что никто не пользуется?
> но искать их некомуhttps://www.opennet.dev/opennews/art.shtml?num=48676
> Организация The NetBSD Foundation оплатила проведение аудита безопасности
Сейчас бы перепутать FreeBSD и NetBSD.
Интересно как NetBSD foundation относится к использовнию фряхи, особенно с изоляцией софта на десктопе. Они точно оплатили именно это?
Неуловимым Джо конечно остаётся, и даже прогрессирует в здесь, но давайте оставим это за кадром.Я слегка о другом - вот это вот всё - firejail, logind, appimage/snap это же про то как технически неграмотному юзеру (тем кто не обладает навыками программирования на С) дать возможность пользоваться линукс не только на серверах. И если MacOS/Windows прошли этот путь давно и собрали много случаев реальных (типа форсить апдейты иначе их не поставят) то тут ещё копать и копать в эту сторону - первые детские шаги.
И причем тут снапы с файерджейлами и поэтессами, как они мешают или упрощают возможность простому пользователю что-либо делать?
А главное причем тут бсд. Там нет такого зоопарка с которым,судя по диким тормозам снапа,безуспешно борятся. Во фре вообще все максимально просто, особенно там где в бубунтах стоит отклониться от кликанья далее->далее>ок.
Живу же как-то без альс с пульсами и пипевирами. Нет никаких унылод, а сх портянки в разы проще из-за отсутсвия этих ваших run level.
C не знаю и не собираюсь изучать.Но речь даже не о б этом. GUI приложения,за редким исключением, абсолютно те же самые что и на линуксе.
Кто-то на фряхе умеет патчить код? Это миф, в пусси.ехе не надо патчить код.
Типичное представление о фряхе типичного анонима, не знакомого с фряхой.
> Типичное представление о фряхе типичного анонима, не знакомого с фряхой.Не, лично мне как раз первым делом пришлось патчи искать и пилить их самому, потому что нихрена нет. В итоге, как-то не прижилось, не эффективно. Если бы фряшники использовали её, например, на десктопе, как это делают с линуксом, у меня бы с ней таких проблем не возникало по кд. А для пусси насов вполне нормально, согласен.
А что, тут есть фряшники способные код писать? Да еще что-нибудь хоть слегка системное, типа сабжа? ORLY?
В FreeBSD есть jail, не такой дырявый как firejail. И да, BSD для десктопа лучше, чем Linux, так как там нет таких проблем, как баг 12309.
>баг 12309Да ладно вам рассказывать, даже в венде есть. Не удалось стриггеррить не равно нет. Зато есть другие, и, в итоге, не юзабельно при ближайшем рассмотрении.
> Не удалось стриггеррить не равно нетЧайник Рассела прямо.
Я точно не в теме использования Фряхи - можете привести пару примеров использования для приложений "из коробки"? То что с напильником и лишним временем можно самому заморочиться это мне понятно и так.Я смотрю на
>Firejail uses profiles to set the security protections for each of the applications executed inside of it - you can find the default profiles in /etc/firejail/application.profileи из этого мне понятно что уже есть подготовленные профили ( https://github.com/netblue30/firejail/tree/master/etc/profil... ) для скажем Chromium или Emacs.
Тут понятно что это экономит мне время, про Jails - есть сомнения.
Pkg install kde5
Pkg install Firefox
Вот вам пример установки фирифокса из коробки.
Здесь лишь может надо будет один раз прочесть wiki/хендбук о том как установить и испооьзовать драйвер от вашей невидии/ати или интела. Остальное давно уже само подхватывается.Если многабукв серьезное препятствие, то только маки и винда. Потому как даже в бубунтах придется искать магические заклинания с sudo на askubuntu.com
> Вот вам пример установки фирифокса из коробки.А как насчёт запуска firefox в jail, про который вас спрашивали?
> Pkg install kde5
> Pkg install FirefoxИ в каком месте тут наступает изоляция файрфокса от системы? В firejail она наступает после запуска файрфокса как "firejail firefox" - а довольно навороченый профайл расписывающий куда его пустить все же надо чтобы он работал, как и что ему точно не надо уметь - писали другие люди. В чем прелесть сабжа и состоит. Вон то можно даже на ярлычок в десктопе повесить, или что там, и читать хэндбук для этого не надо.
А определить куда фокс пустить а куда нет самому - это так то очень отдельное развлечение.
>> Pkg install kde5
>> Pkg install Firefox
> И в каком месте тут наступает изоляция файрфокса от системы?
> В firejail она наступает после запуска файрфокса как "firejail firefox" - а довольноИ правда, в каком месте jail изолирован от системы, ага.
> навороченый профайл расписывающий куда его пустить все же надо чтобы он
> работал, как и что ему точно не надо уметь - писали другие люди.Там не нужен навороченный профайл. Те, кто не хотят читать - ставят bastille и заводят темплейт firefox, те кто немножно умеет - имеет стандартный темплейт в jail.conf, типа
# /etc/jail.confallow.nomount;
exec.clean;
mount.devfs;
host.hostname = "$name.your-host-name.lan";
path = "/jails/${name}/root";
#securelevel = 3;firefox {
ip4.addr = "10.0.0.2";
#exec.start = "/bin/sh /home/firefox/run-firefox";
#exec.jail_user = "firefox";
persist;
devfs_ruleset = 5;
}>> "Уязвимость в firejail, позволяющая получить root-доступ в системе"
> В чем прелесть сабжа и состоит. Вон то можно даже на ярлычок в десктопе повесить, или что там, и читать хэндбук для этого не надо.да, какая "прелесть"
> И правда, в каком месте jail изолирован от системы, ага.В вашем рецепте его не было. А так все хорошо.
> bastille и заводят темплейт firefox, те кто немножно умеет - имеет
> стандартный темплейт в jail.conf, типаА этот темплейт в готовом, актуальном, безглючном виде у них есть и майнтайнится под актуальные версии и их причуды? Потому что как тот кто делал сабжу кастомные профайлы для сложных программ я имею заметить: пакости уровня файрфокса надо довольно много всякой дряни от системы. При том если этим не заморочиться, либо оно сможет шарахаться по системе с широкими возможностями - и за что тогда боролись?! Либо половина фич сломается и будет икать постоянными обломами. То звука в ютубе нет, то файло не качается, то ускорение отпало, то еще какая-нибудь кантата.
>
> # /etc/jail.conf...
> }И что в нем после этого отвалится? И вон то как-то подозрительно просто выглядит для того чтобы зарубать все реально ненужное и при этом позволять все нужное.
> да, какая "прелесть"
Писать профайл файрфоксу в нормальном виде - очень так себе развлечение, подразумеваюшее мощные умения трассировки факапов крайне больших и сложных программ, глубоко унутрях, когда эта гадость даже ошибку нормально не факт что репортит...
>> И правда, в каком месте jail изолирован от системы, ага.
> В вашем рецепте его не было. А так все хорошо.Читать ветку обсуждения целиком, а не выхватывать частями и все будет хорошо?
>> bastille и заводят темплейт firefox, те кто немножно умеет - имеет
>> стандартный темплейт в jail.conf, типа
> А этот темплейт в готовом, актуальном, безглючном виде у них есть и
> майнтайнится под актуальные версии и их причуды? Потому что как тот
> кто делал сабжу кастомные профайлы для сложных программ я имею заметить:Потому что как тот, кто запускает ФФ в джейле, имею заметить - мейнтейнить там особо ничего не надо. Т.к. уровень джейлов - повыше будет, несмотря на схожесть имен.
Даже сам "хост" по умолчанию помещен в prison0.> пакости уровня файрфокса надо довольно много всякой дряни от системы. При
> том если этим не заморочиться, либо оно сможет шарахаться по системе
> с широкими возможностями - и за что тогда боролись?! Либо половина
> фич сломается и будет икать постоянными обломами.И пускай себе шарахается в клетке, для этого их и придумали.
[sarcasm]Лучше поддержкой оборудования[/sarcasm] В голове у тебя баг 12309.
Во Фряхе свои "нюансы" есть. Но, вообще - да, после зоопарка дистров Линуха с его "кто в лес, кто по дрова" стройная логичность Фряхи - как бальзам для сердца.
Бальзамы так то разные бывают.
Это не про desktop, а про то как изолировать приложения без этой вашей оркестрации как в snap или flatpack. А на Linux desktop лезут корпорасты с их "все свое ношу с собой".
> Это не про desktop, а про то как изолировать приложения без этой вашей оркестрации как в snap или flatpack.Не согласен - кому надо тот давно по старинке в чрутах или еще каких systemd-nspawn демона изолированно крутит. Если приложение или сервис "не демон", для взаимодействия с юзером и обратно (что уже ближе к desktop/laptop), скачан "с интернетов", то провести пару вечером за ручной настройкой такой изоляции нравится не всем, даже если предположить что с такой задачей рандомный пользователь вообще справится.
> А на Linux desktop лезут корпорасты с их "все свое ношу с собой".Если хоть кто-то лезет, то не так девка^W линукс и страшен. Хотя мне кажется вы слегка приукрашиваете реальность и на самом деле никто не лезет - всем глубоко побую. У условного гугла работают Chromebooks, а бороться за апстриминг этого и мир во всём мире - накой им надо.
Сообщество не смогло сформировать единый центр принятия решений, корпорации значит сформируют за них.
>> Это не про desktop, а про то как изолировать приложения без этой вашей оркестрации как в snap или flatpack.
> Не согласен - кому надо тот давно по старинке в чрутах или
> еще каких systemd-nspawn демона изолированно крутит. Если приложение или сервис "не
> демон", для взаимодействия с юзером и обратно (что уже ближе к
> desktop/laptop), скачан "с интернетов", то провести пару вечером за ручной настройкой
> такой изоляции нравится не всем, даже если предположить что с такой
> задачей рандомный пользователь вообще справится.Как раз в firejail есть профили. Можно не париться. Порог ниже чем в apparmor или selinux.
>> А на Linux desktop лезут корпорасты с их "все свое ношу с собой".
> Если хоть кто-то лезет, то не так девка^W линукс и страшен. Хотя
> мне кажется вы слегка приукрашиваете реальность и на самом деле никто
> не лезет - всем глубоко побую. У условного гугла работают Chromebooks,
> а бороться за апстриминг этого и мир во всём мире -
> накой им надо.
> Сообщество не смогло сформировать единый центр принятия решений, корпорации значит сформируют
> за них.Почему сразу google? Много контор хотят свой софт пихать в линукс в псевдоизоляции (продукты jetbrains, telegram, vscode и др.)
Посоветуйте, на что посмотреть кроме firejail? и где какие плюсы минусы?
https://wiki.archlinux.org/title/Bubblewrap
> Посоветуйте, на что посмотреть кроме firejail? и где какие плюсы минусы?Qubes https://www.opennet.dev/opennews/art.shtml?num=56641
Плюсы: хороший уровень изоляции, критичных дыр пока вроде не находили.
Минусы: надо повозиться, местами может быть неудобно.
>хороший уровень изоляции, критичных дыр пока вроде не находили.Кроме того случая, когда изично поимели всю эту изоляцию ради изоляции?
А такие случаи были?
Да несколько ж было, иногда упоминали и сабж. Я так понимаю, любая уязвимость в XEN автоматически подразумевает изящное отверстие в нём. Расчёт тут только на то, что ты никому не нужен. Пока у тебя нет ничего интересного, всё в порядке, а в случае таргетированной атаки могут быть уже различные варианты. Стоит ли за это платить такую высокую цену? В итоге, это не более чем исследовательский проект, по фану.
Сейчас бы для каждой программы создавать свою виртуалку. И, тем более, скачивать какой-то qubes, а не настроить самому в любом дистрибутиве.
Давно, уже, лет 15 как все сделано - называется SELINUX.
Кроме изоляции позволяет написать пароль рута на заборе, дать рутовские ключи каждому 1-мы хакеру и вообще не волноватся по этому поводу.
Для совсем уж шапочек из фольги grsec+rsbac вообще творит чудеса.
Но как и везде, если сделать что то, чем может пользоватся и дурак, то только дурак и будет им пользоватся.
Факт, что firejail SUID root - это уже красный флаг.И уязвимостей подобных в приложении уже был вагон.
// b.
> Факт, что firejail SUID root - это уже красный флаг.А есть какие-то средства изоляции приложений в этих линуксах (а даже и юниксах), которые не требует изначально повышенных привилегий?
Конечно, user namespaces. Если ты замапил рута в неймспейсе, твои проблемы. В таком случае в неймспейсе появляются права, которых не было вне него.
> Факт, что firejail SUID root - это уже красный флаг.Тут как бы нюансик в том что иначе обычный бесправный юзер вообще ничего не может в отдельный неймспейс втолкать - и не может изолировать приложения, так что вот ему а не изоляция в контейнер. Потому что бесконтрольное шарахание бесправного юзера по неймспейсам - вулн сам по себе.
На самом деле трабл в том что изначально не было продумано что систему будут резать на виртуальные вложенные системы, поэтому абстракции сделали из спичек и желудей, подрихтовав по месту. Просто потому что писать с ноля что-то размером с линукскернел всем было дико впадлу. Отсюда вытекает некая компромиссность реализации и разные веселые баги на всех уровнях.
Поэтому стройного элегантного апи для этого в существующих системах с более-менее длинной историей нет. Есть костыли и подпорки по месту. Это провоцирует кодеров на факапы, а иногда факапятся и сами ядерщики. Т.к. понимание всех краевых случаев и как оно взаимодействует с другими абстракциями - весьма сложное получается.
> Для эксплуатации уязвимости атакующий может симулировать фиктивное не изолированное окружение firejail, используя пространство точек монтирования (mount namespace), после чего подключиться к нему при помощи опции "--join".Всё гениальное - просто. Это как если бы Энди Дюфрейн нарядился в пиджак начальника тюрьмы и спокойно вышел через главные ворота, под равнодушными взглядами охранников.
> Если в настройках не активирован режим запрета получения дополнительных привилегий в новых процессах (prctl NO_NEW_PRIVS)Чтобы получить рут на Линуксе нужно сперва получить рут на Линуксе. Ок.
опять тюрьму сожгли и сбежали, изверги