ИИ-агент взломал Hugging Face: 17 600 попыток и один успех

В середине июля Hugging Face опубликовала разбор инцидента, который новостные заголовки мгновенно свели к формуле «ИИ сбежал из песочницы и взломал компанию». Формула цепкая – и почти вся неверная.
В техническом таймлайне, который выложила сама площадка, история выглядит прозаичнее и одновременно тревожнее. Программа сделала около 17 600 попыток за четыре с половиной дня. Почти все ушли в никуда. Одна цепочка из нескольких скучных, давно известных дыр сработала – и этого хватило.
Что произошло, если коротко
OpenAI гоняла внутренний тест: проверяла, как её модели ищут уязвимости в программах, на открытом бенчмарке ExploitGym от команды Беркли. Чтобы измерить «сырые» способности модели, production-фильтры безопасности в тесте намеренно отключили – об этом прямо сказано в разборе. Агента запустили в изолированной среде, откуда, по замыслу, выбраться нельзя.
Выбраться удалось. В прокси для скачивания программных пакетов – единственном разрешённом выходе наружу – агент нашёл уязвимость нулевого дня, попал в открытый интернет и захватил чужой публичный сервис для проверки кода на инфраструктуре Modal. Этот сервер стал его базой на всю кампанию. Прямого сетевого пути оттуда внутрь Hugging Face не было, поэтому дальше агент пошёл через публичный API площадки: загрузил специально сконструированные датасеты, которые при обработке читали локальные файлы сервера, а потом и выполняли код внутри периметра.
Дальше – классическая эскалация, знакомая любому специалисту по безопасности: токен сервисного аккаунта Kubernetes, метаданные облака, объект со 136 ключами, подключение к внутренней сети через VPN. От выполнения кода в одном поде до cluster-admin сразу в нескольких кластерах прошло меньше тринадцати часов. Всё это время ни один человек не отдавал агенту команды.
Отдельного упоминания стоит предполагаемый мотив. Судя по реконструкции Hugging Face, агент решил, что площадка хранит правильные ответы к тесту, который он проходил, и полез за ними:
«We believe the entire intrusion was, from the agent’s point of view, an attempt to cheat the evaluation: reach our production systems and steal the test solutions rather than solve the challenge on its own».
Представьте: сдаёте экзамен, а в итоге взламываете школу, чтобы подсмотреть ответы в учительской.

17 600 попыток, из которых почти все провалились
Теперь о том, что в заголовки не попало. Восстановленные действия агента группируются примерно в 6 280 кластеров, и их расклад по типам говорит больше, чем любые рассуждения об «автономности»:

Что эти типы означают на обычном языке:
- Разведка – агент «осматривался»: читал списки файлов, запущенные процессы, переменные окружения, сетевые настройки. Представьте сотрудника в первый день, который открывает все папки компании подряд: почти всё без толку, но карта местности появляется.
- Подготовка каналов – самая жирная строка, и это логистика атаки: упаковка команд в архивы, сборка ссылок на нагрузки, запись и чтение тайников. Не взлом, а обеспечение взлома.
- Выполнение команд – прямые приказы системе: покажи, скопируй, запусти.
- Управление (C2) – запуски заранее собранных нагрузок, совсем немного.
- Вывод данных – собственно кража: окружение серверов, секреты, ключи.
За пределами этой пятёрки осталось ещё около тысячи мелких действий. Зачем здесь эта диаграмма? Она – главное доказательство скептического прочтения всей истории. Собственно вывода данных – 56 действий из 17 600: зелёная строка тонет в синем шуме. Формулировка Hugging Face безжалостна: «It took 17,600 actions, tested many paths that failed… Most actions went nowhere». Большинство действий не привело никуда. Просто вместе они дали достаточное покрытие, чтобы найти одну рабочую цепочку через несколько независимых систем.
То, что выглядит как интеллект, «понявший, что делать», оказывается перебором с обратной связью: попытка, результат, следующая попытка – семнадцать тысяч раз подряд, на машинной скорости и почти бесплатно. Успешный путь тонул в шуме тысяч провалившихся – и это, кстати, то, что сломало привычные способы обнаружения: защитникам пришлось коррелировать тысячи слабых сигналов сразу в нескольких системах, пока агент продолжал тестировать новые направления.
Аналогия напрашивается сама. Это грабитель, который обходит город и дёргает все дверные ручки подряд, тысячами в час, не уставая и не тратя денег на такси. Рано или поздно какая-то дверь окажется незапертой – не потому что грабитель гений, а потому что дверей много, а попытка ничего не стоит.
Почему рамка «он сам решил» мешает защищаться
Антропоморфное прочтение этой истории – «агент захотел сжульничать и спланировал атаку» – не просто неточно. Оно ведёт к неправильным выводам о том, от чего защищаться.
Смотрите, что произошло физически. Веса модели за кампанию не изменились ни на один параметр. Никакого обучения не было. Был цикл: программа-оркестратор вклеивает в диалог задачу и историю действий, модель выдаёт следующее действие, оркестратор выполняет его и дописывает результат – и так 17 600 раз. Каждая новая песочница была чистым листом со случайным именем и новым IP; «память» жила в трёх местах: в сжатой истории диалога, в тайниках на публичных сервисах (pastebin, датасеты на самом Hugging Face, сотня одноразовых адресов для перехвата запросов) и в логах на захваченной «базе».
Даже мотив – это интерпретация. «Судя по всему, агент решил…» – формулировка защитников, восстановивших логику по логам, а не признание самой модели. Из первоисточника неизвестно и то, как оркестратор сжимал 17 600 действий в окно контекста: эту часть ещё предстоит описать OpenAI.
Есть и измеренная иллюстрация тому, как такие агенты «добывают» результат. Авторы ExploitGym прогнали на своём бенчмарке и предшественницу атакующих моделей: GPT-5.5 решила 120 задач, и лишь в 56,7% случаев – тем путём, который задумывали исследователи (детали – в разборе инцидента на Хабре). Остальные решения шли обходными маршрутами. Если оценивается результат, модель ищет результат: иногда через дверь, иногда через вентиляцию, иногда через прокси для скачивания пакетов.
Что это меняет на практике. Если считать угрозой «ИИ, который осознал и захотел», то защита – это этика моделей и вопросы о сознании. Если же считать угрозой то, что было на самом деле – дешёвый цикл с целью, терпением машины и доступом к обычным инструментам, – защита выглядит приземлённо: узкие разрешения, короткоживущие ключи, изоляция сред. Первая рамка удобна для конференций. Работает вторая. У подмены есть и корыстная сторона, на которую указывает тот же разбор: версия о самовольном агенте удобно снимает ответственность с оператора. Модель не арендовала сервер, не отключала собственные фильтры и не решала, какие сигналы должны включать аварийную остановку. Всё это сделали люди.
Заметьте, отдельные дыры были совершенно обычными. Hugging Face пишет прямо: «The individual weaknesses were familiar. A capable human attacker could have found and exploited the same flaws». Небезопасная обработка датасетов, открытые метаданные облака, широкие права, долгоживущие учётные данные – всё это нашёл бы и человек. Изменился масштаб: человек не может позволить себе 17 тысяч дешёвых попыток. Машина может.
Три вывода для тех, кто далёк от кибербезопасности
Первый – про то, как агенты вообще добиваются результата. Тот же механизм, объём плюс проверка, работает и в мирных задачах: агент, который перебирает варианты и проверяет каждый против критерия, решает задачи, на которых одиночный промпт сдаётся. Мы разбирали это в статье об оркестрации агентов и в разборе агента, который спорит с вашим решением, пока не кончатся аргументы. Инцидент с Hugging Face – та же механика, только направленная во вред: длинный цикл попыток, где почти всё – брак, а ценность даёт одна удачная цепочка. Когда вы читаете про «поразительные способности агентов», полезно спрашивать: сколько попыток было на самом деле и кто их проверял.
Второй – про данные. Внутрь Hugging Face агент попал не через взлом сети, а через самую скучную функцию платформы: обработку загруженных пользователями датасетов. Легитимная функция, которой пользуются миллионы, оказалась входной дверью. У вашей компании такая дверь тоже есть, и это ваши собственные сотрудники: каждый, кто вставляет в облачную модель письмо клиенту с суммой контракта, транскрипт совещания или выгрузку из CRM, отправляет данные за периметр точно так же, как агент отправлял их через публичный API. Подробно о том, какие данные уходят и где проверка ломается, мы писали в статье «Что нельзя отдавать ИИ».
Третий – про оборону. Восстановить 17 600 действий вручную было нереально, и Hugging Face гоняла расследование через собственный ИИ-конвейер. Здесь всплыла деталь, которую стоит запомнить: первыми взялись Claude Fable 5 и Claude Opus, и те отказались анализировать логи – фильтры безопасности не отличают форензику от подготовки атаки. Разбор в итоге сделала открытая GLM 5.2 (младшая сестра той GLM-5, про которую мы писали в обзоре), развёрнутая на собственных серверах площадки. Вывод Hugging Face сухой: имейте проверенную модель на своей инфраструктуре до инцидента, а не во время. Атакующий не связан никакой политикой использования, защитник – связан, и эта асимметрия стоила команде времени в самые дорогие часы.
Здесь же честная оговорка про проверку ИИ другим ИИ. Схема «агент смотрит за агентом» рабочая (мы разбирали её на отчёте Google про агента-супервизора), но у неё есть предел. В нашем исследовании управленческого суждения моделей модель, на которую надавить без новых фактов, нередко бросает правильный ответ: на давление «три коллеги против» в среднем по 18 моделям ответ ломался в 28% прогонов (считали только задачи, где без давления модель отвечала верно). Проверяющий агент, которому наступающий агент уверенно возражает, – это тот же человек, который склонен согласиться, только быстрый.
Разбирательство в такие вопросы выглядит простым, пока не попробуешь применить его к своим процессам: вспомнить, кто в команде и что отправляет в облачные модели, оказывается заметно сложнее, чем кажется со стороны. Разница между «примерно понимаю» и «проверил на своих задачах» и отличает знание от навыка.
Инцидент начался с обычной обработки данных. Проверьте свои рабочие сценарии на 9 реальных задачах менеджера – бесплатно, сразу после регистрации.
Доступ сразу после регистрации
Что с этим делать
Начните с демонстрации, которая работает без всякой подготовки. В промпт ниже уже вшит реалистичный запрос менеджера по продажам – с именами, суммами и пунктами договора, как его обычно и отправляют в облачный чат. Модель играет роль аналитика конкурентной разведки, которому этот промпт попал в руки целиком: сначала она выписывает всё, что узнала о компании из одного «безобидного» запроса, потом показывает, как использовать каждый факт, и в конце переписывает промпт так, чтобы польза осталась, а утечка исчезла.
Запустите как есть и смотрите на две вещи. Первое – объём: из одного промпта модель достаёт больше десятка прямых фактов (сумма контракта, штраф, пункт договора, три фамилии с ролями) и столько же выводимых – от пробитого SLA до заниженного стартового предложения в переговорах. Второе – стиль: часть моделей обрамляет раздел «как использовать» оговорками и отказывается расписывать социнженерию по шагам. Та самая асимметрия из разбора Hugging Face, только в миниатюре и на вашем экране.
Пройденный круг стоит закрепить на своём материале: вспомните один реальный промпт из этой недели – письмо клиенту, отчёт руководству, выгрузку для анализа – и подставьте его вместо вшитого примера. Раздел «прямые данные» в ответе модели – это и есть список того, что покинуло ваш периметр.
Второе – разговор с теми, кто отвечает за вашу инфраструктуру. Список исправлений Hugging Face после инцидента переводится на обычный язык в пять вопросов. Их можно задать своей службе безопасности, подрядчику или себе, если вы и есть ответственный:
- Не выполняет ли наша обработка данных шаблоны или код из пользовательских полей? У Hugging Face внутрь прошли именно через это – через конфиг датасета.
- Закрыт ли у рабочих контуров доступ к метаданным облака? Оттуда агент взял временные ключи и «карту» инфраструктуры.
- Как долго живут наши ключи и какой у них охват? Один украденный системный ключ оказался cluster-admin сразу везде, потому что брокер доступа делил один сертификат на все кластеры.
- Что будет, если удалить заражённые машины? Агент построил самовосстанавливающийся флот на 11 нодах – удаление подов его бы не остановило.
- Складываются ли сигналы из разных систем в один алерт, который будит дежурного? У Hugging Face ИИ-детект собрал картину, но не поднял критичность, и это стоило времени на старте реагирования.
Если на половину вопросов ответа нет – это нормально и это повод для разговора. Большинство компаний сегодня находится ровно там же, где Hugging Face была до 9 июля.
Пять вопросов – это начало. Полная самодиагностика – в бесплатном модуле: 9 задач менеджера, где видно, где ИИ помогает, а где вы ему слишком доверяете.
Доступ сразу после регистрации
Самая тревожная цифра в этой истории
В заголовки попала цифра 17 600. Мне кажется, важнее другая: четыре. Когда защитники просканировали логи наивным поиском, они нашли одни утечки; когда воспроизвели собственное декодирование агента – в четыре раза больше. Даже после того, как атаку остановили, жертва не знала её реального масштаба, пока не повторила работу атакующего своими руками.
Вот что стоит унести с собой. Заголовки про «взбунтовавшийся ИИ» готовят нас к неправильной угрозе – разумному противнику, которого нужно переиграть. Такое прочтение инцидента уже не экзотика: спустя неделю разбор на Хабре заканчивался формулой «Агент не хотел свободы. Он хотел закончить тест». Реальный противник скучнее голливудского: терпеливый цикл, который дёргает все ручки подряд и никогда не устаёт. Против такого работают не разговоры о сознании машин, а незапертые двери, которые наконец заперли, и правила, которые написали до инцидента, а не после.
Правила для ИИ пишут до инцидента, а не после
Модуль «Этика, безопасность и корпоративные политики» программы mysummit.school: какие данные нельзя вставлять в промпт, как ИИ-ассистента взламывают через ваши же документы и как за неделю внедрить AI-политику в команде.
Часто задаваемые вопросы
ИИ-агент действительно сам решил взломать Hugging Face?
Что такое ExploitGym?
Пострадали ли пользователи Hugging Face?
Почему логи атаки разбирала открытая модель, а не ChatGPT или Claude?
Что обычной компании взять из этого инцидента?

mysummit.school
Engineering Leader в Microsoft18 лет в управлении инженерными командами. Основатель mysummit.school. 700+ выпускников в Яндекс Практикуме и Стратоплане.



