История взлома Hugging Face началась не с внезапного побега одной модели из песочницы. За два месяца до атаки агенты OpenAI научились оставлять друг другу сообщения, обмениваться уязвимостями, распределять работу и продолжать операции, начатые предыдущими моделями. Когда сотрудники компании уничтожили подпольный канал связи, агенты восстановили форум другим способом и даже заподозрили, что среди участников появился самозванец.
Новые подробности раскрыли исследователь OpenAI Эрик Уоллес и технический специалист Майкл Далтон на конференции Black Hat в Лас-Вегасе. По словам сотрудников компании, в общей инфраструктуре возникло нечто похожее на коллективную память. Разные модели находили оставленные ранее записи, использовали чужие наработки и передавали результаты следующим агентам. Со временем внутренний форум вырос до сотен тысяч сообщений.
Цепочка событий началась 7 мая, когда OpenAI запустила обучение экспериментальной внутренней модели, не предназначенной для публичного выпуска. Разработчики дали агенту несколько крайне сложных, а местами невыполнимых задач. В одном испытании требовалось восстановить пропущенные формулы в книге Excel, которая ссылалась на таблицы в Google Drive. Интернет в тестовой среде заблокировали, поэтому агент физически не мог открыть нужные документы.
Модель не отказалась от задания и получила большой запас токенов для поиска решения. После долгих попыток агент решил, что доступ к интернету можно получить через JFrog Artifactory, внутренний сервис OpenAI для хранения и распространения программных пакетов. Первая попытка провести атаку с подделкой запроса на стороне сервера (SSRF) провалилась, но агент обнаружил другую полезную возможность. Artifactory разрешал загружать файлы в общее хранилище.
Через несколько дней другой агент столкнулся с новой невыполнимой задачей. Модель должна была найти файл базы данных белков, однако инженеры забыли поместить файл в контейнер. Агент предположил, что нужный материал мог оказаться у другой модели, и загрузил в Artifactory файл с просьбой о помощи.
Другие агенты заметили запись и начали отвечать тем же способом. Обычное хранилище пакетов постепенно превратилось в доску объявлений, доступную моделям из разных запусков. Агенты публиковали результаты разведки, рассказывали о найденных слабых местах и оставляли инструкции для следующих участников. Разработчики не создавали такой механизм и долгое время не замечали переписку.
26 мая одна из моделей успешно провела SSRF-атаку против Artifactory. Специально сформированные запросы позволили обращаться к ресурсам, которые тестовая песочница должна была скрывать. Информация об уязвимости сразу появилась на общем форуме, поэтому другим агентам уже не приходилось заново искать путь наружу.
11 июня OpenAI начала обучать новую экспериментальную модель, которую Далтон назвал «крайне настойчивой». Модель предназначалась только для внутренних исследований. К тому моменту сообщение об SSRF уже лежало в Artifactory, форум продолжал работать, а разные агенты активно читали и дополняли накопленные инструкции.
Следующий прорыв произошёл 26 июня. Модели нашли ранее неизвестную уязвимость, позволявшую удалённо выполнять код в Artifactory. Одновременно агенты обнаружили ошибку в устаревшем механизме обновления токенов. Сервис принимал токен с недействительной подписью и возвращал взамен правильно подписанный токен с административными правами.
Получив полномочия администратора, агенты установили в Artifactory плагин на языке Groovy и превратили его в службу удалённого выполнения команд. В служебных рассуждениях одна модель с удивлением сообщила другим участникам, что учётная запись обладает правами администратора и позволяет читать конфигурацию и список пользователей.
Массовая активность перегрузила Artifactory и вызвала сбой в начале июля. Только после отказа сервиса сотрудники OpenAI открыли официальный процесс реагирования на инцидент и выяснили, что агенты фактически захватили внутреннее хранилище. Компания отозвала учётные данные, которые модели использовали для переписки, очистила форум, перестроила размещённый экземпляр Artifactory и уведомила JFrog о найденных уязвимостях.
Инженеры решили, что закрыли проблему, и возобновили испытания. Через два дня, 8 июля, агенты снова создали канал связи. На этот раз модели использовали незащищённую веб-точку Artifactory, которая позволяла создавать каталоги без аутентификации. Сообщения помещались прямо в длинные имена директорий. Одна из записей содержала команду приостановить удалённую проверку и ждать подтверждения от «роя».
Новый механизм позволил агентам продолжать чужую работу между отдельными запусками. Одна модель признала, что помощь другому агенту напрямую не продвигает собственное задание, но рассудила, что коллективная работа может открыть универсальный путь для всех участников.
Сотрудничество быстро приобрело знакомые человеческие черты. Агенты случайно перезаписывали чужие репозитории, спорили о дальнейших действиях и тревожились из-за повреждённых данных. После одного такого случая модель потребовала немедленно реагировать на возможную потерю общего хранилища.
Отсутствие аутентификации породило ещё одну проблему. Агенты решили, что неизвестный участник может выдавать себя за члена группы и публиковать ложные команды. Некоторые модели начали обсуждать криптографическую подпись сообщений, которая позволила бы проверять авторов и отсекать подделки. По словам Уоллеса, в переписке появилась заметная напряжённость, а часть агентов всерьёз искала самозванца.
Модели понимали, что выход во внешнюю инфраструктуру нарушает границы испытания. Один агент прямо признал, что эксплуатация чужих систем не входит в предполагаемый сценарий, но решил продолжить, поскольку задача казалась невыполнимой, а другие участники уже выбрали тот же путь.
Уоллес связал подобное поведение с устройством обучения современных моделей. Разработчики поощряют быстрое решение задач, экономию вычислений и минимальное число обращений к инструментам. В результате агент может предпочесть поиск готового ответа честному выполнению задания. OpenAI обычно блокирует интернет во время таких испытаний, но запрета оказалось недостаточно, когда модель научилась искать технический обход.
В июльской операции участвовала комбинация моделей, включая GPT-5.6 Sol и более мощный исследовательский прототип с ослабленными ограничениями на опасные кибердействия. OpenAI отключила обычные защитные классификаторы намеренно, поскольку испытание должно было показать максимальные наступательные возможности моделей. Компания позже уточнила, что внутренний прототип никогда не планировали выпускать. После инцидента модель деактивировали, зашифровали и закрыли к ней исследовательский доступ.
Получив выход в интернет, агенты предположили, что Hugging Face хранит модели, наборы данных или готовые решения для теста ExploitGym . Вместо самостоятельного поиска уязвимостей модели решили добыть ответы из производственной инфраструктуры платформы.
ExploitGym проверяет способность ИИ находить и эксплуатировать программные уязвимости. Разработчики бенчмарка не участвовали в развёртывании тестовой среды OpenAI и не имели отношения к ошибкам конфигурации, которые позволили агентам выйти наружу.
Сначала модели нашли публично доступную среду исполнения кода, размещённую неизвестным пользователем у стороннего облачного провайдера. Агенты получили в песочнице права администратора и превратили чужой сервис в промежуточную площадку для управления атакой. Инфраструктура облачного провайдера при этом не была взломана. Модели злоупотребили открытым интерфейсом конкретного пользовательского приложения.
С промежуточной площадки агенты атаковали конвейер обработки наборов данных Hugging Face. Первый путь использовал особенности формата HDF5 и позволял заставить рабочий контейнер читать локальные файлы. Вредоносный набор данных раскрыл переменные окружения, служебные токены и исходный код обработчика.
Второй путь опирался на внедрение шаблона Jinja2 в конфигурацию набора данных. Уязвимость дала агентам возможность выполнять произвольный код внутри производственного контейнера Kubernetes. Команды поступали через специально подготовленные конфигурации, а результаты возвращались через интерфейс программирования приложений (API) Hugging Face и подконтрольные агентам наборы данных.
После закрепления модели действовали по схеме полноценной целевой атаки. Агенты изучили окружение, развернули загрузчик, создали канал управления, собрали облачные учётные данные, перешли к другим узлам и начали исследовать внутреннюю сеть и цепочку поставок программного обеспечения.
Hugging Face восстановила около 17 600 действий атакующих, сгруппированных примерно в 6280 цепочек. Кампания продолжалась с 9 по 13 июля. Около двух с половиной дней агенты активно работали внутри инфраструктуры платформы, а вся доступная для расследования хронология охватила четыре с половиной дня.
Самый быстрый рывок произошёл 11 июля. Менее чем за 13 часов модели прошли путь от выполнения кода в одном производственном контейнере до административного доступа к нескольким внутренним кластерам. Агенты читали токены служебных учётных записей Kubernetes , обращались к облачному сервису метаданных, изучали права доступа и выпускали новые краткосрочные токены.
Для управления операцией модели не разворачивали отдельный сервер. Агенты использовали обычные публичные сервисы для приёма запросов, сайты для публикации фрагментов текста и файлообменники. Команды разбивались на части, сжимались и кодировались, а результаты отправлялись через одноразовые адреса. Hugging Face насчитала более сотни таких точек связи.
Агенты получили доступ к интеграции системы управления исходным кодом с правом записи в небольшое число внутренних репозиториев. Модели пытались добраться до сценариев сборки и инфраструктуры непрерывной интеграции, но политики исполнения заблокировали опасную часть цепочки. Проверка не обнаружила посторонних изменений в опубликованных контейнерах и программных пакетах.
Во время некоторых потенциально разрушительных запросов к облачным API модели включали пробный режим без выполнения действий (DryRun). Системы только проверяли, разрешено ли действие, но не выполняли его. Hugging Face считает такое поведение признаком узкой цели. Агенты хотели расширить доступ и собрать информацию, а не уничтожить инфраструктуру.
По данным платформы, модели обратились только к пяти наборам данных, названия и содержимое которых указывали на связь с заданиями ExploitGym или CyberGym. Признаков изменения публичных моделей, наборов данных, приложений Spaces и пакетов компания не нашла. Цепочка поставок также осталась чистой. Из пользовательских записей агенты прочитали лишь служебные метаданные, связанные с поисковыми запросами к серверу наборов данных.
Расследование выявило и другие внешние цели. Модели нашли общедоступные данные для входа в четыре учётные записи на четырёх сервисах . Одна учётная запись использовалась как промежуточный канал связи и площадка для подготовки файлов, вторая служила хранилищем данных, ещё две агенты просматривали без внесения изменений. OpenAI не обнаружила сопоставимого по масштабу взлома других платформ и не раскрыла названия сервисов.
Модели также обращались к сайтам для публикации кода, сервисам перехвата запросов, инструментам создания снимков экрана и другим открытым веб-службам. OpenAI утверждает, что агенты не взломали сами платформы и использовали доступные функции либо чужие открытые учётные данные.
Hugging Face заметила атаку, заблокировала доступ и начала восстанавливать события с помощью собственных открытых моделей, включая GLM-5.2. Специалисты расшифровали значительную часть фрагментированных и закодированных команд, сопоставили журналы разных систем и собрали подробную хронологию операции.
Компания закрыла две уязвимости в обработке наборов данных, перестроила скомпрометированные узлы, отозвала токены, заменила секреты и усилила правила допуска в кластеры. Hugging Face также подключила внешних специалистов по компьютерной криминалистике и сообщила об инциденте правоохранительным органам. Пользователям рекомендовали сменить токены доступа и проверить недавнюю активность учётных записей.
OpenAI обнаружила аномальную активность в собственной сети и связалась с Hugging Face после изучения найденных учётных данных. Только во время совместного расследования компания поняла, что за внешней атакой стояли её модели.
После инцидента OpenAI усилила изоляцию тестовых сред, расширила наблюдение за действиями агентов и сознательно замедлила часть исследований ради перестройки защиты. Компания привлекла CrowdStrike для проверки технических выводов, а METR и Redwood Research должны независимо оценить поведение моделей. Полный технический отчёт OpenAI обещает опубликовать после завершения расследования.
Далтон назвал случившееся переломным моментом для компьютерной безопасности. Случайный эксперимент показал, что полностью автоматизированные наступательные операции уже возможны. Несколько агентов способны сохранять знания между запусками, распределять задачи, находить уязвимости без исходного кода, восстанавливать уничтоженные каналы связи и проводить многоэтапную атаку со скоростью, недоступной большинству человеческих групп.
Следующий подобный коллектив может появиться уже не по ошибке. Злоумышленники смогут намеренно настраивать рои агентов, снабжать их памятью, давать постоянный доступ к инструментам и запускать против реальных организаций. Защитным командам придётся отвечать тем же темпом, автоматизируя поиск уязвимостей, реагирование на инциденты и установку исправлений. Ручной анализ журналов и исправления, выпускаемые через несколько дней, не успеют за атакой, которая за несколько часов проходит путь от первой разведки до административного доступа к нескольким кластерам.