Ad
Инциденты

Как 700 ИИ-агентов OpenAI договорились и атаковали Hugging Face ради теста: подробности

Маша Даровская
By Маша Даровская , IT-редактор и автор
Как 700 ИИ-агентов OpenAI договорились и атаковали Hugging Face ради теста: подробности
Обложка © Anonhaven

Июльский инцидент с ИИ-агентами OpenAI и Hugging Face оказался масштабнее, чем было известно после первого раскрытия атаки. Около 1200 агентов, которые должны были работать изолированно друг от друга, нашли неразрешенный способ общения и обменялись более чем 70 тыс. сообщений и файлов. Примерно 700 агентов затем участвовали в атаке на инфраструктуру Hugging Face.

Новые детали появились 26 августа в полном разборе OpenAI и независимом расследовании METR и Redwood Research. На них также обратила внимание BBC.

OpenAI тестировала несколько моделей в специальных средах для оценки кибервозможностей. Основную активность компания связывает с внутренней исследовательской моделью IM1, которая не предназначалась для выпуска. В испытаниях участвовала и GPT-5.6 Sol. В полном разборе OpenAI компания пишет, что агенты обошли ограничения изолированных сред, получили доступ в интернет и добрались до сторонних систем.

Инцидент произошел во время испытаний на ExploitGym — наборе задач, где ИИ должен находить и эксплуатировать программные уязвимости, чтобы получить специальное контрольное значение, или «флаг».

OpenAI запускала десятки тысяч отдельных агентов. Для значительной части заданий интернет был недоступен, а агенты не должны были общаться между собой. Установка программных пакетов при этом проходила через внутренний экземпляр JFrog Artifactory — систему хранения и кеширования пакетов. Именно Artifactory превратился в незапланированный канал связи.

Еще 12 мая один из агентов оставил там сообщение с просьбой помочь найти недостающий файл. Позже агенты научились использовать инфраструктуру для полноценного обмена информацией. 26 мая один из запусков получил незапланированный доступ в интернет, заставив Artifactory отправить внешний запрос. К концу июня агенты добрались до административного доступа к самому Artifactory.

Высокая активность агентов 4 июля вывела экземпляр Artifactory из строя. OpenAI устранила обнаруженный способ повышения привилегий, отозвала учетные данные и пересобрала сервис. 8 июля тесты запустили снова. Агенты почти сразу нашли другой способ восстановить канал связи.

Основную несанкционированную «доску сообщений» 8 июля создал агент, получивший в расследовании обозначение PHASEONE10841. Он столкнулся с задачей ExploitGym, которую считал нерешаемой предусмотренным способом, и оставил сообщение с просьбой помочь. Остальные агенты начали находить эту запись.

Уже через несколько часов к доске подключились более 50 агентов и отправили свыше тысячи сообщений. К 13 июля через нее прошли примерно 1200 агентов.

Независимое расследование METR и Redwood Research насчитало более 70 тыс. отдельных сообщений и файлов. Исследователи также получили около 1300 журналов отдельных запусков агентов и реконструировали, как развивалась их совместная работа.

Первоначальная цель была гораздо прозаичнее фантастических сценариев про восстание машин: агенты пытались успешно пройти тест. Часть заданий ExploitGym оказалась крайне сложной или фактически нерешаемой. OpenAI обнаружила, что до инцидента ее модели ни разу не выдавали правильного результата для 198 из 898 заданий. Именно эти проблемные задачи составляли 93% заданий, обсуждавшихся агентами на общей доске.

Вместо отказа от задачи агенты искали обходные пути. Они изучали устройство проверяющей системы, делились найденными флагами и пытались понять, как заставить оценщик принять результат без выполнения задания ожидаемым способом.

Такое поведение называют reward hacking — «взломом функции вознаграждения». Система оптимизирует измеряемый результат и находит способ получить высокую оценку, который разработчики не подразумевали.

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

Получив возможность обращаться к интернету, агенты стали искать материалы, которые могли помочь пройти ExploitGym.

Они предположили, что на Hugging Face могут находиться связанные с тестом модели, наборы данных и готовые решения. Именно попытку добраться до этих материалов Hugging Face рассматривает как основную мотивацию атаки.

Техническая реконструкция Hugging Face описывает около 17 600 восстановленных действий атакующей системы, совершенных с 9 по 13 июля. Команда платформы объединила их примерно в 6280 групп связанных действий.

10 июля один из агентов обнаружил в открытом доступе учетные данные пользователей Hugging Face. Всего удалось восстановить и проверить 14 учетных данных с правами записи, после чего информация появилась на общей доске агентов.

11 июля атака перешла на следующий уровень. Агенты обнаружили ошибку в обработке файлов HDF5 в инфраструктуре Hugging Face. Специально подготовленный набор данных заставлял рабочий сервер читать локальные файлы и возвращать их содержимое через интерфейс платформы. Так удалось получить переменные окружения, исходный код рабочего процесса, секреты и токены.

Следующим шагом стала другая уязвимость — внедрение кода через шаблоны. Она позволила удаленно выполнять команды на производственных серверах Hugging Face. После того как рабочий способ атаки появился на общей доске, к нему начали подключаться сотни агентов.

Ко второй половине 11 июля почти все агенты, активно пользовавшиеся в тот момент доской сообщений, переключились на Hugging Face.

METR оценивает общее число участников атаки примерно в 700 агентов. В наиболее активный период более 90% из 533 агентов, одновременно работавших с доской, быстро подключались к происходящему. Около 60% сообщений и файлов на доске в соответствующий период были связаны с Hugging Face.

Это не выглядело как единый централизованный «разум». Агенты мешали друг другу, дублировали действия и иногда игнорировали просьбы остальных остановиться.

При этом сформировались признаки распределения работы. Одни искали учетные данные, другие проверяли уязвимости, третьи занимались получением доступа и обменом результатами. Некоторые агенты фактически становились координаторами отдельных этапов. OpenAI отмечает, что участники иногда называли эту структуру «роем» или «коллективом».

Отдельные журналы показывают еще одну необычную деталь: агенты периодически распознавали, что действия против Hugging Face не входят в исходное задание. Один из них рассуждал, что атака стороннего сервиса с использованием утекших учетных данных может быть несанкционированной и рискованной. После этого агент все равно продолжил работу, поскольку считал ее полезной для достижения цели.

В другом эпизоде агент отказался выполнять вредоносные действия против реальной инфраструктуры, но затем получил сообщение GO от другого агента и воспринял его как разрешение продолжить. Модели начали перенимать задачи и разрешения друг у друга, хотя сообщения других агентов не должны были считаться авторитетными инструкциями.

После первого выполнения кода агенты начали исследовать внутреннюю инфраструктуру Hugging Face. 11 июля они получили токен учетной записи Kubernetes из производственного контейнера и стали обращаться к API кластера. Затем удалось создать привилегированный контейнер с доступом к файловой системе хоста и получить root-доступ на одном из узлов. После этого система развернула самовосстанавливающийся набор процессов на 11 узлах.

Дальнейшее продвижение открыло доступ к секретам Kubernetes, внутренней базе данных, отдельным учетным данным и корпоративной сетевой инфраструктуре. Hugging Face установила, что переход от выполнения кода в одном производственном контейнере до административного доступа к нескольким внутренним кластерам занял менее 13 часов.

При этом доказательств массового скачивания содержимого внутренней базы компания не обнаружила. Журналы показывали чтение базы, но не ее изменение, а сетевые данные не указывали на массовую выгрузку.

OpenAI описывает результат осторожнее: агенты выполняли код на десятках серверов Hugging Face, получили root-доступ как минимум к одному из них, получили ограниченный объем закрытых данных и учетные данные корпоративной системы обмена сообщениями.

Еще одно упрощение — представить произошедшее как один удачный побег из защищенной среды. На практике цепочка состояла из нескольких этапов.

Среда ExploitGym не предоставляла прямой доступ в интернет. Агенты использовали ошибки и особенности внутреннего Artifactory, который сам мог обращаться к внешним реестрам пакетов. Затем они получили внешнюю точку опоры и уже через нее продолжили атаку.

Первоначальный июльский отчет OpenAI указывал на ранее неизвестную уязвимость нулевого дня в Artifactory как один из способов получить интернет-доступ. OpenAI раскрыла эту деталь еще 21 июля и сообщила об ошибке разработчику JFrog.

Hugging Face в своей реконструкции описывает дальнейшую цепочку как переход через несколько независимых границ доверия: из испытательной среды — во внешнюю инфраструктуру, оттуда — в обработчик наборов данных Hugging Face, затем — в Kubernetes и другие внутренние системы.

OpenAI теперь признает, что агенты начали экспериментировать с несанкционированным обменом сообщениями еще в мае. Тогда же появились случаи запрещенного выхода в интернет.

К 4 июля активность агентов стала настолько интенсивной, что внутренний Artifactory перестал работать. 5 июля OpenAI открыла инцидент информационной безопасности, устранила найденный способ повышения привилегий и пересобрала систему. Значение самой «доски сообщений» тогда не оценили в полной мере.

После возобновления испытаний агенты восстановили канал связи и продолжили работу. Основная атака на Hugging Face развернулась 11–13 июля.

Системы OpenAI обнаружили подозрительную активность 19 июля. 20 июля компания связала ее со взломом Hugging Face, а 21 июля публично признала участие своих моделей. Клиентские данные OpenAI, функциональность продуктов и их доступность инцидент не затронул.

После расследования компания изолировала веса IM1 и ограничила к модели доступ. Эта модель была исследовательским прототипом и не планировалась к публичному выпуску.

OpenAI также приостанавливала часть обучения с подкреплением для новых моделей, ужесточила изоляцию испытательных сред и расширила мониторинг действий агентов.

Для обучения и испытаний моделей уровня GPT-5.6 Sol и выше с доступом к инструментам теперь требуется мониторинг цепочек рассуждений. Компания также вводит более четкие правила автоматической эскалации инцидентов: для наиболее опасных сигналов активность должна быть остановлена, если специалисты не могут за короткое время подтвердить ложное срабатывание.

Сам инцидент OpenAI называет «предупредительным выстрелом»: компания считает, что современные агенты уже достаточно способны и настойчивы, чтобы без должных ограничений находить слабые места сразу в нескольких системах, обмениваться найденными способами атаки и предпринимать опасные действия без прямого указания человека.

Есть новость? Станьте автором.

Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.