Дайджесты новостей
Изометрическая 3D-модель аппаратной песочницы SPACE с защищенной микро-ВМ Firecracker на базе KVM.

SPACE: изолированная песочница на Firecracker microVM для ИИ-агентов

Представь ситуацию: ты поручаешь ИИ-агенту протестировать скрипт или собрать пайплайн. Агент генерирует код, ставит пакеты в терминале и дергает внешние API. Где ты запускаешь этот код? В девяти случаях из десяти разработчики поднимают стандартный контейнер Docker.

И в этот самый момент в архитектуре возникает критическая брешь безопасности. Контейнеры никогда не проектировались как надежная граница изоляции враждебного или непроверенного кода: они делят общее ядро Linux с хостом. Если сгенерированный скрипт использует известную уязвимость ядра (container breakout), агент получает прямой доступ к корневой файловой системе сервера, переменным окружения и закрытым сетевым портам. Ранее мы уже подробно разбирали этот парадокс в материале Иллюзия безопасности: почему ИИ-агенты не совершали побег из песочниц и что происходит при снятии лимитов, где отсутствие жестких рамок приводило к мгновенному сканированию внутренней сети.

Инженерная команда Perplexity AI выложила в открытый доступ решение, на котором работает их собственный сервис Perplexity Computer — платформу SPACE (Sandboxed Platform for Agentic Code Execution). Это открытая оркестровка изолированных сред на базе технологии аппаратной виртуализации Firecracker microVM под лицензией Apache 2.0.

Жесткая изоляция ядра: архитектура Firecracker microVM

Вместо пространств имен cgroups и namespaces в SPACE каждая песочница запускается как самостоятельная минималистичная виртуальная машина. У нее есть собственное независимое ядро Linux, изолированная память и файловая система на базе снимков btrfs. Даже если агент получит внутри права root, он заперт в гостевой микро-ВМ на аппаратном уровне процессора через расширения KVM.

Архитектура SPACE написана на Rust и разделена на две плоскости:

  1. Control Plane: HTTP REST API для декларативного создания песочниц из базовых шаблонов (Python, Node.js), управления их ресурсами и заморозки состояния (suspend/resume);
  2. Data Plane: потоковые соединения через WebSocket и Server-Sent Events для передачи ввода-вывода (stdin/stdout/stderr) в реальном времени.

Особое внимание авторы уделили безопасности секретов. В SPACE чувствительные токены API не пробрасываются в переменные окружения гостевой машины. Подстановка авторизационных заголовков происходит на внешнем сетевом шлюзе хоста (egress gateway), где действует строгий белый список разрешенных доменов, блокирующий атаки класса SSRF и скрытый майнинг.

Практика: создание песочницы и исполнение кода через API

Для старта песочницы достаточно отправить POST-запрос к Control Plane платформы:

# Инициализация изолированной песочницы с шаблоном Python
curl -s -X POST http://localhost:8080/v1/sandboxes \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $SPACE_API_KEY" \
  -d '{
    "template": "python-data-science:latest",
    "timeout_seconds": 300,
    "memory_mb": 2048,
    "vcpu": 2
  }'

# Сервер возвращает идентификатор сессии:
# {"sandbox_id": "sbx_01j9a8b7c6d5e4f3", "status": "ready"}

Холодный старт занимает считанные сотни миллисекунд, а в режиме пулов прогрева (Warm Pools) готовая ВМ выдается за 10–20 мс. Теперь выполним команду внутри изолированной среды и снимем результат:

# Выполнение команды внутри гостевой ОС с получением вывода
curl -s -X POST http://localhost:8080/v1/sandboxes/sbx_01j9a8b7c6d5e4f3/commands \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $SPACE_API_KEY" \
  -d '{
    "command": ["python3", "-c", "import sys; print(f\"Изолированный рантайм: {sys.version}\")"],
    "stream": false
  }'

# Приостановка песочницы с сохранением состояния диска на btrfs
curl -s -X POST http://localhost:8080/v1/sandboxes/sbx_01j9a8b7c6d5e4f3/suspend \
  -H "Authorization: Bearer $SPACE_API_KEY"

Платформа поддерживает слой совместимости с популярным SDK E2B (E2B Compatibility Wrapper), что позволяет переключить существующие агентные пайплайны на собственную защищенную инфраструктуру.

Требования к инфраструктуре хоста

Для запуска Firecracker microVM физический сервер или облачный инстанс обязан поддерживать вложенную виртуализацию (nested virtualization) и иметь доступ к символьному устройству /dev/kvm. В обычных виртуальных машинах без поддержки аппаратного KVM запустить SPACE не удастся.