Microsoft открыл Litebox — библиотечную ОС для изоляции приложений
Компания Microsoft сформировала первый выпуск проекта Litebox. Это открытая система песочницы, которую авторы ведут как операционную систему в форме библиотеки, Library OS. Речь не о ещё одном дистрибутиве с собственным установщиком, а о слое, который программа может нести внутри себя и тем самым ограничивать собственный доступ к окружению.
При таком устройстве сервисы операционной системы встраиваются прямо в приложение. Обычный путь — обратиться к внешнему ядру через системные вызовы — здесь как раз отводится в сторону: нужные сервисы уже находятся в составе программы, а не запрашиваются снаружи в момент работы. Изоляция начинается с состава приложения, а не с отдельной машины или чужого процесса.

Litebox рассчитан на роль дополнительного слоя и в программах, и в ядрах. Слой блокирует доступ к избыточной функциональности ядра, если конкретной задаче она не требуется. Смысл первого выпуска не в том, чтобы разом заменить хостовую систему, а в том, чтобы сузить набор возможностей, с которым вообще имеет дело код.
Та же граница проведена и по API. Изоляция должна отсекать не только лишние функции ядра, но и интерфейсы, без которых приложение обходится. Для разработчика это более жёсткий контракт: программа получает не всё, что умеет среда исполнения, а то, что в неё встроили и явно оставили доступным через библиотечную ОС.
Фокус проекта — безопасность, и он задан самой формой Library OS. Чем меньше поводов ходить во внешнее ядро системными вызовами, тем меньше решений зависит от того, какие интерфейсы открыты вокруг. Песочница в этом описании — не отдельный режим «на всякий случай», а причина, по которой сервисы переносят внутрь приложения уже в первом выпуске.
Код Litebox написан на Rust и открыт под лицензией MIT. Язык и лицензия входят в сообщение о первом выпуске наравне с архитектурой: реализацию можно читать, а условия публикации заданы MIT. Для слоя, который предполагается встраивать в чужие программы и ядра, открытость — не украшение, а способ вообще попасть в чужую сборку.
В прикладных программах Litebox выглядит как встроенный контур изоляции. Приложение само несёт сервисы, которые иначе запрашивало бы у ядра. Сопровождение из-за этого смещается: поведение песочницы становится частью поставки программы, а не только свойством машины, на которой эту программу потом запустили.
В ядрах проект занимает ту же позицию дополнительного слоя. Он нужен не для того, чтобы расширить набор системных возможностей, а для обратного хода — не отдавать коду доступ ко всей функциональности ядра и к лишним API. Первый выпуск интересен именно этой границей: модель изоляции названа раньше, чем проект успел обрасти отдельными историями внедрения.
Из библиотечной формы и открытой лицензии следует практический вывод для тех, кому тесно в схеме «приложение снаружи, ядро снаружи». Litebox даёт заготовку, где сервисы операционной системы уже задуманы как часть программы, а лишние вызовы можно не делать. Это не замена административной политике доступа, но отдельное место, где изоляцию задаёт сам состав кода.
Имя Litebox намекает на облегчённый ящик, однако содержание первого выпуска точнее передаёт термин Library OS: операционная система, собранная библиотекой, с кодом на Rust и лицензией MIT, пригодная и для программ, и для ядер. Публикация Microsoft — про инструмент изоляции, а не про уже случившуюся атаку или закрытую уязвимость.