Flatpak - кошмар безопасности

Flatpak - кошмар безопасности

украдено отсюда и переведено на русский.

UPD: Flatkill 2020 - посмотрим, что разработчики Flatpak сделали за последние 2 года чтобы все пофиксить (спойлер: нихуя).

Flatpak от Red Hat в последнее время привлекает много внимания - это самопровозглашённый новый способ распространения десктопных приложений на Linux. Это безопасно, говорили они...

sandbox это наглое вранье

абсолютно все популярные приложения в флатпаке идут с filesystem=host, filesystem=home или device=all разрешениями, тоесть, с правами читать и записывать домашний каталог, а также другие флатпак приложения (и не только), это значит что для "побега из песочницы" надо выполнить echo download_and_execute_evil >> ~/.bashrc. Вот и всё...

Этим пользуются Gimp, VSCode, PyCharm, Octave, Inkscape, Steam, Audacity, VLC, Yandex и другие... Что ещё хуже, пользователей нагло обманывают, заставляя думать, что приложения работают в изолированной среде. Для всех этих приложений flatpak показывает обнадёживающий значок "песочницы" при установке (ситуация не намного лучше даже при установке через командную строку - нужно знать внутренности flatpak, чтобы понять предупреждения).

вы НЕ получаете обновления безопасности

официальные приложения и среды выполнения уязвимы к известным легко эксплуатируемым уязвимостям выполнения кода, некоторые из которых известны (и исправлены в дистрибутивах, но не в flatpak) уже полгода.
да, вполне возможно, что ваш linux-компьютер был взломан, если вы используете flatpak - речь идёт буквально о публичных эксплойтах многомесячной давности. Открывали ли вы когда-нибудь изображение в flatpak Gimp? Критическая уязвимость "shell in the ghost" была исправлена в flatpak примерно через месяц после linux-дистрибутивов.
Давайте просмотрим DSA и найдём что-нибудь тривиальное для эксплуатации.

CVE-2018-11235 зарепортили и пофиксили более 4 месяца назад. Flatpak VSCode, Android Studio и Sublime Text все еще используют непропатченный git 2.9.3. имейте ввиду что flatpakовский pycharm вообще юзает git 2.19.0, где эта проблема исправлена.. но программа все еще уязвима к CVE-2018-17456.

Мы можем продемонстрировать это с помощью Sublime с плагином GitSavvy и рекурсивным клонированием (плагин на https://github.com/divmain/GitSavvy/tree/dev, команда копирования git: clone recursively, параметр git://flatkill.org/cve-2018-11235).

pwned

Локальный root-эксплойт? Мелочь!

Вплоть до версии 0.8.7 для получения root на хосте достаточно было установить пакет flatpak, содержащий suid-бинарник (flatpaks ставились в /var/lib/flatpak на вашей хостовой ос). опять же, что может быть проще? этой уязвимости был присвоен высокий уровень серьезности CVE-2017-9780 (CVSS оценка 7.2). разрабы флатпака сказали что это незначительный баг в безопасности.

будущее линукс-приложений?

надеемся, что нет! но к сожалению, очевидно что разработчики red-hut, работающие над flatpak, не заботятся о безопасности должным образом, однако самопровозглашённая цель - заменить распространение десктопных приложений, что является краеугольным камнем безопасности linux.

и дело не только в проблемах безопасности.. запускаете в кде флатпаки? забудьте об интеграции! (даже размер шрифта нормально не работает). Нужно вводить китайские/японские/корейские символы? Забудьте и об этом. fcitx сломан начиная с флатпак 1.0 и так и не пофикшен.

Способ упаковки и распространения десктопных приложений на Linux определённо нуждается в переосмыслении, и к сожалению, flatpak создаёт больше проблем, чем решает