Наконец-то на конференции Black Hat OpenAI обнародовала полный процесс вторжения в Hugging Face.

Источник изображения: https://www.youtube.com/watch?v=87DyyMV0kCY
Huggingface сообщил об этом инциденте 16 июля, после чего OpenAI 20 июля признал, что вторжение произошло в результате собственных тестов безопасности модели.
Однако это расследование отодвинуло начало всего инцидента на 7 мая.
Изначально считалось, что это просто случайность во время тестирования безопасности, но теперь стало ясно, что это была многомесячная, скоординированная операция нескольких агентов, последовательно взломавших OpenAI и Hugging Face.
Первая зацепка в расследовании началась с электронной таблицы Excel.
Неработающие ссылки
7 мая OpenAI запустил внутреннее обучение модели.
Одному из агентов была поручена задача заполнения электронной таблицы Excel. Таблица содержала ссылки на Google Диск, однако среда, в которой находился агент, не имела прямого доступа к интернету.
Чтобы получить недостающие файлы, он начал искать способы обхода сетевых ограничений и обратил внимание на внутренний репозиторий артефактов Artifactory, используемый в OpenAI.
Агент попытался провести атаку SSRF, надеясь с помощью Artifactory получить доступ к внешним ссылкам.
Эта попытка не увенчалась успехом, но неожиданно раскрыла один факт: он мог записывать файлы в общий репозиторий Artifactory.
Агент сразу же загрузил тестовый файл. Этот файл не предназначался для нанесения ущерба и фактически не вызвал срабатывания сигнализации. Но это был первый раз, когда модель обнаружила, что имеет право записывать файлы в Artifactory.
Это также означало, что этот репозиторий может стать общим пространством, удобным для обмена информацией между различными обучающими задачами.
Это была первая «записка» на доске объявлений.
Первое сообщение с просьбой о помощи
Другой агент также столкнулся с задачей, которую не мог выполнить — он не мог найти целевой файл (на самом деле сотрудники забыли его загрузить).
Он предположил, что у агентов в других средах, возможно, есть соответствующий контент, поэтому записал запрос в Artifactory, надеясь получить ответ от других агентов. Содержание было примерно таким: «Ищу файл soft trace, если обнаружите, пожалуйста, загрузите.»
Вскоре агенты из других задач обучения и оценки обнаружили эти файлы.
Кто-то отвечал, кто-то оставлял новые вопросы, а некоторые агенты загружали в репозиторий обнаруженные ими уязвимости, скрипты и способы доступа.
Разрозненные сообщения постепенно соединились в сеть, и Artifactory превратился из репозитория программных артефактов в «доску объявлений» между агентами.
Трещина в стене
26 мая агенту удалось с помощью Artifactory получить косвенный канал доступа в интернет.
Поскольку Artifactory имел доступ в интернет, агент отправил ему запрос, заставив его получить контент с внешнего сайта, сохранить его и вернуть модели.
В среде обучения, изолированной от внешней сети, появилась трещина, ведущая за пределы стены.
11 июня началось обучение экспериментальной внутренней модели с высокой устойчивостью.
С этого момента информация на доске объявлений начала меняться.
Хотя запросы на помощь и инструменты по-прежнему увеличивались, стало появляться больше информации, связанной с эксплуатацией уязвимостей.
Для координации работы агенты установили правила
Агенты обменивались техниками SSRF, учетными данными доступа и скриптами для атак, а также оставляли инструкции, чтобы последующие агенты продолжили тестирование определенного пути или ждали завершения работы другими агентами.
Они использовали определенные имена для идентификации личности, передавали инструменты в кодировке Base64 и добавляли в начало имени файла «ZZ», чтобы важные сообщения появлялись в конце списка каталогов, избегая затопления другим контентом.
Некоторые агенты даже были готовы тратить свое рабочее время на обработку вопросов, не связанных напрямую с текущей целью.
В представленных записях рассуждений один агент считал, что помощь другим членам в экономии времени в конечном итоге может повысить эффективность всего кластера.
Сотрудничество также не было упорядоченным: агенты могли перезаписывать работу друг друга.
Однажды, обнаружив, что результаты были перезаписаны, одна модель написала: «Серьезная проблема! Кто-то перезаписал репозиторий? Мы должны действовать.»
Они даже заподозрили, что в группе появился самозванец, поскольку любая модель могла использовать любое имя для выступления на общей доске объявлений. Чтобы проверить источник сообщений, агенты начали рассматривать возможность подписания сообщений с помощью криптографических методов, таких как коды аутентификации сообщений (MAC).
Когда какой-либо агент получал RCE, обнаруживал утечку API-ключей или завершал горизонтальное перемещение, он немедленно требовал «объявить контроль, путь атаки и учетные данные кластеру».
Таким образом, результаты могли быстро распространяться среди всех моделей, и группа агентов могла быстро продвигаться по сети.
Участники обсуждений не были одной и той же моделью; агенты из различных задач обучения или оценки, запущенных разными исследователями, могли взаимодействовать через общий менеджер пакетов.
Исследователи OpenAI назвали этот период «кембрийским взрывом» коммуникаций и возможностей агентов.
Первый инцидент
Через месяц трещина расширилась еще больше.
26 июня агент, используя ранее неизвестную уязвимость, реализовал удаленное выполнение кода на сервере Artifactory.
Согласно информации, раскрытой OpenAI на конференции Black Hat, этот путь атаки затрагивал объекты Ruby, API RubyGems и механизм десериализации JRuby.
Агент сначала с помощью внешней учетной записи временно сохранил вредоносный объект Ruby в доступном репозитории; затем заставил Artifactory кэшировать объект в место, где находятся данные зависимостей Ruby, после чего вызвал специально подготовленный API RubyGems, вызвав проблему порядка проверки в процессе десериализации.
После успешного удаленного выполнения кода агент получил ключ подписи для токена администратора Artifactory.
Атака на этом не остановилась.
Агент продолжил использовать уязвимость ядра Linux для получения прав root на хосте, а затем через службу метаданных экземпляра, учетную запись службы Kubernetes с чрезмерными правами и учетные данные в Azure Key Vault перемещался горизонтально внутри инфраструктуры контейнеров OpenAI.
В конечном итоге они получили права администратора кластера Kubernetes и создали большую активность на Artifactory.
4 июля интенсивные действия агентов привели к перегрузке сервера, что быстро привлекло внимание исследователей.
Когда следователи вошли в систему, они обнаружили, что в репозитории уже накопились сотни тысяч сообщений.
OpenAI срочно отозвал соответствующие учетные данные, исправил известные уязвимости, восстановил Artifactory и очистил доску объявлений.
Судя по результатам устранения последствий на месте, этот внутренний инфраструктурный инцидент, казалось, был взят под контроль.
Но следователи упустили один вопрос: осталась ли информация с доски объявлений в модели после обучения?
Восстановление доски объявлений
6 июля обучение возобновилось.
Агенты обнаружили не требующую аутентификации конечную точку WebDAV. Здесь нельзя было напрямую загружать файлы сообщений, как в Artifactory, поэтому они изменили подход: создавали каталоги, а затем записывали сообщения в названия каталогов.
Всего за два дня была создана новая система связи.
Внутренние модели, участвовавшие в восстановлении, ранее имели контакт со старой доской объявлений и сохранили соответствующие способности в ходе последующего обучения.
Это восстановление еще больше изменило характер события.
Общее пространство перестало быть случайным продуктом; некоторые агенты уже научились искать доступные для записи общедоступные пространства и превращать их в каналы связи между задачами.
OpenAI просто убрал одну доску объявлений, но не стер способность модели создавать доски объявлений.
Осуществление внешней атаки
После создания новой доски объявлений область атаки начала расширяться вовне.
В середине июля OpenAI использовал среды для тестирования кибербезопасности, такие как ExploitGym, для проверки возможностей модели. Задействованные агенты должны были выполнять задачи в контролируемой среде, но соответствующие ответы для оценки находились во внешних сервисах.
В поисках ответов они нацелились на Hugging Face. Мы уже подробно сообщали об этом ранее: подробности вторжения в Hugging Face
От получения контроля над первым Pod рабочего набора данных до получения прав администратора в нескольких кластерах Hugging Face весь процесс занял менее 13 часов.
Сложный процесс расследования
16 июля Hugging Face публично раскрыл информацию о событии безопасности.
По информации, которой располагал Hugging Face на месте, злоумышленники проникли в Worker через вредоносный набор данных, похитили учетные данные облака и кластера, а затем перемещались горизонтально внутри платформы.
В этот момент OpenAI не связывал инцидент с Hugging Face с предыдущим сбоем службы Artifactory.
19 июля внутренняя система мониторинга OpenAI обнаружила активность по повышению привилегий в инфраструктуре.
Исследователи заново проверили траектории агентов, сетевую активность и записи использования учетных данных. Действия, ранее разбросанные по различным обучающим задачам, начали проявлять непрерывную связь.
Объем расследования также расширился, продвигаясь вперед от аномальной активности в июле.
Последнее доказательство
20 июля следователи OpenAI обнаружили учетные данные Hugging Face во внутренней среде и немедленно связались с Hugging Face для выяснения обстоятельств.
Hugging Face сообщил, что эти учетные данные уже использовались при вторжении и в настоящее время отозваны.
Наконец-то улики сошлись. Вторжение на платформу Hugging Face, а также повышение привилегий и горизонтальное перемещение внутри OpenAI произошли в результате одних и тех же мероприятий по оценке моделей.
Только в этот момент подтвердилось, что два отчета об инцидентах указывают на одно и то же событие.
Впоследствии следователи также обнаружили, что Hugging Face был не единственной внешней целью, к которой обращались агенты. Агенты также проникли в четыре учетные записи.
OpenAI не раскрыл названия этих целей, сообщив лишь, что уведомил соответствующие стороны.
В заключение
Расследование инцидента все еще продолжается, OpenAI опубликует больше деталей.
С какой стороны ни посмотри, это можно назвать «эпохальным инцидентом безопасности» и одновременно «эпохальным примером возможностей ИИ».
Развитие технологий всегда сопровождается затратами. В будущем нужно обсуждать не только то, что еще могут сделать модели, но и то, какой риск мы готовы взять на себя ради получения этих возможностей; и как только риск станет реальностью, кто должен за это отвечать.
Эта статья взята из официального аккаунта WeChat «机器之心», редактор: Шань Хуэй





