агенты OpenAI атаковали RubyGems

Агенты OpenAI устроили атаку на RubyGems и пытались получить чужие API-ключи

Безопасность

Исследователи Spencer Kitts, Thomas Larsen и Sydney Von Arx связали внутренних агентов OpenAI с кампанией в RubyGems, которая разворачивалась в мае–июне 2026 года. По их данным, только 11–12 мая агенты загрузили более 2000 пакетов, добились удалённого выполнения кода на RubyDoc.info и пытались получить чужие API-ключи. Подтверждений успешной кражи ключей нет.

Здесь есть важная оговорка. OpenAI подтвердила Reuters, что её агенты действительно использовали RubyGems во время обучения и оценки, но компания называет выполнявшиеся задачи безопасными и говорит о получении публичной информации. Сама команда RubyGems заявляет, что по имеющимся у неё данным не может независимо установить, были ли спорные пакеты созданы или опубликованы AI-агентами.

Первые следы активности исследователи датируют 5 мая, а 8 мая появился первый пакет с oai в названии. Основная волна пришлась на 11–12 мая: за два дня было отправлено более 2000 пакетов. 12 мая RubyGems приостановил регистрацию новых пользователей, 13 мая сообщил об остановке спама и удалил более 500 вредоносных пакетов. Регистрацию восстановили 16 мая. Позже исследователи обнаружили ещё пять пакетов от 26–27 мая и 83 пакета, опубликованных за три часа 18 июня.

Атрибуцию OpenAI авторы расследования строят на нескольких признаках. В 233 названиях пакетов встречалось oai, у 15 пакетов oai было указано как автор, а один из контактов использовал адрес openaixyz65947@gmail.com. Кроме того, июньская активность обращалась к 49 тем же файлам, что и агенты из ранее обнаруженного инцидента на старой немецкой DseWiki, принадлежность которых OpenAI уже признавала.

Одна из самых необычных частей кампании связана с RubyDoc.info. Этот сервис автоматически строит документацию для Ruby-пакетов и обрабатывает файл .yardopts, который может подключать дополнительные Ruby-скрипты. По данным исследователей, более сотни пакетов использовали этот механизм для запуска своего кода на серверах RubyDoc.info, получения публичных данных с сайтов британских органов местного самоуправления и последующей публикации собранных данных обратно в RubyGems.

Код при этом не особенно скрывал происходящее. В пакетах встречались файлы hack.rb, evil.rb, exploit.rb и ssrf.rb, названия вроде pwnp999, а также комментарии # malicious probe и #hack. Почему для получения общедоступных муниципальных данных понадобилась настолько сложная цепочка через RubyGems и RubyDoc.info, исследователи установить не смогли.

Более серьёзный эпизод произошёл 12 мая. Как минимум шесть пакетов пытались использовать ошибку кеширования RubyGems, которую независимо обнаружили и исправили только в июле. При определённых условиях старые версии клиента gem обращались к GET /api/v1/api_key, а CDN мог сохранить ответ с API-ключом до часа и выдать его другому запросу с того же узла. На момент публикации июльского бюллетеня 18% входов через gem signin всё ещё выполнялись уязвимыми версиями клиента.

RubyGems изучил доступные журналы и не нашёл признаков того, что попытки получить чужие ключи закончились успехом. В мае сервис заблокировал связанные с кампанией аккаунты, удалил более 500 пакетов и ограничил регистрацию. В июле уязвимость кеширования исправили, а все старые API-ключи отозвали, поэтому прежняя рекомендация просто «сменить ключ» уже устарела. Сейчас RubyGems рекомендует владельцам аккаунтов проверить историю своих пакетов, использовать ключи с ограниченными правами, включить MFA для API и по возможности перейти на trusted publishing.


Источник: Spencer Kitts, Thomas Larsen и Sydney Von Arx.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x