// Разработка

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

Содержание

#1. Что такое Subgraph
#2. Как работают песочницы Subgraph
#3. Другие функции безопасности Subgraph
#4. Преимущества разработки софта на Subgraph
#5. Недостатки разработки софта на Subgraph
#6. Краткие выводы

Появились вопросы?
Олег Колесников
Автор статьи

Опишем операционную систему и другие продукты 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 включают:

  • Большая часть кода написана на безопасном языке Golang.
  • Профили AppArmor, охватывающие системные утилиты и приложения.
  • Аппаратные ключи YubiKey с одноразовыми паролями.
  • Сервис фильтров порта управления Roflcoptor.
  • Безопасный почтовый клиент Subgraph Mail.
  • Прозрачное проксирование через Tor.
  • Анонимный мессенджер OnionShare.
  • Доверенная загрузка.
  • Шифрование диска.
  • Прочее.

Как работают песочницы 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/.
Вот как это процесс выглядит схематически:

Pros and Cons of Subgraph Solutions for App/Website Development Схема процесса запуска приложения в Subgraph. Источник

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

Другие функции безопасности Subgraph

Pros and Cons of Subgraph Solutions for App/Website Development

Дизайн архитектуры безопасности операционной системы Subgraph. Источник

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

Но команда Subgraph сумела обойти это ограничение посредством протокола Metaproxy, который перенаправляет весь переданный на его порт трафик на адрес нужного HTTP- или SOCKS-прокси (в данном случае это Tor), и простого алгоритма для брандмауэра, перенаправляющего весь исходящий трафик на порт Metaproxy. Исключение делается только для сайтов аутентификации публичных сетей Wi-Fi.

Pros and Cons of Subgraph Solutions for App/Website Development

Окно с настройками брандмауэра Subgraph

В качестве основного интернет-браузера платформа использует обычный Tor Browser. Это единственное приложение Subgraph, которое использует прокси Tor напрямую, все остальные передают трафик Metaproxy. Передачи ICMP (Internet Control Message Protocol) запрещены в любую сторону, так что Subgraph не только не отвечает на пинги, но и не позволяет пропинговать другой хост.

Безопасность системы и ядра. Операционная система Subgraph также усилена PaX и Grsecurity. PaX — это набор обновлений ОС, разработанных для устранения «дыр» безопасности в ядре Linux, связанных с переполнением буфера и ошибками повреждения памяти в приложениях и ядре. Grsecurity — это также набор патчей, но он направлен на устранение «дыр», связанных с дефектами повреждения памяти. Помимо этого Grsecurity включает в себя ряд других мер безопасности:

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

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

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

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

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

Прочими преимуществами Subgraph, как платформы для запуска приложений, являются следующие вещи:

  • Возможность запереть свое приложение в песочнице, ограничив его права доступа и возможные соединения так, как это нужно разработчику. Благодаря этому можно существенно повысить безопасность приложения и при этом сократить время и стоимость разработки собственных мер безопасности.
  • Subgraph — это софт на базе открытого исходного кода, т.е. его может использовать любой желающий, не тратя ни копейки. При этом в основе Subgraph ядро Linux, которое считается отраслевым стандартом для создания специализированных решений. На нем работают большинство серверных операционных систем, систем управления суперкомпьютерами, а также его используют такие устройства, как роутеры, телевизоры, консоли и т.п. Все это говорит о большой гибкости, надежности и безопасности Linux и решений на его основе (особенно если сами они направлены на безопасность).
  • Решения на базе Subgraph могут защищать не только приложения, но и интернет-соединения. Это очень важно, если вы хотите обезопасить себя от того, что ваш сотрудник зайдет на сайт с вирусами или откроет фишинговое электронное письмо (причина большинства краж и взломов в интернете).
  • Операционная система Subgraph распространяется на бесплатной основе, и ее можно менять и модифицировать как вам хочется. В отличие от Windows или macOS/iOS, которые стоят денег и защищены авторскими правами.
  • Subgraph легко установить и у нее нет проблем с юзабилити.

Недостатки разработки софта на Subgraph

Главный недостаток запуска решений на базе Subgraph в том, что эта операционная система все еще находится в стадии разработки (альфа-версии). Это означает, что некоторые ее функции либо не запущены, либо работают, но частично, например, сейчас в брандмауэре Subgraph не реализованы улучшения: TLSGuard, поддержка UDP / ICMP и SOCKS5 (фильтрация доступа Tor). Правда, даже в таком виде Subgraph выглядит и ощущается как современная настольная операционная система, и ее вполне можно использовать для запуска своих приложений.

Просто нужно учитывать ограничения продуктов Subgraph:

  • Для создания собственных решений на базе Subgraph нужна компания-разработчик с опытом разработки приложений на базе этой операционной системы (или система на базе Linux), такая как Merehead.
  • Все решения Subgraph рассчитаны на целевую аудиторию, для которой на самом деле важны безопасность и конфиденциальность, а не их видимость. Это очень ограниченная по охвату целевая аудитория, из чего следует, что решения, созданные на базе Subgraph, вряд ли станут очень популярными.
  • Продукты Subgraph не дают 100% гарантии безопасности и конфиденциальности. Ограничения песочниц и проксирование через Tor можно обойти, а саму систему взломать. Кроме того, пока лишь небольшое число «избранных» приложений Subgraph сразу запускаются в песочницах.
  • У всех существующих песочниц есть проблема, которая возникает из-за перемещения компонентов между песочницей и производственной средой. Сбой может произойти, когда зависимые компоненты недоступны или находятся в неправильном состоянии в производственной среде. При этом вы можете даже не узнать об этом сбое, поскольку лишь некоторые песочницы отслеживают и сообщают о такого рода ошибках.
  • Использование подобных решений может вызвать у пользователей ложное чувство безопасности, из-за чего они станут беспечными.
  • Subgraph OS давно не обновлялась.

Краткие выводы

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

Useful links

Distribution Subgraph OS
Home Page https://subgraph.com/sgos/index.en.html
Alternative User Forums http://www.linuxquestions.org/questions/linux-distributions-5/
Documentation https://subgraph.com/sgos-handbook/sgos_handbook.shtml
Screenshots https://subgraph.com/sgos/screenshots/index.en.html http://distrowatch.com/gallery.php?distribution=subgraph
Download Mirrors https://subgraph.com/sgos/download/index.en.html
Bug Tracker https://sourceforge.net/p/bluestarlinux/tickets/
Reviews http://distrowatch.com/table.php?distribution=subgraph
Where To download http://distrowatch.com/osdisc?subgraph

Отзывы наших клиентов

Разработка экосистемы, предназначенной для предоставления разнообразных услуг цифровым активам под одной оболочкой на основе технологии блокчейна

Есть вопросы? Задайте их здесь

Имя *
Email *
Телефон
Ваш бюджет
Сообщение
 

С 2015 года помогаем клиентам реализовывать идеи!

Подпишитесь на свежие статьи