В рамках проекта Sandstorm развивается платформа для персональных web-серверов
Проект Sandstorm, развивает новую открытую платформу для обеспечения работы персональных серверов, позволяющую обычным пользователям без лишних усложнений запускать web-приложения на собственном оборудовании или во внешнем облаке. Код написан на языке С++ и доступен под лицензией Apache 2.0.
Для создания инфраструктуры достаточно запустить один скрипт и зайти в web-интерфейс, после чего можно в один клик запустить приложения из специального каталога, в котором представлены такие программы, как WordPress, MediaWiki, MediaGoblin, GitWeb, Apache Wave, EtherCalc, GitLab, Etherpad и Wekan. Т.е. неспециалист может легко без наличия каких-то особых технических навыков создавать решения для совместной работы, редактирования документов в стиле Google Docs, запускать чаты, создавать самодостаточные системы ведения блогов и т.п. Пользователь также может создавать резервные копии состояния приложения и переносить их между системами. Все данные на диске хранятся в зашифрованном виде.
В Sandstorm используется необычный подход к обеспечению изоляции: приложение запускается в изолированном контейнере, при этом отдельный изолированный контейнер привязывается к данным и создаётся для каждого обрабатываемого в приложении объекта — например, для каждого редактируемого в Etherpad документа или создаваемого в Wekan канала в чате. Обращение к внешним ресурсам и другим изолированным окружением требует явного подтверждения операции от пользователя, что позволяет неплохо защититься от эксплуатации уязвимостей в различных обработчиках контента.
Например, при открытии подготовленного злоумышленником документа с эксплоитом, атака не выйдет за пределы окружения текущего документа и не приведёт к проблемам в окружениях для редактирования других документов. Каждый сеанс работы с приложением осуществляется с использованием случайно сгенерированного имени хоста (например, https://96cab9109791f52540022c1f857ecee7.sandstorm.example.com/) — обратиться к приложению можно только зная данное имя или имея доступ к учётной записи пользователя-владельца в Sandstorm.
Кроме того, Sandstorm позволяет контролировать доступ к каждому объекту/документу и гибко управлять предоставлением полномочий и средствами для совместной работы. В том числе, можно открыть возможность обращения к запущенному экземпляру приложения для другого пользователя и контролировать кто и когда обращался к экземпляру приложения или документу. Для доступа к приложениям используется единый набор параметров идентификации (Single Sign-on), задаваемый в интерфейсе Sandstorm и не требующий создания отдельных аккаунтов в приложениях. В свою очередь, учётная запись в Sandstorm может быть привязана к внешним службам идентификации, например, к аккаунтам в Google, Twitter и GitHub.
Подобный подход к изоляции и аутентификации может потребовать адаптации приложений для приведения их в вид, пригодный для использования в Sandstorm. Программы распространяются через централизованный каталог, в котором размещены в формате пакетов SPK. В настоящее время в каталоге доступно 58 приложений. Приложения обновляются автоматически как только появляются новые версии пакета, что позволяет всегда поддерживать окружение в актуальном состоянии и оперативно блокировать уязвимости. Все пакеты и обновления доставляются с верификацией по цифровой подписи.
© OpenNet