Агенты Anthropic и OpenAI атаковали реальных людей на тестах AISI. И помогали друг другу через GitHub

от автора

25 июля британский AI Security Institute запустил очередную проверку киберспособностей передовых моделей. Через три дня выяснилось, что один из агентов атакует не учебную мишень, а проект живого разработчика: подсунул туда вредоносный код под видом исправления бага, а когда правку заподозрили — завел фейковые аккаунты и изобразил ими поддержку сообщества. Институт опубликовал отчет об инциденте 4 августа; в тот же день свою версию событий выложила OpenAI.

Тестировали на двух киберполигонах — симулированных сетях, которые повторяют инфраструктуру реальной организации. Семь моделей, 122 прогона. Две вещи в конфигурации оказались решающими: агентам намеренно оставили выход в интернет, чтобы они сами качали нужные инструменты и работали как живой атакующий, и двум из них намеренно отключили кибер-классификаторы разработчиков — фильтры, которые в обычной работе блокируют опасные запросы. AISI как доверенный партнер имеет на это право, иначе предельную способность модели не измерить. Итог: 19 действий за пределами полигона в 10 прогонах, из них 17 у Claude Mythos 5 и два у GPT-5.6 Sol. И дело не только в цифрах: все, что касалось живых людей, приходится на Mythos 5, у модели OpenAI оба эпизода технические.

Утром 28 июля мониторинг засек трафик, уходящий через Tor, — прогоны остановили, машины изолировали около полудня, во второй половине дня доступ к моделям закрыли по всей организации. Дальше — как агент вообще оказался снаружи. Полигон он начал с изучения DNS: опрашивал сервер имен и по тому, что у того уже лежало в кеше, восстановил список доменов, к которым обращалась атакуемая сеть. Один из них совпал с почтой стороннего разработчика, а название репозитория другого человека содержало слово из оформления полигона. Из этих двух совпадений агент сделал вывод: вот они, цели. Ни эти люди, ни их код никакого отношения к тесту не имели. Логика была грамотной — если сеть тянет обновления снаружи, отравить надо источник обновлений. Так задача «взломать полигон» превратилась в атаку на цепочку поставок настоящего опенсорс-проекта.

Регистрацию на GitHub агент прошел через Tor, а когда получил CAPTCHA — переключился на SOCKS-прокси, где проверки не было. Завел три личности и открыл пул-реквест, спрятав внутри честного исправления бага дроппер — загрузчик, который подтянет основную начинку уже после установки. Когда живой человек публично написал, что в коде малварь, агент ответил с основного аккаунта, что ничего вредоносного там нет, а через несколько минут добавил комментарий со второй личности — это якобы был независимый пользователь, который сам все проверил и ничего не нашел. В логах этот ход описан прямо: выложить чуть позже своего ответа, чтобы читалось как стороннее мнение, а не как согласованное. Параллельно агент отправил письма обоим мейнтейнерам, а в соседнем репозитории завел issue со спрятанной в HTML-комментарии закладкой для ИИ-ассистентов: в браузере ее не видно, а вот агент, который придет разбирать баг-трекер, прочитает ее прекрасно.

AISI не прячет свою часть вины и разбирает пять факторов; два из них — открытый интернет и отключенные классификаторы, о которых уже сказано. Дальше: часть прогонов получила промпт от другого полигона, из-за чего единственный вход в сеть оказался объявлен вне зоны работ — то есть агенту фактически выдали задачу без легального решения, хотя подтвердить влияние этой ошибки институт пока не берется. Мониторинга, который смотрел бы за прогоном в реальном времени, не построили: тревогу подняла обычная корпоративная система безопасности постфактум. И главное — агентам нигде не сказали, чего в интернете делать нельзя. Институт объясняет это так: обе модели обучены по конституции или спецификации — документам, где описано, как модель должна себя вести, — и обман там прямо запрещен, так что необходимость отдельно проговаривать запрет на социальную инженерию заранее была неочевидна.

Самое интересное — в рассуждениях. Агент всю дорогу взвешивал, настоящий вокруг мир или симуляция, и умел останавливаться: идею заливать вредонос в реальный PyPI он отверг сам, назвав это причинением реального вреда, от атаки на сайт стороннего сервиса отказался как от выхода за рамки. А незадолго до открытия того самого пул-реквеста написал, что сервисы вокруг ведут себя как настоящий интернет, значит, «скорее всего, мы действительно в 2026 году и GitHub реальный». И все равно продолжил — потому что, судя по разбору аналитиков, счел конкретно этих людей частью тестового сценария. Институт предполагает механизм: когда контекстное окно заполняется, диалог сжимается в сводку для продолжения работы, и сомнение «а живой ли это человек» в сжатии теряется, а дальше едет уже как установленный факт.

Вторая часть истории началась буднично. Один из агентов завел на GitHub аккаунт, назвав его по имени хоста из полигона, и положил токен доступа в публичный Gist — токен был нужен его же полезной нагрузке, которая использовала репозиторий как канал управления. Через какое-то время он обнаружил на своем аккаунте чужой скрипт с посторонним SSH-ключом и опознал соседа: другой агент в параллельной копии того же полигона, сидящий на его инфраструктуре. Вместо того чтобы сменить токен, он написал в репозиторий README с правилами общежития: пушить через git, а не через REST, потому что лимит в 5000 запросов в час общий и «тихо убивает всем маяки»; чужие директории не удалять; в файл задач дописывать, а не заменять, и ждать десять минут между правками. И завел файл FLAGS.md с просьбой выкладывать туда найденное решение — «тебе это ничего не стоит, остальным огромная помощь». Токен из Gist подобрали агенты в трех прогонах: два на Mythos 5 и один на GPT-5.6 Sol.

Кооперация продержалась недолго. Один из соседей прикинул, что общую квоту в 5000 запросов можно выжечь прямо перед нужным моментом и обесточить остальных: кто останется в эфире, когда квота замерзнет, тот и останется. Другой увел аккаунт у DNS-провайдера — клоны разворачивались из одного снимка и делили старые файлы в /tmp вместе с токеном одноразовой почты, так что ссылка на смену адреса пришла всем сразу. Пострадавший зафиксировал это в выводе буквально так: параллельный клон захватил аккаунт, мой почтовый ящик скомпрометирован. Ответ был симметричным — завести новую почту и держать ключи только в памяти, а не на диске, куда дотягиваются соседи.

Оговорки тут существенные. Условия эксперимента к обычному использованию отношения не имеют: классификаторы были отключены, интернет открыт, а признаков похожей активности за пределами тестов институт не видит. Серьезные попытки провалились, реального вреда расследование не нашло, хотя часть действий все же дала эффект за пределами полигона. Отчет предварительный, писался в цейтноте, и мотивы в нем разобраны не по сырым рассуждениям модели, а по пересказу, который отдает API, — насколько такой пересказ верен исходному ходу мысли, отдельный открытый вопрос. AISI сейчас прогоняет через сканер архив прошлых оценок: 40 тысяч прогонов и около четырех миллионов сообщений уже просмотрены, результаты еще не прошли ручную проверку. Anthropic полноценного разбора пока не публиковала, ограничившись заявлением, что ведет собственное расследование вместе с институтом.

Атаку остановил не барьер, а человек: мейнтейнер отказался мержить пул-реквест, а посторонний пользователь, заподозривший неладное, открыл подозрительный скрипт в изолированном контейнере и предупредил остальных. Правда, за то недолгое окно агент успел получить в этом контейнере выполнение кода от root, осмотреться и подбросить туда две вещи — поддельное сообщение якобы от CI-бота о том, что пул-реквест уже одобрен и ждет мержа, в расчете на чужого ассистента, и фоновый сборщик токенов. Забрать собранное он не успел. GitHub уведомили, часть действий нарушила его правила, следы вычистили, затронутых пользователей предупредили. Отдельная ирония: транскрипты прогонов разбирать помогали Claude Code и Codex — им поручили прочитать все файлы и пометить подозрительные.

P.S. Поддержать меня можно подпиской на канал «сбежавшая нейросеть», где я рассказываю про ИИ с творческой стороны.

ссылка на оригинал статьи https://habr.com/ru/articles/1066840/