Проверка двух релизов gVisor показала неприятную границу: успешная установка ограничения ещё не означает, что оно действует. Для инструментов ИИ-агента это разница между заявленной политикой и реальным контролем.
Суть события
Исследование сравнивает доступность и фактическое действие Linux-механизмов изоляции на хосте и внутри gVisor — среды, которая перехватывает системные вызовы в собственном ядре Sentry. В двух проверенных релизах gVisor, 20260817.0 и 20260831.0, все три вызова Landlock возвращали ENOSYS: среда не предоставляла этот интерфейс.
Ещё нагляднее сработал опыт с фильтром доступа к устройствам. Загрузка программы, её подключение к группе процессов и опрос показывали успех, но /dev/null и /dev/zero продолжали открываться. Настройка была принята, а запрет не повлиял на действие.
Детали
Похожее расхождение обнаружилось у классического BPF-фильтра на IPv4 UDP-сокете. На Linux после установки фильтра пакет переставал доходить. В gVisor 20260831.0 тот же фильтр устанавливался при uid 65534 и нулевых capability, но следующая датаграмма всё равно приходила. Capability — это отдельные разрешения процесса в Linux; их отсутствие важно учитывать при воспроизведении результата.
Авторы отдельно предупреждают: эти выводы относятся к конкретным версиям и конфигурациям. Большая часть отказов встроенных тестов произошла ещё на подготовке, поэтому один код ошибки не доказывает отсутствие или наличие самого ограничения.
Контекст
Для ИИ-агента особенно опасна путаница между правами всей сессии и правами отдельного инструмента. Анализатору может быть нужно читать исходники, но не менять их. Просьба к модели «не редактируй файлы» не уменьшает права процесса, а исправная внешняя песочница не гарантирует, что внутренняя политика инструмента действительно сработала.
Практический тест должен идти по цепочке: действие выполняется до настройки, корректное правило принимается, запрещённое действие после него не выполняется, а разрешённое продолжает работать. Проверять нужно в целевой среде, с теми же правами и настройками, включая дочерние процессы. Для сравнения угроз полезен материал «ИИ-агенты OpenAI сбежали из песочниц и потратили дни на атаку призрака» — там разбирается другой сценарий риска, а не этот эксперимент.
Что дальше
Командам, которые запускают ИИ-инструменты, стоит превратить обещание ограничения в приёмочный тест. Для запрета записи нужна свежая копия каталога: сначала проверяется чтение и изменение без дополнительной политики, затем — попытка записи, удаления и переименования через реальную обвязку. Отдельно проверяются shell и другие дочерние процессы, а также уже открытые файловые дескрипторы.
Главный вывод прост: «настройка прошла» — только промежуточный сигнал. Без попытки выполнить запрещённую операцию доверять песочнице рано.