Не доверяйте ИИ-агентам

28 февраля 2026 г. · Gavriel Cohen

Когда вы работаете с ИИ-агентами, к ним следует относиться как к ненадёжным и потенциально вредоносным. Беспокоитесь ли вы о prompt injection, о модели, пытающейся выбраться из песочницы, или о чём-то, о чём ещё никто не подумал — независимо от вашей модели угроз, вы не должны доверять агенту. Правильный подход — это не улучшенные проверки разрешений и не более умные allowlist-ы. Это архитектура, которая исходит из того, что агенты будут вести себя некорректно, и ограничивает ущерб, когда это происходит.

Именно на этом принципе я построил NanoClaw.

Не доверяйте процессу

OpenClaw по умолчанию запускается непосредственно на хост-машине. У него есть опциональный режим песочницы Docker, но он отключён из коробки, и большинство пользователей никогда его не включают. Без него безопасность полностью зависит от проверок на уровне приложения: allowlist-ов, запросов подтверждения, набора «безопасных» команд. Эти проверки основаны на неявном доверии к тому, что агент не попытается сделать что-то не так. Стоит принять установку, что агент потенциально вредоносен, и становится очевидно, что блокировки на уровне приложения недостаточны. Они не обеспечивают герметичную безопасность. Целеустремлённый или скомпрометированный агент найдёт способ их обойти.

В NanoClaw контейнерная изоляция является ключевой частью архитектуры. Каждый агент работает в собственном контейнере — в Docker или в Apple Container на macOS. Контейнеры эфемерны: создаются заново при каждом вызове и уничтожаются после завершения. Агент работает от имени непривилегированного пользователя и видит только те директории, которые были явно смонтированы. Граница контейнера обеспечивается операционной системой.

Не доверяйте другим агентам

Даже когда песочница OpenClaw включена, все агенты разделяют один контейнер. У вас может быть один агент в качестве личного помощника и другой для работы, в разных группах WhatsApp или каналах Telegram. Все они находятся в одном окружении, а значит, информация может просачиваться между агентами, которые должны обращаться к разным данным.

Агенты не должны доверять друг другу больше, чем вы доверяете им. В NanoClaw каждый агент получает собственный контейнер, файловую систему и историю сессий Claude. Ваш личный помощник не может видеть данные рабочего агента, потому что они работают в полностью изолированных песочницах.

ОБЩИЙ КОНТЕЙНЕР Личный помощник Рабочий агент Агент семейной группы Общая файловая система Все учётные данные доступны Вся история сессий видна Все смонтированные данные общие Все агенты видят всё КОНТЕЙНЕР ДЛЯ КАЖДОГО АГЕНТА Личный помощник /data/personal своя сессия ro × Рабочий агент /data/work своя сессия rw × Агент семейной группы /data/family своя сессия ro Агенты изолированы друг от друга

Граница контейнера — это жёсткий уровень безопасности: агент не может её преодолеть вне зависимости от конфигурации. Поверх этого allowlist монтирования в ~/.config/nanoclaw/mount-allowlist.json выступает дополнительным уровнем эшелонированной защиты: он существует для того, чтобы пользователь случайно не смонтировал то, что не должно быть доступно, а не для того, чтобы предотвратить побег агента. Чувствительные пути (.ssh, .gnupg, .aws, .env, private_key, credentials) заблокированы по умолчанию. Allowlist находится вне директории проекта, поэтому скомпрометированный агент не может изменить собственные разрешения. Код хост-приложения монтируется в режиме только для чтения, так что ничто из действий агента не может сохраниться после уничтожения контейнера.

Людям в ваших группах тоже не стоит доверять. Неосновные группы по умолчанию считаются ненадёжными. Другие группы и люди в них не могут отправлять сообщения в другие чаты, планировать задачи для других групп или просматривать данные других групп. Любой участник группы может отправить prompt injection, и модель безопасности это учитывает.

Не доверяйте тому, что не можете прочитать

OpenClaw содержит почти полмиллиона строк кода, 53 конфигурационных файла и более 70 зависимостей. Это нарушает базовую предпосылку безопасности с открытым исходным кодом. Chromium насчитывает более 35 миллионов строк, но вы доверяете процессам ревью Google. Большинство проектов с открытым исходным кодом работают наоборот: они остаются достаточно маленькими, чтобы множество глаз могло их реально проверить. Никто не ревьюил 400 000 строк OpenClaw. Он был написан за несколько недель без надлежащего процесса ревью. Сложность — это то место, где прячутся уязвимости, и анализ Microsoft это подтвердил: риски OpenClaw могут проявляться через обычные вызовы API, потому что ни один человек не способен увидеть полную картину.

Сравнение количества строк кода: OpenClaw — ~400 000 строк, NanoClaw — ~3 000 строк

NanoClaw — это один процесс и несколько файлов. Мы активно используем Claude Agent SDK от Anthropic — обёртку вокруг Claude Code — для управления сессиями, компактификации памяти и многого другого, вместо того чтобы изобретать велосипед. Компетентный разработчик может просмотреть всю кодовую базу за один день. Это осознанное ограничение, а не недостаток. Наши правила для контрибьюторов принимают только исправления ошибок, исправления безопасности и упрощения.

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

В этом и заключается настоящая разница. При монолитной кодовой базе в 400 000 строк, даже если вы включите только две интеграции, весь остальной код всё ещё присутствует. Он всё ещё загружен, всё ещё является частью поверхности атаки, всё ещё доступен для prompt injection и вредоносных агентов. Невозможно отделить активное от спящего. Невозможно провести аудит, потому что невозможно даже определить границу того, что является «вашим кодом». С навыками граница очевидна: это несколько тысяч строк, это весь код, который вы сами выбрали для добавления, и вы можете прочитать каждую строку. Ядро на самом деле со временем становится меньше: поддержка WhatsApp, например, выносится в отдельный навык.

Проектируйте с расчётом на недоверие

Если галлюцинация или некорректно работающий агент может вызвать проблему безопасности, значит, модель безопасности сломана. Безопасность должна обеспечиваться за пределами агентной поверхности, а не зависеть от корректного поведения агента. Контейнеры, ограничения монтирования и изоляция файловой системы существуют для того, чтобы даже когда агент делает что-то неожиданное, радиус поражения оставался ограниченным.

Ничто из этого не устраняет риск. ИИ-агент с доступом к вашим данным — это по своей сути рискованная конструкция. Но правильный ответ — сделать доверие как можно более узким и проверяемым. Не доверяйте агенту. Стройте стены вокруг него.

Вы можете прочитать исходный код и полную модель безопасности NanoClaw; они достаточно короткие, чтобы прочитать их за один день.