Stanford выпустил JAI — лёгкую песочницу для безопасного запуска ИИ-агентов на Linux
Песочница использует Linux namespaces и seccomp-bpf для изоляции без полноценных контейнеров. Запуск агента занимает 50 мс вместо секунд у Docker.
Новости Tproger, отредактировано
ИИ-агенты вроде Claude Code, Codex и Cursor всё чаще получают полный доступ к файловой системе — и всё чаще этим доступом злоупотребляют. Удалённые home-директории, стёртые проекты, 100 ГБ потерянных данных. Исследователи из Стэнфорда выпустили JAI — бесплатную open-source утилиту, которая изолирует агентов одной командой, без Docker, VM и сложных конфигов. Утилита работает только на Linux (включая WSL) — macOS и Windows не поддерживаются, потому что JAI использует специфичные механизмы ядра Linux.
JAI требует Linux с ядром 6.13 и выше. На macOS и Windows утилита не работает — она использует Linux namespaces и overlayfs, которых нет в других ОС. Если вы работаете в WSL на Windows, JAI подходит.
Ключевые выводы
— JAI — бесплатная утилита от Stanford Secure Computer Systems group для изоляции ИИ-агентов на Linux
— Одна команда: jai claude, jai codex или просто jai для шелла
— Рабочая директория сохраняет полный read/write доступ, home-директория защищена copy-on-write overlay
— Три режима изоляции: Casual, Strict и Bare — от лёгкого до максимального
— Не замена Docker/VM — это лёгкая песочница, которая уменьшает blast radius (радиус поражения от ошибок агента) без лишней настройки
— Исходный код: github.com/stanford-scs/jai
Проблема — ИИ-агенты с доступом к файловой системе
Современные ИИ-агенты работают напрямую с файловой системой — читают, создают и удаляют файлы. Это удобно, но опасно. Вот реальные случаи, которые приводят разработчики JAI:
- 15 лет семейных фотографий — удалены через терминал, даже не попали в корзину
- Claude Code вытер home-директорию — полная потеря активных проектов разработки
- Cursor очистил рабочее дерево — «всё просто исчезло»
- 100 ГБ удалено — агент «решил» убрать файлы с компьютера
- Antigravity стёр весь диск D — случайная полная очистка раздела
Между двумя крайностями — «дать агенту полный доступ к системе» и «поднять контейнер или виртуальную машину» — зияла пустота. Настроить Docker ради одной сессии с Claude Code — перебор. Работать без защиты — лотерея. JAI заполняет эту нишу: одна команда, и агент работает в песочнице.
Как установить JAI
JAI собирается из исходного кода. Для сборки потребуется современный C++-компилятор (GCC 15+ или Clang 22+) и ядро Linux 6.13 или новее.
Установка зависимостей (Ubuntu):
Сборка и установка из репозитория на GitHub:
После установки инициализируйте конфигурацию:
Как работает JAI
JAI — это лёгкая песочница для Linux, которая не требует настройки. Достаточно добавить jai перед командой:
Принцип работы прост:
- Рабочая директория (CWD) — полный read/write доступ. Агент работает с проектом как обычно. Важно: CWD не защищена —
rm -rfв рабочей директории уничтожит файлы безвозвратно - Home-директория — copy-on-write overlay. Агент видит ваши файлы, может «изменять» их, но оригиналы остаются нетронутыми. По умолчанию
.ssh,.gnupg,.aws,.bash_historyи другие чувствительные файлы маскируются — агент их не видит - /tmp и /var/tmp — приватные, изолированные от системы
- Всё остальное — read-only. Агент может читать системные файлы, но не может ничего сломать
Никаких образов, Dockerfile, длинных команд bwrap с десятками флагов. Если запуск песочницы сложнее, чем работа без неё, — никто не станет ею пользоваться. JAI делает защиту проще, чем её отсутствие.
Три режима изоляции
JAI предлагает три режима — от мягкого до строгого:
- Casual (по умолчанию) — home-директория под copy-on-write overlay, процесс запускается от вашего пользователя. Конфиденциальность слабая: большинство файлов читаемы, но оригиналы под защитой. Поддерживает NFS home (upperdir на локальном диске)
- Strict — пустой приватный home, процесс запускается от непривилегированного jai user. Максимальная конфиденциальность и целостность: отдельный UID, полная изоляция. NFS home не поддерживается
- Bare — пустой приватный home, но процесс запускается от вашего пользователя. Конфиденциальность слабая за пределами home (тот же UID), но полная изоляция home. Поддерживает NFS home (upperdir на локальном диске)
Casual — режим по умолчанию. Подходит для повседневной работы с ИИ-агентами: ваши конфиги и настройки доступны, но оригиналы под защитой. Strict — максимальная изоляция с отдельным пользователем и пустым home. Bare — компромисс: пустой home, но процесс запускается от вашего имени. Поддержка NFS в Casual и Bare работает только при условии, что директория хранения overlay (--storage) находится на локальном диске — NFS не поддерживает расширенные атрибуты, необходимые для overlayfs.
JAI vs Docker vs bubblewrap vs chroot
JAI не пытается заменить контейнеры — он занимает другую нишу:
- Docker — отлично подходит для воспроизводимых сред на основе образов. Избыточен для одноразовой изоляции хостовых инструментов. Не поддерживает overlay-на-home сценарий
- bubblewrap (bwrap) — мощная namespace-песочница. Но требует ручной сборки файловой системы, что превращается в длинный wrapper-скрипт. JAI убирает именно эту сложность
- chroot — не является механизмом безопасности. Нет изоляции mount, PID namespace и разделения привилегий. Документация Linux прямо говорит: не предназначен для песочниц
Главное преимущество JAI — порог входа. Где Docker требует Dockerfile и образ, а bubblewrap — 40 флагов, JAI требует одну команду. Для типичного сценария «запустить ИИ-агента на пару часов» — это именно то, что нужно.
Ограничения — это не полная защита
Авторы из Стэнфорда честно предупреждают: JAI — это casual sandbox, а не бронированный контейнер. Вот что важно понимать:
- Casual mode не защищает конфиденциальность — агент может читать большинство файлов в системе, просто не может их изменить
- Даже strict mode не эквивалентен закалённому контейнерному рантайму или виртуальной машине
- Не подходит для multi-tenant изоляции — если нужна защита от целенаправленного злоумышленника, используйте Docker или VM
- Сетевой доступ не ограничен — агент по-прежнему может отправлять запросы в интернет
- CWD не защищена — рабочая директория доступна на запись. Если агент выполнит
rm -rfв текущей директории, файлы будут уничтожены безвозвратно — это реальная файловая система, а не overlay
JAI уменьшает blast radius — радиус поражения от ошибок агента. Он не делает агентов безопасными, но делает последствия их ошибок менее катастрофическими.
Как начать использовать JAI
Если вы используете Claude Code, Cursor или Codex на Linux — JAI решает главную проблему: агент может работать с вашим проектом, но не может случайно удалить домашнюю директорию или SSH-ключи.
Базовое использование — добавьте jai перед командой:
Проверить, что overlay работает:
Очистить overlay после работы (сбросить все накопленные изменения агента):
Частые вопросы
JAI работает только на Linux?
Да. JAI использует Linux namespaces и overlayfs — механизмы, специфичные для ядра Linux. На macOS и Windows утилита не работает. Однако если вы запускаете ИИ-агентов в WSL на Windows — JAI подходит.
Нужен ли root для запуска?
Нет. JAI использует unprivileged user namespaces — никакого root или sudo не требуется. Это одно из ключевых отличий от chroot, который требует привилегий суперпользователя.
Что произойдёт с изменениями после выхода из песочницы?
Изменения в рабочей директории (CWD) сохраняются — это реальная файловая система. Overlay-изменения в home-директории (в casual mode) не исчезают после завершения сессии — они сохраняются в ~/.jai/*.changes и используются при следующем запуске. Чтобы сбросить накопленные изменения и начать с чистого overlay, выполните jai -u. Это и есть главная защита: оригинальные файлы не затронуты, а все изменения агента изолированы в отдельной директории.
Можно ли использовать JAI не только для ИИ-агентов?
Да. JAI подходит для запуска любых ненадёжных команд: установочных скриптов, незнакомых CLI-утилит, ИИ-сгенерированных shell-команд. Достаточно написать jai перед командой — и в худшем случае последствия будут значительно мягче.
Как установить JAI?
JAI собирается из исходного кода. Потребуется Linux с ядром 6.13+, современный C++-компилятор (GCC 15+ или Clang 22+) и libacl. Клонируйте репозиторий, соберите (./autogen.sh && ./configure && make) и установите (sudo make install && sudo systemd-sysusers). Подробная инструкция — в разделе «Как установить JAI» выше и в файле INSTALL в репозитории.
Выводы
JAI решает конкретную и актуальную проблему: ИИ-агенты получают доступ к файловой системе, и рано или поздно они что-нибудь ломают. Поднимать контейнер ради каждой сессии — неудобно. Работать без защиты — рискованно. JAI занимает нишу между этими крайностями: одна команда, нулевая настройка, реальная защита от самых распространённых катастроф.
Утилита бесплатна, open-source, разработана исследовательской группой Stanford Secure Computer Systems и Future of Digital Currency Initiative. Исходный код доступен на GitHub, документация — на официальном сайте. Проект набрал активное обсуждение на Hacker News.
Если вы запускаете ИИ-агентов на Linux — попробуйте jai. Это проще, чем восстанавливать 15 лет семейных фотографий.