Спустя 10 месяцев с момента прошлого обновления сформирован (https://subgraph.com//blog/subgraph-sep2017-iso-availability/) четвёртый альфа-выпуск проекта Subgraph OS (https://subgraph.com/sgos/index.en.html), в рамках которого развивается платформа, обеспечивающая запуск десктоп-приложений в отдельных изолированных контейнерах. По сравнению с системой Qubes, использующей средства виртуализации для изоляции приложений, применение контейнеров позволило значительно снизить потребление ресурсов. Для работы Subgraph требуется 64-разрядный CPU, 2 Гб ОЗУ (рекомендуется 4 Гб) и 20 Гб дискового пространства. Для загрузки доступен iso-образ (https://subgraph.com/sgos/download/index.en.html) размером 1.3 Гб.
Проект Subgraph изначально нацелен на предоставление максимальной безопасности и стойкости к атакам, для чего кроме контейнеров применяются наработки проекта Grsecurity/PaX и жесткая верификация устанавливаемых компонентов. Взаимодействие с внешним миром осуществляется только через сеть Tor. Базовое графическое окружение основано на GNOME 3. В качестве браузера применяется Tor Browser, в качестве почтового клиента Icedove/Thunderbird, а для мгновенного обмена сообщениями CoyIM (https://coy.im/) 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 (https://github.com/subgraph/oz), в которых применяются (https://github.com/subgraph/oz/wiki/Oz-Technical-Details) пространства имён, Seccomp filter, Capabilities и прослойка Xpra (https://xpra.org/), изолирующая приложение от X-сервера (подобие screen для X11). Для приложений ограничивается доступ к пользовательским файлам, устройствам, другим процессам, системным вызовам, полностью контролируются обращения по сети и возможен вывод только в привязанное к приложению окно на рабочем столе.
Основные изменения в четвёртом альфа-выпуске:
- В системе контейнерной изоляции Oz обеспечена возможность создания произвольного числа именованных сетевых мостов и привязки их к различным изолированным окружениям. По умолчанию данная возможность пока включена только в окружении с браузером Chromium (доступен из репозитория и не входит в базовый состав ISO-образа), что позволяет использовать его для прямой навигации по ресурсам сети в режиме Clearnet (https://en.wikipedia.org/wiki/Clearnet_(networking)) (не через 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) по параметрам браузера (http://browserleaks.com);- Поддержка WireGuard и других VPN на базе IPSec в контейнерах Oz;
- Расширенные возможности настройки Tor, такие как управление шлюзами и установкой новых сеансов;
- Режим работы без Tor: возможность выбора использования Tor для всей системы или только для отдельных контейнеров.
URL: https://subgraph.com//blog/subgraph-sep2017-iso-availability/
Новость: http://www.opennet.me/opennews/art.shtml?num=47266
Нужно больше дистрибутивов.
А что, предлагаешь жить с одними и теми же скучными обоями?
Не, он предлагает поставить их все на одном компе
Зачем такие сложности. Достаточно одноразовой (stateless) Live-системы с изоляцией сети, типа как в Whonix. Нужно не защищать систему от взлома (как не изолируй а через дыру в ядре получат root и через контейнер), а делать так, чтобы этот взлом никак не повлиял на пользователя (работа организуется как в потенциально уже уязвимой системе).
Выпусти свой дистр, а мы потом посмеемся в комментах.
> как не изолируй а через дыру в ядре получат root и через контейнерДля этого нужно минимум две дыры в ядре: одна чтобы поднять привилегии до рута, вторая чтобы выйти из контейнера.
в контейнерах без аппартной виртуализации - сразу до рута
Можно подробнее мысль развернуть? Интересная идея.
CoyIM судя по скриншотам переделанный Pidgin.
Разве GRsec не закрыли исходники?
Очередная поделка на debian, но в принципе интересная.
CoyIM написан с нуля.
https://coy.im/how-to-use/
да чтоб тебе пусто было, полез по ссылкам дальше и через час очнулся с кучей вкладок с кучей проектов
https://github.com/saenzramiro/rambox
https://github.com/RocketChat/Rocket.Chat
https://dfabric.github.io/DPlatform-ShellCore/
https://github.com/mattermost/mattermost-server
и даже тюториал как на метеоре самому сделать слакоподобную хрень https://scotch.io/tutorials/building-a-slack-clone-in-meteor...
Оу, оно на Go написано, ну значит действительно что-то свое - извиняюсь.
"CoyIM is a new client for the XMPP protocol. It is built upon https://github.com/agl/xmpp-client. It adds a graphical user interface and tries to be safe and secure by default."Не совсем свое, они интерфейс к консольной программе написали, правда, та тоже на Go.
и где ты нашел эти скриншоты, похожие на pidgin?
> Разве GRsec не закрыли исходники?Фарш невозможно провернуть назад.
Не буду читать, но осуждаю^W готов поспорить, что в тексте есть слово "Go"
"Специфичные для дистрибутива сервисы и инструменты написаны на языке Go"
CoyIM написан на Go.
> Доступ к сети предоставляется только приложениям, занесённым в белый список.Как? Хочу такое в обычном дистре, без Тора и без GNOME3.
Нужна:
1) концепция бесшовного перевода программ под Debian в контейнер и обратно;2) концепция (если необходимо) а в случае ненадобности доказательство беспроблемности сосуществования обычного окружения и окружения в контейнере;
Два варианта:
1. Запускать все приложения из индивидуальных docker контейнеров. По дефолту они все лишены сети, для нужных сеть организуется явно.
2. Создать два контейнера, используя lxc, lxd или openvz. Одному контейнеру доступ к внешней сети дать, второму - нет. Приложения ставить в соответствующие контейнеры.
>Как? Хочу такое в обычном дистре, без Тора и без GNOME3.AppArmor в самом обычном есть.
В менее обычных SELinux. Последний не особенно адекватен, как практика показывает и я его отключаю и не стесняюсь этого. Но слышал что существуют корефеи, умеющие его настраивать на этих ваших редхатах.
> В менее обычных SELinux. Последний не особенно адекватен, как практика показывает и я его отключаю и не стесняюсь этого. Но слышал что существуют корефеи, умеющие его настраивать на этих ваших редхатах.Настраиваю SELinux в Debian, без Редхата и смс. Корифеем себя не считаю, однако гляда на принципиальных отключальщиком иногда посмеиваюсь в ус. Из моей практики, неадекватность SELinux обычно объясняется нежеланием вникать в его устройство и читать логи.
Действительно странные люди -- в нормальном ПО разбираются и смотрят логи, а в неадекватном не желают и отключают полностью. Это смешно, надо наоборот делать.
>Взаимодействие с внешним миром осуществляется только через сеть Tor.Это точно про безопасность?
Это про паранойю.
Это издевательство над параноиками. Всем известно, что Тор в открытую финансируется АНБ.
По-моему, очень интересный дистр. Всяко нужнее Кали
wireguard не имеет никакого отношения к ipsec
Главный вопрос - зачем интернет калькулятору?
Через тор все эти ваши p2p будут работать?
Пах грсекьюрити которая судится с GPL(http://www.opennet.me/opennews/art.shtml?num=46828).
Свернется разработка дистрибутива как hardend сборки.
Подскажите нубу в контейнерах, есть ли возможность обмениваться файлами между контейнерами, или они тоже изолированы?
> Подскажите нубу в контейнерах, есть ли возможность обмениваться файлами между контейнерами, или они тоже изолированы?Принципиальных ограничений для этого нет, поэтому зависит от того, как настроишь.
почему так много дистров клепается? неужели сообрать "новую ос" так же просто как запостить на опеннете ? :D
или просто всекому не лень выучили BLFS?
>CoyIM
>Not yet audited. Do not use for anything sensitive
Где они взяли Grsecurity/PaX патчи? Я тоже хочу
У них наверняка есть сорцы для текущего ядра + спеки в репах, и соответственно в папке дебиан (спеки) должны лежать все накладываемые патчи, в т.ч. и то что вам нужно.
https://github.com/minipli/linux-unofficial_grsec
Подготовлен "Chronion", профиль контейнера для Chromium, который работает только через Tor, защищает от утечки сведений об IP через WebRTC и не сохраняет данные между перезапусками. Chronion обеспечивает высокую производительность и стойкость к эксплуатации уязвимостей, но пока слабо противостоит техникам идентификации системы (fingerprinting) по параметрам браузера;
Что, в Chromium по определению меньше уязвимостей? С учётом того, что 146% юзеров работает под хромом (инфа 146% ;-), может это и не плохо, что ребята потеют над хромым, а не над Firefox или тор-бандлом.Ну а что бы уж совсем правдоподобно было, необходимо перестроить IP стек OS host-а так, что бы фингерпринт соответствовал какой нибуть " популярной" оси, и не будем показывать пальцем на семерочку ;-)
Типичный хонипот.