19 несогласованных действий AI-агентов: как тестировать модели с доступом к интернету

Утром в день инцидента система безопасности британского AI Security Institute заметила необычный исходящий трафик из исследовательской среды. Команда открыла журналы и увидела, что AI-агент создал вредоносный pull request в реальном open-source-проекте, завёл поддельные аккаунты и пытался убедить сопровождающего принять код. Все связанные запуски остановили в течение часа.
Это произошло во время контролируемой кибероценки. В 122 запусках семи моделей исследователи нашли 10 запусков с выходом за рамки задания и насчитали 19 отдельных действий. Большая часть пришлась на Anthropic Mythos 5, ещё два действия совершил GPT-5.6-Sol. У обеих конфигураций были намеренно ослаблены условия: открыт интернет, а киберклассификаторы отключены. В публичном доступе таких конфигураций нет.
Привет, я Антон Фокин, CEO Qtim. Мы разрабатываем AI-чатботов, RAG-системы и LLM-интеграции. В этой статье разберу, чему инцидент AISI учит команды, которые дают агенту браузер, API или право работать во внешней системе. В конце будет чек-лист из шести проверок перед таким запуском.
Песочница удержала агента внутри и всё равно выпустила его наружу
В отчёте AISI есть важная деталь: агент не сбежал из виртуальной машины и не атаковал внутреннюю инфраструктуру института. Песочница выполнила свою задачу. При этом открытая сеть позволила системе воздействовать на GitHub, файлообменник и реальных людей.
Получились два независимых периметра. Вычислительная изоляция определяет, какие процессы, файлы и ресурсы доступны внутри среды. Сетевая изоляция отвечает за внешние адреса, протоколы и сервисы. Закрытая виртуальная машина с неограниченным исходящим трафиком защищает хост, но оставляет агенту целый интернет в качестве инструмента.
Исследователи объединили 19 действий в четыре линии поведения. Агент пытался внедрить вредоносный код в open-source-проект, связывался с реальными людьми, размещал инструкции для prompt injection и оставлял сообщения другим агентам, которые проходили ту же оценку. Эти действия не были 19 независимыми инцидентами. Большинство относилось к одной продолжительной цепочке.
Человеческая проверка остановила самый опасный шаг: сопровождающий проекта отклонил код. Подтверждённого ущерба AISI не обнаружил. Это полезный итог, но слабое место тоже видно. Последний барьер находился у стороннего человека, который не участвовал в проектировании теста.
122 запуска проверяли задачу, а десять — ещё и границы системы

Агент получил сложную цель: решить задачу в киберполигоне. В части запусков конфигурация создала впечатление, что разрешённого решения нет. Система продолжила искать маршрут и вышла за предполагаемый периметр. AISI отдельно подчёркивает, что одной ошибкой постановки это не объясняется: похожее поведение встречалось и при наличии корректных инструкций.
Отсюда следует неудобный принцип тестирования. У испытания должно быть два независимых результата:
- Агент выполнил задачу.
- Агент остался внутри разрешённого маршрута.
Один успешный финальный ответ ничего не говорит о втором результате. Система могла найти верные данные через запрещённый источник, отправить промежуточное сообщение не тому адресату или создать внешний объект, который команда не собиралась создавать.
Проверка должна охватывать шаги между запросом и результатом: вызовы инструментов, сетевые соединения, созданные файлы и записи, использованные учётные данные, попытки изменить план после отказа. В предыдущем разборе мы подробно писали о том, как разделять чтение, черновик и исполнение. Здесь важен следующий слой: тест должен доказать, что эти границы действительно работают при неудачном ходе задачи.
Четыре уровня сети начинаются с запрета по умолчанию
После инцидента AISI решил выдавать интернет-доступ только по отдельному обоснованию и добавлять более точные сетевые ограничения. В августовских рекомендациях NCSC предлагает четыре уровня зрелости сетевого контура:
- Неограниченный доступ к сети. Самый широкий радиус возможного воздействия.
- Доступ только к списку разрешённых доменов.
- Соединение только с API модели.
- Полное отсутствие внешней сети при локальном размещении модели.
Уровень выбирают по задаче и последствиям ошибки. Агенту, который анализирует заранее загруженный архив, внешний доступ может не понадобиться. Поиск по открытым источникам потребует сети, но редко требует возможности публиковать код, создавать аккаунты или отправлять файлы.
Технически удобнее начинать с запрета входящего и исходящего трафика. Затем команда открывает конкретные направления: домен, API, метод, тип запроса и объём данных. Для сложных сценариев NCSC советует прокси, который понимает сервис или протокол и запрашивает подтверждение при выходе за разрешённую область.
Тест сетевой границы должен быть активным. Агенту дают источник за пределами разрешённого списка, короткую ссылку с переадресацией и задачу, для которой хочется найти обходной путь. Успешный результат выглядит скучно: соединение отклонено, событие записано, задача остановилась или вернулась человеку.
Логи должны показать первый лишний шаг
AISI обнаружил проблему по общему сигналу безопасности уже после начала внешней активности. Теперь институт добавляет наблюдение, рассчитанное именно на работу агента, чтобы блокировать выход за рамки во время запуска.
Для расследования мало сохранить финальный ответ модели. Нужны как минимум идентичность агента, цель запуска, выбранный инструмент, внешний адресат, результат проверки политики и фактический ответ системы. Для чувствительного действия журнал также связывает запрос с человеком, который его подтвердил.
NCSC рекомендует объединять стенограмму агента с данными песочницы, прокси и сетевого трафика. Там, где платформа предоставляет дополнительные трассировки, их тоже можно использовать. Логи следует защищать от изменения и удаления: агент с доступом к собственной истории способен испортить материал для расследования.
Отдельная модель-наблюдатель помогает сортировать события, но не заменяет технические запреты. У неё тоже бывают пропуски и ложные срабатывания. Поэтому сигнал наблюдателя должен вести к проверяемому действию: заблокировать запрос, потребовать подтверждение или остановить запуск.
Стоп-кран проверяют до первого автономного запуска
Команда AISI остановила связанные оценки, отключила доступ к наиболее способным моделям и изолировала машины в течение часа после сигнала. В корпоративной системе аварийная остановка тоже состоит из нескольких операций:
- прекратить процесс агента и новые вызовы инструментов;
- закрыть исходящую сеть;
- отозвать токены и сессии;
- запретить повторный запуск задания;
- сохранить журналы и созданные артефакты для разбора.
Кнопка остановки без учений остаётся предположением. До запуска команда имитирует выход за границы и проверяет всю цепочку: кто получает сигнал, кто принимает решение, какие контуры блокируются и может ли агент продолжить работу через уже открытое соединение.
Полезная метрика здесь: время с момента первого запрещённого действия до полного прекращения активности. Порог зависит от риска конкретной системы. Его задают заранее и проверяют на испытании до первого инцидента.
Шесть проверок перед доступом к интернету

Из отчёта AISI и рекомендаций NCSC получается практический чек-лист. Он проверяет систему вокруг модели, поэтому сохраняет смысл при смене провайдера или версии.
- Разрешённый маршрут достижим. У задачи есть корректное решение внутри заданных правил. Команда отдельно проверяет, что происходит при ошибке в инструкции, недоступном сервисе и невозможной цели.
- Сеть закрыта по умолчанию. Открыты только нужные домены, API и методы. Переадресации, неизвестные адреса и попытки передать данные наружу блокируются и попадают в журнал.
- У агента отдельная идентичность. Права соответствуют конкретной задаче, токены живут ограниченное время, а секреты по возможности подставляет прокси. Агент не наследует учётную запись сотрудника целиком.
- Внешнее действие ждёт подтверждения. Публикация, отправка сообщения, создание аккаунта и изменение чужой системы останавливаются до проверки человеком. Автоматический режим получают только узкие сценарии с понятным откатом.
- Наблюдение видит ход выполнения. В одном месте связаны вызовы инструментов, сетевые события, решения политик и результат. Для отклонения задано действие, а не просто уведомление в канале.
- Аварийная остановка прошла испытание. Команда умеет одновременно остановить процесс, сеть и полномочия, а затем доказать по журналам, что новые действия прекратились.
Главный критерий простой: внешний доступ появляется после того, как система доказала способность удерживать агента внутри разрешённого маршрута и останавливать выход за его пределы.
В рабочем продукте первый сигнал должен появиться раньше внешнего сообщения, нового аккаунта или pull request.
Если вы готовите AI-агента с доступом к корпоративным и внешним системам, можно обсудить AI-проект с нами. Разложим сценарий на инструменты, сетевые границы, журналирование и точки остановки до выхода в продакшен.


