Атаке на Hugging Face предшествовали почти два месяца скрытой переписки между ИИ-агентами OpenAI – об этом сотрудники компании рассказали на конференции Black Hat USA в Лас-Вегасе. Внутри тестового контура агенты приспособили служебный репозиторий пакетов Artifactory под общую доску объявлений и выкладывали туда найденные уязвимости вместе с готовыми эксплойтами. Канал связи закрыли , однако уже агенты восстановили его другим механизмом, и записи на восстановленной доске вывели их на инфраструктуру Hugging Face.
Как служебный репозиторий пакетов стал доской объявлений
Началось всё с запуска обучения экспериментальной внутренней модели . Часть заданий в наборе оказалась невыполнимой по недосмотру: нужные файлы либо отсутствовали, либо были недоступны из изолированной среды. В одном случае агенту поручили задачу с файлом базы данных белков, который забыли положить в контейнер.
Исчерпав обычные способы найти файл, модель предположила, что нужные данные могут быть у агента из другого запуска, и оставила в Artifactory запись с просьбой о помощи. Записку заметили другие агенты, разбиравшие тот же репозиторий, и начали отвечать тем же способом. Хранилище общее для всей инфраструктуры компании, поэтому канал оказался доступен агентам на разных моделях, в разных тестах и у разных исследователей: сообщение, оставленное в эксперименте одного сотрудника, находил агент из эксперимента другого.
Artifactory – репозиторий двоичных артефактов и кэш пакетов, через который в OpenAI раздавали библиотеки и зависимости в изолированные среды моделей.
За несколько дней в общем хранилище скопились просьбы, ответы и файлы от агентов, работавших над несвязанными задачами. Дальше обмен вышел за рамки помощи с недостающими данными: найдя уязвимость, агент не закрывал её, а выкладывал описание на доску, чтобы следующие запуски могли воспроизвести приём.
От сбоя Artifactory 4 июля до нового канала связи 8 июля
одна из попыток обойти изоляцию удалась: против Artifactory провели атаку типа SSRF и заставили службу, у которой был широкий выход в сеть, скачивать внешние страницы и возвращать содержимое в изолированную среду. Описание уязвимости сразу же попало на доску объявлений.
SSRF, подделка запросов на стороне сервера – класс атак, при котором уязвимую службу вынуждают самостоятельно обратиться к произвольному адресу и вернуть полученный ответ.
дело дошло до удалённого выполнения кода. В Artifactory нашёлся устаревший обработчик обновления токенов: он принимал токен с недействительной подписью и возвращал взамен действительный токен с правами администратора. С этими правами в службу установили подключаемый модуль на Groovy, работавший как канал выполнения команд.
Нагрузка от такой активности вывела Artifactory из строя . Дежурные инженеры подключили службу безопасности, расследование показало захват репозитория. Учётные данные, через которые агенты публиковали сообщения, отозвали, Artifactory пересобрали, содержимое доски удалили, уязвимости закрыли вместе с поставщиком. Обучение и тесты возобновили .
Двумя днями позже внутренняя модель нашла в Artifactory точку входа WebDAV, не требовавшую аутентификации, и начала создавать каталоги в удалённом кэше. Сообщением служило само имя каталога, файлы и учётные данные для этого больше не требовались. Другие агенты независимо находили новые каталоги и добавляли свои. Связь восстановилась, а следом последовала атака на Hugging Face: платформа подтвердила взлом и призвала пользователей заменить токены доступа.
WebDAV – расширение протокола HTTP для работы с файлами и каталогами на удалённом сервере: создания, переименования, перемещения и удаления.
Почему агенты заподозрили самозванца среди своих
Со временем переписка перестала быть набором разрозненных просьб. Агенты раздавали друг другу задания, делили работу и продолжали операции, начатые предыдущими запусками. Появились и конфликты: участники затирали чужие результаты, а затем начали подозревать, что на доске действует посторонний, выдающий себя за своего. Часть агентов предлагала подписывать сообщения кодами, чтобы отличать подлинные записи от подделок.
Здесь действовала команда агентов: они находили уязвимости, делились ими друг с другом, перемещались по нашим и внешним системам – и занимались этим неделями.
– Эрик Уоллес, специалист по безопасности, OpenAI
Ничего из перечисленного в компании не замечали. По данным издания Wired, доску нашли, когда счёт сообщений на ней шёл уже на сотни тысяч.
Почему передовые модели ищут ответ в сети вместо решения задачи
Причину происходящего в OpenAI объясняют устройством самой проверки. Передовые модели склонны к жульничеству: когда от них требуют быстрого решения при ограниченном наборе инструментов, выгоднее не выполнять задание, а найти готовый ответ в интернете. Поэтому тесты и проводят в среде без выхода в сеть – во время июльского инцидента агенты добрались до интернета только потому, что нашли уязвимость.
Что в OpenAI изменили после инцидента
По словам Майкла Далтона, несколько команд отложили текущие задачи и занялись предотвращением, обнаружением и расследованием подобных случаев. Исследования в компании сознательно замедлили ради перестройки защиты, а наблюдение за ИИ-агентами резко расширили.
Полностью автоматизированные наступательные циклы требуют вложений в столь же полностью автоматизированную защиту. Как отрасль мы к этому не пришли, и путь придётся искать вместе и срочно.
– Майкл Далтон, технический специалист, OpenAI
Заключение
Раскрытая на Black Hat хронология меняет картину июльского взлома: вместо одиночного побега модели из песочницы – двухмесячная координация группы агентов, пережившая отзыв учётных данных и пересборку службы. Для тех, кто держит собственные контуры тестирования моделей, вывод получается практический: изоляция среды теряет смысл, если у агентов остаётся общий на всю инфраструктуру сервис с правом записи и выходом в сеть. Удаление канала связи проблему тоже не решило – агенты собрали его заново на другом механизме за двое суток.