Проект Hyperlight, являющийся частью инкубатора Cloud Native Computing Foundation (CNCF), объявил о расширении своих возможностей для запуска приложений Linux без необходимости модификации или перекомпиляции посредством запуска hyperlight-unikraft. Эта разработка направлена на устранение разрыва между скоростью контейнеров (Containers) и безопасностью виртуальных машин (Virtual Machines).
Что практически меняет Hyperlight?
Большинство облачных систем сегодня полагаются на выполнение ненадежного программного кода, такого как плагины, загружаемые пользователями, или код, генерируемый агентами искусственного интеллекта. Традиционно разработчики выбирали между быстрыми, но менее безопасными контейнерами, или безопасными, но медленными в запуске виртуальными машинами. Hyperlight предлагает компромиссное решение за счет:
- Высокой изоляции: работает как VMM, встроенный в приложение, где код изолируется в micro-VM с использованием расширений виртуализации процессора (CPU virtualization extensions).
- Запуска нативных приложений Linux: благодаря интеграции технологии Unikraft можно запускать одни и те же бинарные файлы Linux (binaries) без каких-либо изменений, с поддержкой множества языков программирования, таких как Python, Node.js, Go, Rust и Java.
- Сверхвысокой скорости за счет снимков: вместо запуска полноценной операционной системы Hyperlight запускает приложение, а затем делает «снимок» (Snapshot) готового к работе состояния. При необходимости этот снимок восстанавливается всего за несколько миллисекунд, что делает его быстрее традиционного запуска.
Почему эта новость важна?
Важность этой разработки заключается в ее способности превратить «побег из контейнера» (Sandbox escape) из катастрофической уязвимости в простой сбой изолированной среды. Когда программный код выполняется внутри hyperlight-unikraft, он видит только выделенную ему память, что предотвращает доступ к секретам хост-системы или конфиденциальным файлам.
Уже начались различные интеграции для использования этой технологии, в том числе:
- Kubernetes: через проект urunc, который позволяет запускать контейнеры как micro-VM без необходимости использования привилегированных контейнеров.
- Агенты искусственного интеллекта: предоставление изолированной среды для каждой сессии выполнения автоматически сгенерированного кода.
- Базы данных: обеспечение выполнения пользовательских функций (UDFs) в полностью изолированной среде внутри базы данных, такой как ClickHouse.
Этот проект является важным шагом для разработчиков, которые ищут дополнительную безопасность без ущерба для производительности, особенно в средах облачных вычислений, работающих с программными входными данными неизвестного происхождения.