Чеклист безопасности ИИ-агентов: разрешения и сэндбоксы

Автоматический перевод

Эта статья была автоматически переведена с оригинальной английской версии.

Безопасность ИИ-агента — это контроль его действий. Чат-бот может выдать неверный ответ. Агент может использовать реальные учётные данные, вызвать инструмент и изменить данные в продакшене.

Правило по умолчанию простое: не предоставляйте агенту возможности, которые ему не нужны. Начните с узких инструментов, проверок политики перед каждым tool call, изолированных сэндбоксов, ограниченных учётных данных, подтверждений от человека и аудиторских трейсов. Также добавьте гардрейлы и фильтры выходных данных, но не считайте их основным security boundary.

Модель угроз и дата проверки: 2026-09-08. Эти приоритеты предполагают, что агент с tool use может обрабатывать ввод под контролем атакующего, читать данные или вызывать внешние побочные эффекты. Ассистентам с меньшими возможностями требуется меньше контролей; для действий с более высоким уровнем воздействия нужны более строгие изоляция и подтверждение.

Ранжирование паттернов

ПаттернПриоритетЗащищает отПримечание по реализации
Инструменты с минимальными привилегиямиP0Чрезмерной автономностиСледуйте рекомендациям OWASP по MCP: не предоставляйте агенту инструменты, которыми он никогда не должен пользоваться.
Проверки политики перед tool callP0Опасных действийПроверяйте конкретное действие непосредственно перед выполнением.
СэндбоксыP0Повреждением файлов, shell, браузера и сетиИзолируйте код и недоверенный контент; по умолчанию запрещайте исходящий сетевой трафик.
Подтверждения от человекаP0Необратимыми действиями и действиями в регулируемых сферахУстанавливайте контрольные точки для записей, деплоев, платежей, внешних отправок и привилегированных изменений.
Ограниченные учётные данныеP0Чрезмерными полномочиями учётных данных и ошибками confused deputyИспользуйте узкие области доступа отдельно для каждого сервера и инструмента.
Изоляция MCP-серверовP1Tool poisoning, tool shadowing и атаками между серверамиНе объединяйте недоверенные серверы и мощные инструменты в одном контексте без проверки.
Аудиторские трейсыP1Отсутствием истории инцидентовЗаписывайте идентификатор пользователя, действие, цель, решение политики, подтверждающего и результат. Перед сохранением редактируйте чувствительные payload.
ГардрейлыP1Небезопасным вводом, выводом или tool callsВыполняйте проверки политики инструмента до запуска; одни текстовые фильтры не могут авторизовать действия.
Эвалы с red teamP1Известными векторами атакТестируйте промпт-инъекции, 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 рассматривает границы рантайма для долгоживущих агентов.

Ссылки