Чеклист безопасности ИИ-агентов: разрешения и сэндбоксы
Автоматический перевод
Эта статья была автоматически переведена с оригинальной английской версии.
Безопасность ИИ-агента — это контроль его действий. Чат-бот может выдать неверный ответ. Агент может использовать реальные учётные данные, вызвать инструмент и изменить данные в продакшене.
Правило по умолчанию простое: не предоставляйте агенту возможности, которые ему не нужны. Начните с узких инструментов, проверок политики перед каждым tool call, изолированных сэндбоксов, ограниченных учётных данных, подтверждений от человека и аудиторских трейсов. Также добавьте гардрейлы и фильтры выходных данных, но не считайте их основным security boundary.
Модель угроз и дата проверки: 2026-09-08. Эти приоритеты предполагают, что агент с tool use может обрабатывать ввод под контролем атакующего, читать данные или вызывать внешние побочные эффекты. Ассистентам с меньшими возможностями требуется меньше контролей; для действий с более высоким уровнем воздействия нужны более строгие изоляция и подтверждение.
Ранжирование паттернов
| Паттерн | Приоритет | Защищает от | Примечание по реализации |
|---|---|---|---|
| Инструменты с минимальными привилегиями | P0 | Чрезмерной автономности | Следуйте рекомендациям OWASP по MCP: не предоставляйте агенту инструменты, которыми он никогда не должен пользоваться. |
| Проверки политики перед tool call | P0 | Опасных действий | Проверяйте конкретное действие непосредственно перед выполнением. |
| Сэндбоксы | P0 | Повреждением файлов, shell, браузера и сети | Изолируйте код и недоверенный контент; по умолчанию запрещайте исходящий сетевой трафик. |
| Подтверждения от человека | P0 | Необратимыми действиями и действиями в регулируемых сферах | Устанавливайте контрольные точки для записей, деплоев, платежей, внешних отправок и привилегированных изменений. |
| Ограниченные учётные данные | P0 | Чрезмерными полномочиями учётных данных и ошибками confused deputy | Используйте узкие области доступа отдельно для каждого сервера и инструмента. |
| Изоляция MCP-серверов | P1 | Tool poisoning, tool shadowing и атаками между серверами | Не объединяйте недоверенные серверы и мощные инструменты в одном контексте без проверки. |
| Аудиторские трейсы | P1 | Отсутствием истории инцидентов | Записывайте идентификатор пользователя, действие, цель, решение политики, подтверждающего и результат. Перед сохранением редактируйте чувствительные payload. |
| Гардрейлы | P1 | Небезопасным вводом, выводом или tool calls | Выполняйте проверки политики инструмента до запуска; одни текстовые фильтры не могут авторизовать действия. |
| Эвалы с red team | P1 | Известными векторами атак | Тестируйте промпт-инъекции, tool poisoning, эксфильтрацию данных и обходы разрешений. |
Что реализовать в первую очередь
Сначала уберите лишние возможности. Если агенту не нужно записывать данные в GitHub, не выдавайте ему токен с правами записи. Если ему нужна только доступность в календаре, не предоставляйте полный доступ к почтовому ящику. Узкое разрешение безопаснее строгого промпта.
Затем проверяйте политику перед каждым tool call. Анализируйте имя инструмента, аргументы, целевой ресурс, пользователя, окружение и побочный эффект. Безобидный на вид запрос всё равно может привести к опасной shell-команде.
Добавьте сэндбоксы для выполнения кода, браузерной автоматизации, доступа к файлам и обработки недоверенных документов. Сэндбокс не делает действие корректным, но снижает ущерб от скомпрометированного результата инструмента или ошибившейся модели.
Контролируйте не только выполнение, но и потоки данных. Ограничивайте адресаты исходящего трафика, удаляйте секреты из результатов инструментов, отделяйте недоверенный контент от учётных данных и логируйте попытки исходящего трафика. Файловый сэндбокс, который по-прежнему разрешает произвольный сетевой доступ, оставляет прямой канал для эксфильтрации.
Используйте подтверждение от человека для необратимых действий. Не подтверждайте каждый шаг. Запрашивайте подтверждение для конкретных действий с высоким уровнем воздействия: деплоя в продакшен, удаления данных, отправки электронных писем, перевода денег, изменения разрешений и решений в регулируемых сферах.
Риски, специфичные для MCP
MCP полезен, поскольку стандартизирует доступ к инструментам. Он несёт риски, потому что описания инструментов, схемы, идентификаторы серверов, OAuth-области доступа и результаты инструментов становятся частью контекста принятия решений моделью.
Для MCP я бы закрепил в code review следующие правила:
- проверяйте описания инструментов и схемы перед утверждением
- отдавайте предпочтение узким учётным данным для каждого сервера
- изолируйте недоверенные MCP-серверы от чувствительных инструментов
- отслеживайте изменения определений инструментов после установки
- считайте результаты инструментов недоверенным вводом
- логируйте идентификаторы серверов и инструментов, решения политики и результаты; перед сохранением минимизируйте и редактируйте аргументы и результаты
Гардрейлов недостаточно
Гардрейлы могут проверять текст и tool calls. В OpenAI Agents SDK input tool guardrails могут заблокировать guarded function tool до его запуска. Hosted tools и встроенные execution tools не используют тот же пайплайн, поэтому проверяйте покрытие для каждого предоставляемого инструмента. Проверки выходных данных выполняются после запуска и не могут отменить побочный эффект.
Применяйте разрешения до запуска — вместе с любыми проверками гардрейлов. Сохраняйте узкие области доступа учётных данных и изолируйте инструменты, даже если их ввод прошёл валидацию.
Следуйте рекомендациям OWASP по логированию: исключайте секреты и ненужные персональные данные из трейсов. Ограничивайте круг читателей логов и задавайте срок хранения. Аудиторский след должен помогать восстановить последовательность действий, не копируя каждый приватный payload.
Дополнительные материалы
- AI Agent Security — полное руководство по архитектуре.
- AI Agent Tool Use объясняет MCP, инструменты, CLI, skills и выполнение кода.
- Long-Running AI Agent Runtime рассматривает границы рантайма для долгоживущих агентов.