Написать нам
Категория: Разработка
03.09.2021

Плюсы и Минусы Решений Subgraph для Разработки Приложений/Веб-сайтов

Опишем операционную систему и другие продукты Subgraph. Расскажем о преимуществах и недостатках запуска собственных решений на базе 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 — это «устойчивая к взлому вычислительная платформа», над созданием которой трудится команда разработчиков с более чем 50-летним опытом в области информационной безопасности и конфиденциальности. Разработку Subgraph OS финансирует государственный фонд США Open Technology Fund, который также инвестировал в Tor, Tails и Open Whisper Systems. Кроме того, Subgraph поддержал Эдвард Сноуден, который выделил ее среди других проектов, ориентированных на безопасность, и заявил, что будет сам ее использовать.



Разработчики Subgraph позиционируют свой проект как первое решение для постоянного использования, которое предоставляет инструменты обеспечения безопасности и конфиденциальности, сохраняя при этом высокий уровень удобства для пользователя. За удобство отвечает свободная среда рабочего стола GNOME, за безопасность — дистрибутив Linux на Debian, который обеспечивает несколько функций безопасности, анонимного просмотра веб-страниц и усиления защиты.



Ядро Subgraph построено с использованием grsecurity / PaX (общесистемный патч для защиты от эксплойтов и повышения привилегий) и RAP (разработанный для предотвращения атак с повторным использованием кода на ядро ​​для защиты от современных методов эксплуатации). Его ключевая особенность — запуск программ в песочницах Oz, которые сильно ограничивают права этих приложений.



Другие функции безопасности Subgraph включают:



Как работают песочницы Subgraph



Как мы выше писали, главная особенность операционной системы Subgraph — возможность запуска приложений в специальных песочницах-контейнерах, которые блокируют то, что они могут делать. Это означает, что если запущенное на Subgraph приложение или сайт взломают, то злоумышленник (его вредоносное ПО), застрянет в песочнице с очень ограниченным доступом к системе, файлам и железу.



Для этого Subgraph задействует подсистему Oz, которая похожа на Firejail. Она состоит из демона (специальный сервис), получающего запросы на создание / запуск песочниц, X-сервера Xpra и набора специальных утилит. Для изоляции запущенных программ Oz применяет пространства имен, дополнительно ограничивая доступные софту системные вызовы с помощью механизма безопасности ядра seccomp-bpf.



Общение программы, запущенной в песочнице, с графической подсистемой осуществляется посредством виртуального X-сервера Xpra. Он запускается внутри каждой песочницы: X-сервер Subgraph подключается к Xpra и выводит изображение запущенной программы на экран. Это важно, поскольку обычно запуск графических приложений в песочницах-контейнерах происходит путем прокидывания сокета X-сервера /tmp/.X11-unix/X0 в саму песочницу, что открывает хакерам и вирусам не только возможность выводить собственное изображение на экран пользователя и обрабатывать события устройств ввода (клавиатура, мышь), но и позволяет получать доступ к окну любого другого запущенного приложения и перехватывать любые события устройств ввода. В Subgraph эта угроза устранена.



В целом запуск приложения в среде Subgraph выглядит примерно так:



  1. Пользователь операционной системы запускает приложение с помощью иконки на рабочем столе или командной строки (на самом деле он запускает не настоящий исполняемый файл, который находится в каталоге /usr/bin-oz/, а всего лишь символическую ссылку этого приложения на /bin/oz).


  2. Управление получает Oz. Подсистема читает имя программы в первом аргументе и через сокет отдает сервису oz-daemon команду запустить ее.


  3. Демон читает профиль приложения, где четко прописано, что ему запрещено и разрешено, какие файлы домашнего каталога приложению доступны и т.п.


  4. Демон создает каталог /srv/oz/rootfs/, подключает к нему каталоги основной системы /bin, /lib, /lib64, /usr и /et, создает другие необходимые каталоги (/var, /tmp, /mnt и прочие), создает минимальный набор нужных для работы приложения файлов-устройств в /dev, подключает другие приложения, файлы и каталоги, а затем демон выполняет chroot в этот каталог и создает новые пространства имен, запирающие запущенное приложение в песочницу.


  5. Демон выделяет для созданной песочницы новый виртуальный сетевой интерфейс и сразу подключает его к виртуальному свитчу, который подсоединен к внешнему сетевому интерфейсу машины.


  6. Демон запускает oz-init, который в свою очередь запускает Xpra и использует seccomp-bpf для настройки запретов и разрешений для системных вызовов.


  7. В конце Oz-init запускает приложение из каталога /usr/bin-oz/.




Вот как это процесс выглядит схематически:



Схема процесса запуска приложения в Subgraph. Источник



Если запущенное в песочнице приложение скомпрометировано (то есть система «заметила», что приложение обращается к файлам, процессам и устройствам вне его прав доступа), оно не сможет выбраться из своей песочницы и навредит основной системе. Информация также будет в безопасности, поскольку хакер сможет получить доступ разве что к конфигам приложения и кешей. К примеру, если вы используете просмотрщик PDF Evince для просмотра файла «Документ1», то он получит доступ только к тому файлу-документу, для просмотра которого он был запущен.

Другие функции безопасности 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 включает в себя ряд других мер безопасности:



Полное шифрование диска (FDE). Еще Subgraph по умолчанию предлагает полное шифрование диска, которое позволяет использовать теневое шифрование для защиты важных ПЗУ (постоянное запоминающее устройство). Это обеспечивает защиту данных на дисках и флешках, даже если они будут украдены, потеряны или забыты в сервисном центре. Кроме того, Subgraph OS полностью форматирует диск перед своей установкой, чтобы защититься от атак холодной загрузки. Это хакерские атаки, в которых используются данные, находящиеся в ячейках DRAM и SRAM, в течение нескольких секунд вскоре после выключения питания.



Безопасные почтовые службы. Еще по умолчанию операционная система использует почтовое приложение Subgraph Mail, которое интегрировано с системой шифрования электронной почты OpenPGP. Другая особенность Subgraph Mail в том, что аутентификация и проверка целостности реализованы таким образом, что даже если некоторые части приложения будут скомпрометированы, хакер по-прежнему не будет иметь доступа к остальным электронным письмам или ключам шифрования. Кроме того, в Subgraph Mail намеренно исключена поддержка веб-браузера из почтового клиента, чтобы исключить веб-эксплойты из электронных писем.



Доверенная загрузка. Subgraph OS также предоставляет альтернативные технологии доверенной загрузки. Обычно для этого используются зашифрованный загрузочный раздел, подписанные цифровым ключом ядро и RAM-диск, контрольные суммы файловых систем. Тогда как в Subgraph используется технология, где пакеты должны быть сопоставлены с двоичными файлами, присутствующими в списке распределенных пакетов ОС. Таким образом платформа защищает себя от использования поддельных или вредоносных загруженных пакетов.

Преимущества разработки софта на Subgraph



Операционную систему Subgraph в основном используют при создании систем, где нужна максимальная безопасность и конфиденциальность, например, систем для серверов, розничных продаж, логистики, финансовых услуг и т.п. Subgraph OS здесь является лишь базой, для которой создаются решения для конкретных задач — от простого безопасного мессенджера до CRM-, ERM- или POS-систем.
Написать нам
Имя*:
Email*:
Сообщение: