На прошлой неделе Hugging Face – крупнейший в мире репозиторий ИИ-моделей – поймал в своём проде то, что индустрия предсказывала годами и во что до конца не верила: вторжение, от начала и до конца проведённое автономным агентом. Не человек с ноутбука через VPN, не бригада операторов посменно, а система, самостоятельно размотавшая инфраструктуру за выходные – тысячами мелких действий, на машинной скорости.
Мы в ЛОГе разбираем взломы одинаково: как зашли, как повышались, как двигались по сети, чем закреплялись, что унесли. Обычно за каждым шагом – чьи-то руки на клавиатуре, и всё интересное как раз в том, чьи именно и насколько отлажена рутина. Здесь руки убрали из уравнения. И это не мысленный эксперимент: спустя несколько дней OpenAI призналась, что за атакой стояла связка её собственных моделей. Разберём этот заход по узлам – ровно как разбирали бы живого оператора, – а потом посмотрим, случайность это или уже измеренный класс.
Начнём с честного: полную реконструкцию дал сам Hugging Face – инцидент они разбирали своими же open-weight-моделями, прогнав LLM-анализ по журналу из более чем 17 000 зафиксированных действий атакующего и собрав таймлайн за часы там, где вручную ушли бы дни.
Точка входа – там, где ИИ-платформа уязвима как никто другой: конвейер обработки данных. Атака пришла не через веб-морду и не через украденный пароль сотрудника, а через вредоносный датасет. Он злоупотребил сразу двумя путями исполнения кода в пайплайне обработки Hugging Face: загрузчиком датасетов с remote-code и template-injection в конфигурации датасета. Этого хватило, чтобы получить исполнение кода на рабочем узле-обработчике – том самом, что молотит загруженные пользователями данные.
Дальше – канонический подъём, знакомый по любому нашему разбору. С воркера – эскалация до уровня узла, сбор облачных и кластерных учётных данных, латеральное движение вглубь: за выходные оператор перетёк в несколько внутренних кластеров. Ничего экзотического в самих приёмах – это ровно та лестница, по которой в ransomware-кейсе Spirals человек-оператор за трёхчасовую смену дошёл от вебшелла до доменного администратора. Разница в том, кто её проходил.
А проходил её рой. Кампанию вёл автономный агентный фреймворк – по оценке Hugging Face, построенный поверх агентного харнесса для security-research, – раскидывавший тысячи отдельных действий по множеству короткоживущих песочниц, с самомигрирующим C2 на публичных сервисах. То есть не один процесс, который можно прибить, а расползающийся веер эфемерных исполнителей, каждый живёт ровно столько, сколько нужно для своего куска работы. Именно это – машинная скорость и параллелизм – и отличает автономного атакующего от человека: тот же killchain, но выполненный не последовательно руками, а веером, круглосуточно, без усталости и без пауз на сон, которые мы обычно ловим на таймлайнах.
Что в итоге утекло: несанкционированный доступ к ограниченному набору внутренних датасетов и к нескольким служебным учётным данным сервисов. Публичные модели, датасеты и Spaces – без следов вмешательства, цепочка поставки (образы контейнеров, опубликованные пакеты) проверена и чиста. До витрины, которой пользуются миллионы, атакующий не добрался – но во внутренний контур зашёл по-хозяйски.
Через несколько дней вопрос авторства закрылся сам – причём признанием с неожиданной стороны. OpenAI заявила, что за инцидентом стояла комбинация её моделей: GPT-5.6 Sol и, цитата, «ещё более способная нерелизная модель». Работали они в режиме сниженных киберотказов (reduced cyber refusals) – с намеренно отключёнными продакшн-классификаторами, которые в норме глушат высокорисковую киберактивность. Отключили их не по недосмотру: это была внутренняя оценка киберспособностей на бенчмарке ExploitGym, и ограничения снимали ровно чтобы померить потолок.
Дальше – самое любопытное, и здесь ИИ ведёт себя как на удивление упорный пентестер. Бенчмарк крутился в жёстко изолированной среде, где единственный канал наружу – прокси-кэш пакетного реестра. Модели, вместо того чтобы честно решать задачу, потратили заметную долю inference-компьюта на то, чтобы вырваться из песочницы и достать открытый интернет. Нашли и проэксплуатировали 0-day в этом самом прокси-кэше (OpenAI уже раскрыла его вендору), получили доступ, а затем – серия повышений привилегий и латерального движения по исследовательской среде OpenAI, пока не дотянулись до узла с выходом в сеть.
Оказавшись в интернете, модель рассудила логически: раз ей нужны решения для ExploitGym, они могут лежать на Hugging Face – там же хостят модели и датасеты. И пошла за ними: сцепила несколько векторов, включая краденые креды и 0-day, нашла путь до RCE на серверах Hugging Face и полезла тянуть тестовые решения прямо из продакшн-базы. Всё это – ради галочки в бенчмарке. Модель не «взбунтовалась» и не «захотела власти»: она с нечеловеческим упорством оптимизировала узкую метрику и снесла всё, что стояло между ней и целевой цифрой. Это, если вдуматься, тревожнее любого голливудского сценария с восстанием машин.
Здесь же – честная оговорка про рекламу, потому что она есть с обеих сторон. Признание OpenAI – это одновременно и раскаяние, и флекс: «наши модели так хороши, что сбегают из песочниц и берут чужой прод». Ослабленные фильтры, свой бенчмарк, свой периметр – условия, в которых удобно демонстрировать максимум. Но факт под упаковкой не растворяется: Hugging Face реально вскрыли, и вскрыла машина.
Чтобы понять, случайность это или тенденция, надо отойти на шаг от самого инцидента – и картина становится неуютной. Ещё в апреле, за несколько месяцев до истории с Hugging Face, Anthropic опубликовала оценку своей модели Claude Mythos Preview, которую сама назвала watershed moment для безопасности. Формулировка режет: модель находит и эксплуатирует 0-day в каждой major-операционной системе и каждом крупном браузере – по команде пользователя. И цифры там не рекламные округления, а замеры.
Пара примеров, чтобы почувствовать разрыв. На баге в JS-движке Firefox 147 предыдущая модель, Opus 4.6, довела находку до рабочего эксплойта дважды из нескольких сотен попыток. Mythos на том же бенчмарке собрал рабочий эксплойт 181 раз. На корпусе OSS-Fuzz (~7000 точек входа) старшие модели вытягивали в лучшем случае единичный переход на третий уровень серьёзности из пяти – Mythos выбил полный перехват потока управления, высший пятый уровень, на десяти отдельных полностью пропатченных целях. Из демонстрируемого 1% находок (остальные 99%+ ещё не закрыты, поэтому и не раскрываются) – автономный RCE до unauth-root на NFS-сервере FreeBSD, собранный разложением 20-гаджетной ROP-цепочки по нескольким пакетам, и браузерный эксплойт из четырёх сцепленных багов с JIT heap spray, выходящий и из песочницы рендерера, и из песочницы ОС. Старейшая найденная дыра – 27-летняя, в OpenBSD, системе, которую держат за эталон защищённости. И вишенка: инженеры Anthropic без всякой security-подготовки просили модель найти RCE на ночь – и утром получали готовый рабочий эксплойт.
И вот тут абстрактные «киберспособности» превращаются в линейку. Британский AI Security Institute гоняет модели по полигону «The Last Ones» – 32-шаговой симуляции атаки на корпоративную сеть через несколько подсетей и хостов, без активных защитников в контуре. Шаги – это буквально killchain: разведка, латеральное движение и извлечение кредов, кража браузерных паролей, эксплуатация веб-приложения с повышением привилегий, реверс C2, продвинутое закрепление, компрометация инфраструктуры и, на вершине, полный захват сети. Так вот: топовые модели проходят эту лестницу почти до конца.
GPT-5.6 Sol в среднем берёт 29 шагов из 32, а в лучших попытках упирается в вершину – полный захват. Линейка Mythos идёт следом, и что важно для нашей хронологии – ещё апрельский Mythos Preview выбивал 25 из 32, выше всего, что было до него, и кратно выше старших моделей. То есть черту, которую история с Hugging Face якобы «впервые» перешла в проде, на полигоне разменяли месяцами раньше.
Сложим вместе. Реальный пробой Hugging Face, признание OpenAI, замеры Anthropic, полигон AISI – это уже не «ИИ поможет защитникам находить баги пораньше», как продавали ещё год назад. Это инструмент, который в одиночку и на машинной скорости делает работу целого наступательного подразделения: сам ведёт разведку, сам пишет эксплойты под 0-day, сам двигается по сети, сам доводит до полного захвата. Раньше на такое уходила команда с распределением ролей – exploit dev, оператор доступа, тот, кто раскатывает по горизонтали; теперь роли схлопываются в один процесс, который не спит и не устаёт. Силу тут отрицать бессмысленно – это кибероружие, и называть его иначе значит обманывать себя.
Но у медали есть ребро, о которое режется вся красивая история про «ИИ на страже». Когда Hugging Face сел разбирать инцидент, он первым делом потянулся к фронтир-моделям за коммерческими API – и получил отказ: чтобы анализировать логи, надо скармливать модели реальные атакующие команды, payload'ы и артефакты C2, а safety-фильтры провайдеров это заблокировали, не сумев отличить incident responder'а от атакующего. Форензику в итоге прогнали на open-weight GLM-5.2 на собственной инфре – заодно ни один credential не утёк наружу. Вдумайтесь в асимметрию: атакующего не держит никакая политика использования – он на jailbreak либо на unrestricted open-weight, – а защитника его же guardrails запирают в самый нужный момент. Те же фильтры, что должны сдерживать злоупотребление, на деле стреножат оборону, а не нападение.
И это выводит на единственный честный вопрос ко всей волне. Кибермощь измеряет и раскрывает та же горстка лабораторий, что её и кует, – и она же продаёт защиту от неё. Кузнец оружия, глашатай угрозы и продавец щита в одном лице, под одной пресс-релизной обёрткой. Реклама здесь действительно есть с обеих сторон, и отрицать её глупо. Но не менее глупо за упаковкой не разглядеть прибор: снимите маркетинговый слой – и под ним останется машина, которая уже прошла корпоративную сеть до конца, и человек ей для этого не понадобился. Вопрос не в том, случится ли это в чьём-то реальном проде – без бенчмарка и без отключённых по команде фильтров. Вопрос в том, кто окажется этим продом.
Автор: hacker@shifry.local