
// Разработка
// Разработка
Опишем операционную систему и другие продукты Subgraph. Расскажем о преимуществах и недостатках запуска собственных решений на базе Subgraph.
Subgraph — это операционная система, ориентированная на максимальную безопасность и конфиденциальность. Она использует песочницы-контейнеры и другие технологии, чтобы ограничить права доступа программам и защитить данные пользователей от хакеров и вредоносного ПО. Дальше мы расскажем, как работает система безопасности Subgraph, насколько она надежна и какие есть плюсы и минусы в разработке приложений для этой операционной системы.
More information: | |
OS Type | Linux |
Based on | Debian |
Origin | USA |
Architecture | x86_64 |
Desktop | GNOME |
Category | Desktop, Live Medium, Privacy, Security |
Status | Active |
Разработчики Subgraph позиционируют свой проект как первое решение для постоянного использования, которое предоставляет инструменты обеспечения безопасности и конфиденциальности, сохраняя при этом высокий уровень удобства для пользователя. За удобство отвечает свободная среда рабочего стола GNOME, за безопасность — дистрибутив Linux на Debian, который обеспечивает несколько функций безопасности, анонимного просмотра веб-страниц и усиления защиты.
Ядро Subgraph построено с использованием grsecurity / PaX (общесистемный патч для защиты от эксплойтов и повышения привилегий) и RAP (разработанный для предотвращения атак с повторным использованием кода на ядро для защиты от современных методов эксплуатации). Его ключевая особенность — запуск программ в песочницах Oz, которые сильно ограничивают права этих приложений.
Другие функции безопасности Subgraph включают:
Для этого Subgraph задействует подсистему Oz, которая похожа на Firejail. Она состоит из демона (специальный сервис), получающего запросы на создание / запуск песочниц, X-сервера Xpra и набора специальных утилит. Для изоляции запущенных программ Oz применяет пространства имен, дополнительно ограничивая доступные софту системные вызовы с помощью механизма безопасности ядра seccomp-bpf.
Общение программы, запущенной в песочнице, с графической подсистемой осуществляется посредством виртуального X-сервера Xpra. Он запускается внутри каждой песочницы: X-сервер Subgraph подключается к Xpra и выводит изображение запущенной программы на экран. Это важно, поскольку обычно запуск графических приложений в песочницах-контейнерах происходит путем прокидывания сокета X-сервера /tmp/.X11-unix/X0 в саму песочницу, что открывает хакерам и вирусам не только возможность выводить собственное изображение на экран пользователя и обрабатывать события устройств ввода (клавиатура, мышь), но и позволяет получать доступ к окну любого другого запущенного приложения и перехватывать любые события устройств ввода. В Subgraph эта угроза устранена.
В целом запуск приложения в среде Subgraph выглядит примерно так:
Схема процесса запуска приложения в Subgraph. Источник
Дизайн архитектуры безопасности операционной системы Subgraph. Источник
Проксирование через Tor. Вторая важная особенность системы безопасности Subgraph — проксирование всего исходящего трафика через Tor (The Onion Router). По умолчанию Tor не поддерживают подобную конфигурацию и представляет собой лишь SOCKS-прокси, т.е. требует, чтобы программное обеспечение поддерживало SOCKS, а юзер самостоятельно настроил проксирование программы через Tor.Но команда Subgraph сумела обойти это ограничение посредством протокола Metaproxy, который перенаправляет весь переданный на его порт трафик на адрес нужного HTTP- или SOCKS-прокси (в данном случае это Tor), и простого алгоритма для брандмауэра, перенаправляющего весь исходящий трафик на порт Metaproxy. Исключение делается только для сайтов аутентификации публичных сетей Wi-Fi.
Окно с настройками брандмауэра Subgraph
В качестве основного интернет-браузера платформа использует обычный Tor Browser. Это единственное приложение Subgraph, которое использует прокси Tor напрямую, все остальные передают трафик Metaproxy. Передачи ICMP (Internet Control Message Protocol) запрещены в любую сторону, так что Subgraph не только не отвечает на пинги, но и не позволяет пропинговать другой хост.Безопасность системы и ядра. Операционная система Subgraph также усилена PaX и Grsecurity. PaX — это набор обновлений ОС, разработанных для устранения «дыр» безопасности в ядре Linux, связанных с переполнением буфера и ошибками повреждения памяти в приложениях и ядре. Grsecurity — это также набор патчей, но он направлен на устранение «дыр», связанных с дефектами повреждения памяти. Помимо этого Grsecurity включает в себя ряд других мер безопасности:
Безопасные почтовые службы. Еще по умолчанию операционная система использует почтовое приложение Subgraph Mail, которое интегрировано с системой шифрования электронной почты OpenPGP. Другая особенность Subgraph Mail в том, что аутентификация и проверка целостности реализованы таким образом, что даже если некоторые части приложения будут скомпрометированы, хакер по-прежнему не будет иметь доступа к остальным электронным письмам или ключам шифрования. Кроме того, в Subgraph Mail намеренно исключена поддержка веб-браузера из почтового клиента, чтобы исключить веб-эксплойты из электронных писем.
Доверенная загрузка. Subgraph OS также предоставляет альтернативные технологии доверенной загрузки. Обычно для этого используются зашифрованный загрузочный раздел, подписанные цифровым ключом ядро и RAM-диск, контрольные суммы файловых систем. Тогда как в Subgraph используется технология, где пакеты должны быть сопоставлены с двоичными файлами, присутствующими в списке распределенных пакетов ОС. Таким образом платформа защищает себя от использования поддельных или вредоносных загруженных пакетов.
Операционную систему Subgraph в основном используют при создании систем, где нужна максимальная безопасность и конфиденциальность, например, систем для серверов, розничных продаж, логистики, финансовых услуг и т.п. Subgraph OS здесь является лишь базой, для которой создаются решения для конкретных задач — от простого безопасного мессенджера до CRM-, ERM- или POS-систем.
Прочими преимуществами Subgraph, как платформы для запуска приложений, являются следующие вещи:
Просто нужно учитывать ограничения продуктов Subgraph: