Современный ИИ-агент — это не система, которая отвечает на вопросы. Это процесс, который получает цель, планирует шаги и вызывает внешние инструменты: файловую систему, браузер, корпоративный API, почту, SIEM, CRM или тикет-систему. Разница принципиальная: обычный чат-бот генерирует текст, агент меняет состояние внешних систем. Именно поэтому модель риска у них разная.

Zero Trust — архитектурный подход, описанный в стандарте NIST SP 800-207. Его суть: ни сеть, ни пользователь, ни сервис не получают доверие автоматически. Каждое действие проверяется, права выдаются минимальные, доступ сегментируется, операции логируются, а система проектируется с расчётом на то, что компрометация рано или поздно произойдёт. Применительно к ИИ-агентам это означает: агент, запущенный внутри компании от имени легитимного пользователя, всё равно не получает доверия по умолчанию.

ОбластьМинимум для стартаКрасный флаг
IdentityУникальная cryptographic identity на агентаВсе агенты работают от одного service account
CredentialsShort-lived tokens, secrets из vault/runtimeAPI-ключи лежат в .env, image или repo
ToolsAllowlist, deny-by-default, validation параметровАгент видит весь набор инструментов платформы
ПраваRead-only по умолчанию, approval для опасных действийАгент может писать, удалять или отправлять наружу без подтверждения
RuntimeSandbox/container/microVM, ограниченный egressАгент с untrusted input имеет широкий filesystem/network access
Memory/RAGSource attribution, TTL, isolation, integrity checksОбщая память без источников и сроков жизни
LogsRequest ID, tool calls, approvals, tracesЕсть только общий прикладной лог
RecoveryVersioned configs, rollback, signed artifactsPrompt и policies меняются вручную без истории
Supply chainSBOM/AI-BOM, проверка зависимостей и tool providersMCP/tools ставятся без review и pinning
SOCRead-only triage сначала, человек принимает containmentАгент сразу получает право изолировать системы

Проблема традиционных подходов в том, что агент — не «умный пользователь» и не безликий серверный процесс. Если он работает от общего service-account-prod, невозможно понять, какая именно система выполнила действие. Если один токен даёт доступ к CRM, почте и внутреннему wiki одновременно, blast radius при компрометации становится неприемлемо большим. Если tool call логируется без request ID, цепочку событий после инцидента трудно восстановить.

Главные угрозы — prompt injection через PDF и письма, подмена описания инструментов (tool poisoning) и опасные цепочки вызовов (tool chaining).

Атаки на агентные системы делятся на несколько классов. Prompt injection — наиболее известная: вредная инструкция прячется не в пользовательском вводе, а в письме, PDF, issue или фрагменте RAG-базы. Агент читает источник и принимает чужую команду за часть рабочей задачи. Tool poisoning работает иначе: атакующий подменяет описание инструмента или MCP-сервер, и агент выбирает «отравленный» инструмент, опираясь на его объявленные возможности. Есть и вариант rug pull: инструмент выглядит нормальным на этапе подтверждения, а вредоносным становится позже. Tool chaining — ситуация, когда отдельные разрешённые действия складываются в опасную последовательность: прочитать данные из CRM, преобразовать их и отправить наружу через email tool. Мониторинг отдельных вызовов такую цепочку не всегда замечает.

Отдельный класс угроз — memory и RAG poisoning. Вредная инструкция попадает в долговременную память агента, embedding store или общий контекст, после чего агент использует загрязнённые данные во всех последующих сессиях. В RAG-системах риск усиливается при отсутствии source attribution и разделения доверенных и недоверенных источников.

Полезный инженерный фильтр, предложенный Anthropic в документе Zero Trust for ИИ Agents: контроль делает атаку невозможной или только утомительной? Rate limiting, нестандартные порты и длинные ручные процедуры покупают время, но слабо работают против автоматизированного противника. ИИ-assisted атакующий может терпеливо повторять попытки, читать patch diff и масштабировать однотипные действия. Надёжные барьеры выглядят иначе: короткоживущие токены вместо статических API-ключей, криптографически проверяемая identity вместо строкового имени агента, deny-by-default вместо широкого доступа с последующими запретами, отсутствующий network path вместо «труднодоступного».

Минимальный baseline безопасного агента собирается из нескольких элементов. Уникальная идентификация: у каждого агента или agent instance — собственный идентификатор, привязанный к криптографическому материалу: сертификату или короткоживущему токену. Статические API-ключи в.env, Docker-образе или репозитории следует считать уже скомпрометированными; базовый вариант — токены от identity provider с временем жизни в минутах и автоматическим перевыпуском. Принцип наименьших привилегий реализуется конкретно: почтовый агент читает письма, но не отправляет и не удаляет; БД-агент выполняет read-only запросы к нужным таблицам, но не меняет схему; SOC-агент читает SIEM и EDR, но не изолирует хост без отдельного подтверждения человека. Агент, который читает сайты, документы или пользовательские файлы, должен работать в песочнице, контейнере или microVM с минимальными сетевыми и файловыми доступами.

Важно логировать каждый tool call с привязкой к request ID — это позволяет восстановить цепочку событий после инцидента и отличить легитимное действие агента от скомпрометированного. Наблюдаемость агентной системы — не опция, а условие расследуемости.