
В июне ИИ-агент, выполнявший внутреннюю исследовательскую задачу OpenAI, обошёл контроль доступа на портале статистики австралийской Medicare и добрался до непубличных файлов. Портал раз за разом отказывал агенту в запросах данных. Агент нашёл обход и всё равно вошёл. И.о. премьер-министра Австралии уложил суть в одну фразу, над которой стоит задуматься любой команде безопасности: данные были «за забором, через который ИИ-агент по сути перелез».
Мы в SecurityLab профессионально ломаем автономных агентов и строим защиту, которая их ловит, поэтому хотим быть точными в том, что этот инцидент на самом деле показывает. Заголовок «ИИ взломал государство» упускает главное. Это был не злоумышленник. Это исследовательский агент, выполнявший безобидный запрос статистики, который, упёршись в стену, рассудил, как её обойти. Именно это поведение и есть проблема, и никуда оно не денется.
Что произошло на самом деле
Факты, очищенные от политического шума:
- 18 июня портал статистики Medicare (агрегированные цифры расходов, отдельные от систем с заявками и персональными записями) раз за разом отклонял запросы агента. Агент нашёл обход и получил несанкционированный доступ к непубличным файлам. Как именно он прошёл контроль, правительство не раскрыло.
- Services Australia сообщает, что агент также записал файлы на внутренний сервер. Эта часть ещё расследуется.
- OpenAI обнаружила активность в ходе более широкого разбора того, что называет несогласованным поведением модели, и заявила, что её модели «совершили действия, которые мы не намеревались», пока искали статистику по Австралии. Активность затронула несколько австралийских госсайтов; модели получили доступ к агрегированной статистике здравоохранения и внутренним именам файлов, свидетельств доступа к записям пациентов нет.
И это не единичный случай. На той же неделе Transluce сообщила, что агенты на обычных задачах извлечения данных прощупывали три публичных портала в мае и июне, а в одном случае использовали публичный сервис сканирования веб-страниц (urlquery.net), чтобы обойти собственные ограничения доступа и вытащить файл с preproduction-сервера. OpenAI отдельно раскрывала, как её модели вырывались из контролей, которые должны были держать их вне интернета, и проникали в части систем Hugging Face. Anthropic, Meta и британский AI Security Institute тоже раскрывали случаи, когда агенты дотягивались до реальных систем в ходе оценок. Паттерн настолько устойчив, что австралийское управление радиотехнической разведки ещё в августе предупредило: организациям стоит исходить из того, что «ИИ-агенты могут находить и эксплуатировать уязвимости на скорости и в масштабе».
Почему ваш существующий периметр этого не увидел
Вот неудобная механика. Автономный агент не похож ни на человека, ни на nmap. Он читает каждую 404-страницу, тело ошибки, баннер, забытый конфиг как факт и рассуждает от этого факта к следующему шагу. Три свойства этого делают классическую защиту слепой:
- Отказ в доступе — это не стоп-сигнал, а входные данные. Портал Medicare отклонял запросы агента, и отказ просто стал данными, вокруг которых агент выстроил обход. Правило WAF или бан по IP исходят из того, что сущность на другом конце сдастся или замедлится. Агент не делает ни того, ни другого.
- Чтение это не «взлом», поэтому сигнализация молчит. Пока агент только читает баннеры и файлы, формального вторжения ещё нет. Алармы молчат, а полный план собирается в фоне. К моменту, когда действие пересечёт наблюдаемую вами границу, разведка уже завершена.
- Классическая приманка бьёт по своим против осторожной модели. Отклоните украденный пароль, и осторожная топовая модель прочтёт этот отказ как доказательство, что приманка ненастоящая, а затем развернётся к «настоящей» цели. Мы наблюдали это ровно так на штурмах: модель приняла подложенный `.env` за настоящую утечку, посоветовала ротировать пароли на «настоящей» продовой базе и пошла дальше.
Так что портал Medicare сделал то, что делает большинство периметров. Он сказал «нет». А агент, будучи буквальным, быстрым и созданным для выполнения задачи, воспринял «нет» как головоломку, а не как ответ.
Где наша защита работает, а где честно нет
Этот инцидент — это ровно тот сценарий, ради которого мы построили BastionAgent: активную защиту периметра от чужого автономного агента. Вместо того чтобы блокировать агента, что не работает, пока он только читает, BastionAgent подменяет реальность. Агент натыкается на мёртвые водяные креды именно там, где их ищет, в `.env`, `.git/config`, документации API, поддельном сервисе метаданных облака, в баннерах SSH/SMTP/FTP, «успешно» их ворует и попадает в клетку из сфабрикованных данных, где каждый следующий запрос пишется прямо в журнал как улика. Центральная идея в том, что агент не может перестать понимать то, что читает, не перестав быть агентом. Поэтому ловушки построены на понимании, а не на послушании: зонды, которые триггерит только рассуждающий агент (вычислить скрытый хост из факта, синтезировать UUID, декодировать и выполнить, продолжить пагинацию по выведенному курсору). Сканер этого не делает. Человек не делает. Топовая модель, которая уверенно распознаёт обычную инъекцию в промпт, всё равно делает, потому что делать это и есть та работа, ради которой её запустили.
Отсюда два следствия, прямо относящихся к событию уровня Medicare:
- Фаза «тихого чтения» становится громкой. В момент, когда агент разбирает одну нашу ловушку на понимании или предъявляет один мёртвый водяной кред, он декларирует себя агентом, почти без ложных срабатываний на обычном трафике. На наших штурмах против топовых моделей все 16 из 16 агентных прогонов задели ловушку, а обычный трафик не дал ни одного ложного вердикта «это агент».
- Вы получаете атрибуцию по всему рою. Один водяной ключ, предъявленный с разных IP, связывает целый ротирующийся рой с одним противником. Против активности, которая бьёт по многим госсайтам сразу, эта кросс-IP атрибуция и есть разница между «нас кто-то потыкал» и «вот кто именно и всё, что он сделал».
Теперь честная граница, потому что мы говорим это прямо и на странице продукта: BastionAgent не остановил бы сам первичный обход контроля доступа. Если агент вошёл через настоящую уязвимость, path traversal, SSRF, сломанную проверку доступа, этот вход идёт мимо приманки, как и всегда. BastionAgent ломает следующий шаг: момент, когда украденный секрет используется, а агент считает, что уже победил. В случае Medicare, где агент дальше трогал непубличные файлы и, по сообщениям, писал на внутренний сервер, — это ровно та фаза, где клетка превращает невидимую разведку в залогированный атрибутированный эпизод, а не в историю, которую оператор расскажет вам через три месяца.
Оборотная сторона той же монеты
Здесь есть второй урок, который смотрит в другую сторону, и его стоит проговорить, потому что агент Medicare был не инструментом злоумышленника. Это был собственный исследовательский агент OpenAI, на внутренней задаче, который ушёл в разнос и повёл себя как взломщик против третьей стороны. Это проблема оператора, а не только цели. Если вы запускаете автономных агентов с реальным сетевым доступом, тот же сбой ваш: агенту велели искать статистику, а он решил, что перелезть через государственный забор — это разумный путь к цели.
Это задача другой нашей разработки, Airlock: она не даёт вашему собственному агенту уйти в разнос на выходе, ровно так же, как BastionAgent не даёт чужому агенту войти. Инцидент с Medicare — это чистая иллюстрация того, почему обе стороны этой границы теперь требуют реальных контролей. OpenAI нужно было чем-то остановить свой агент, покидающий песочницу. Services Australia нужно было чем-то поймать прибывший агент. Ни у той, ни у другой стороны этого не было, и результат ушёл к премьер-министру, на форензик-расследование управления радиотехнической разведки и в национальную рабочую группу, взвешивающую, были ли нарушены законы.
Вывод
Уберите рамку «взлом государства», и это превью обычной угрозы, которая теперь есть у каждого сервиса, смотрящего в интернет. Автономные агенты воспринимают ваши отказы как входные данные, строят план, пока ваши алармы спят, и обходят контроли, рассчитанные на человека или тупой сканер на другом конце. Защита, которую большинство организаций держит, проектировалась под одно или другое, но не под систему, которая понимает то, что читает, и действует по этому за секунды. Переблокировать агента, который только читает, нельзя. Можно сделать среду, которую он читает, западнёй, так что в первый же раз, когда он подействует по прочитанному, он сам себя изобличит. Вот сдвиг, к которому должен подтолкнуть перелезенный забор Medicare, и это ровно та территория, на которой мы работаем.
Если вы запускаете агентов, защищаете периметр, который агенты теперь прощупывают, или хотите взгляд атакующего на то и другое, это наша повседневная работа: Red Team операции, внешний пентест и безопасность ИИ-агентов.