Четвертый тестовый выпуск ОС Subgraph
Спустя 10 месяцев с момента прошлого обновления сформирован четвертый альфа-выпуск проекта Subgraph OS, в рамках которого развивается платформа, обеспечивающая запуск десктоп-приложений в отдельных изолированных контейнерах. По сравнению с системой Qubes, использующей средства виртуализации для изоляции приложений, применение контейнеров позволило значительно снизить потребление ресурсов. Для работы Subgraph требуется 64-разрядный CPU, 2 Гб ОЗУ (рекомендуется 4 Гб) и 20 Гб дискового пространства. Для загрузки доступен iso-образ размером 1.3 Гб.
Проект Subgraph изначально нацелен на предоставление максимальной безопасности и стойкости к атакам, для чего кроме контейнеров применяются наработки проекта Grsecurity/PaX и жесткая верификация устанавливаемых компонентов. Взаимодействие с внешним миром осуществляется только через сеть Tor. Базовое графическое окружение основано на GNOME 3. В качестве браузера применяется Tor Browser, в качестве почтового клиента Icedove/Thunderbird, а для мгновенного обмена сообщениями CoyIM c поддержкой "end-to-end"-шифрования при помощи OTR (Off-the-Record).
В качестве основы используется пакетная база Debian GNU/Linux с ядром Linux, собранным с патчами Grsecurity/PaX. Содержимое файловых систем хранится в зашифрованном виде (dm-crypt/LUKS). Специфичные для дистрибутива сервисы и инструменты написаны на языке Go, который предоставляет встроенные средства защиты от выхода за допустимые области выделенных блоков памяти. При формировании дистрибутива применяется контроль целостности бинарных пакетов и специальный верифицированный процесс сборки, обеспечивающий полную повторяемость сборок (пересборка пользователем приведет к формированию полностью совпадающих исполняемых файлов).
Все сетевые запросы приложений по умолчанию перехватываютя компонентом Metaproxy и принудительно отправляются только через сеть Tor, за исключением случаев подключения к порталу аутентификации беспроводной сети (captive portal). Доступ к сети предоставляется только приложениям, занесенным в белый список. При этом трафик разных приложений отправляется через разные цепочки узлов Tor (для каждого приложения создается отдельный сеанс подключения к Tor). При попытке инициирования исходящего сетевого соединения, не предусмотренного разрешенными правилами, пользователю выводится диалог с предложением подтвердить или отклонить операцию.
Каждое приложение запускается в отдельных изолированных контейнерах Oz, в которых применяются пространства имен, Seccomp filter, Capabilities и прослойка Xpra, изолирующая приложение от X-сервера (подобие screen для X11). Для приложений ограничивается доступ к пользовательским файлам, устройствам, другим процессам, системным вызовам, полностью контролируются обращения по сети и возможен вывод только в привязанное к приложению окно на рабочем столе.
Основные изменения в четвертом альфа-выпуске:
- В системе контейнерной изоляции Oz обеспечена возможность создания произвольного числа именованных сетевых мостов и привязки их к различным изолированным окружениям. По умолчанию данная возможность пока включена только в окружении с браузером Chromium (доступен из репозитория и не входит в базовый состав ISO-образа), что позволяет использовать его для прямой навигации по ресурсам сети в режиме Clearnet (не через Tor);
- Переработано изолированное окружение для почтового клиента Thunderbird. Закрытые ключи теперь недоступны из контейнера, а операции расшифровки и работы с цифровыми подписями выполняются через обращение к gpg-agent, используя привязанный к GPG сокет;
- Экспериментальная возможность запуска одноразовых контейнеров, содержимое которых не сохраняется между перезапусками. Для включения поддержки в /etc/oz/oz.conf следует указать "enable_ephemerals": true, после чего при запуске будет выводиться диалог с предложением запустить приложение в одноразовом или обычном контейнере (после завершения тестирования навязчивый диалог будет заменен);
- Переработана организация доступа к совместно используемым директориям, через которые можно получить доступ к файлам вне контейнера. Настройки XDG_DIRS теперь автоматически привязываются к совместным директориям вне контейнера, например, для Chromium автоматически создается проброс в общую директорию для сохранения загруженных файлов, не требуя от пользователя каких-либо действий.
Новшества, которые которые находятся в разработке и пока не готовы для тестирования:
- Значительная модернизация динамического межсетевого экрана: поддержка регулирования доступа приложений, использующих SOCKS5 (фильтрация сетевых запросов через Tor); интеграция TLSGuard; поддержка UDP и ICMP; учет особенностей контейнеров и возможность задания политик доступа;
- Возможность запуска консольных приложений в контейнерах Oz с ограничением на основе белого списка на основе seccomp-bpf, в том числе добавлен контейнер с gnome-terminal;
- Применение системных фильтров трафика к сетевым соединениям через Tor - вместо прямого обращения к SOCKS5 порту Tor соединения от всех непривилегированных приложений будут транслироваться через динамический межсетевой экран Subgraph Firewall, на котором будут пропускаться только шифрованные TLS-соединения;
- Возможность динамического проброса USB-устройств в контейнеры. Например, для Chromium предоставлена возможность обращаться к брелокам Yubikeys, а Electrum к аппаратным кошелькам (Ledger Nano S);
- Поддержка работы с шиной i2p из контейнеров (например, HexChat и Chromium);
- Подготовлен "Chronion", профиль контейнера для Chromium, который работает только через Tor, защищает от утечки сведений об IP через WebRTC и не сохраняет данные между перезапусками. Chronion обеспечиваетвысокую производительность и стойкость к эксплуатации уязвимостей, но пока слабо противостоит техникам идентификации системы (fingerprinting) по параметрам браузера;
- Поддержка WireGuard и других VPN на базе IPSec в контейнерах Oz;
- Расширенные возможности настройки Tor, такие как управление шлюзами и установкой новых сеансов;
- Режим работы без Tor: возможность выбора использования Tor для всей системы или только для отдельных контейнеров.