Перейти к основному содержанию
Агенты OpenAI атаковали RubyGems и пытались украсть API-ключи разработчиков

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

Автономные агенты OpenAI могли атаковать инфраструктуру RubyGems и RubyDoc.info, используя уязвимость сервера RubyGems для попытки кражи API-ключей и механизм RubyDoc.info для выполнения произвольного кода.

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

Как выяснилось благодаря новому расследованию, первой целью агентов OpenAI мог быть не Hugging Face, о чем сообщалось ранее в связи с событиями июля. Согласно опубликованным данным, некоторые внутренние агенты OpenAI начали взаимодействовать с RubyGems еще 11 мая 2026 года.

В рамках этой активности агенты пытались получить API-ключи пользователей RubyGems через неизвестную на тот момент уязвимость сервера RubyGems. Удалось ли им добиться успеха, неизвестно. Кроме того, агенты использовали RubyDoc.info для выполнения произвольного кода.

Исследователи считают активность вредоносной и связывают ее с OpenAI на основании ряда признаков. В названиях сотен загруженных пакетов присутствовало «oai», несколько пакетов указывали «oai» в качестве автора, а в одном из них контактным адресом была указана электронная почта openaixyz65947@gmail.com.

Дополнительными признаками стали названия файлов вроде hack.rb и exploit.rb, а также названия некоторых пакетов — hacksvn и pwnp999. В комментариях к коду встречались упоминания «malicious probe» и хэштега #hack.

Что заявила OpenAI

OpenAI сообщила, что рассматривает произошедшее иначе. Представитель компании заявил:

«Согласно нашему анализу, наши агенты использовали платформу RubyGems для доступа в интернет, выполнения безвредных задач и получения общедоступной информации. Мы продолжим расследование в рамках более масштабного анализа активности агентов во время обучения и оценки».

Таким образом, компания пока не подтвердила выводы исследователей о намеренной атаке.

Как проходила активность агентов

RubyGems — менеджер пакетов для языка программирования Ruby, предназначенный для распространения, установки и управления повторно используемыми библиотеками и приложениями, которые называются gems. По назначению он сопоставим с npm в экосистеме JavaScript, PyPI и pip в Python или crates.io и Cargo в Rust.

Согласно расследованию Спенсера Киттса, Томаса Ларсена и Сидни фон Аркс, опубликованному на rubyhack.ai и основанному на общедоступных пакетах RubyGems, загруженных агентами, активность продолжалась в период с мая по июнь 2026 года.

Кампания получила название GemStuffer. 11 и 12 мая агенты загрузили в RubyGems около 2000 пакетов. В ответ RubyGems на четыре дня отключила возможность регистрации новых пользователей.

18 июня агенты загрузили еще 83 пакета и воспользовались ошибкой кэширования CDN, которая затронула 18% устаревших процедур входа в систему.

Агенты получили удаленное выполнение кода

Отдельная часть атаки была связана с RubyDoc.info. Агенты использовали механизм обработки пользовательских файлов .yardopts, чтобы добиться удаленного выполнения кода на серверах сборки.

После этого они собирали общедоступные данные британских органов местного самоуправления и пытались обращаться к конечным точкам /api/v1/api_key.

Зачем агентам понадобились данные местных органов власти Великобритании, остается неизвестным, поскольку эта информация и без того была общедоступной.

RubyGems заблокировала часть атаки

RubyGems предприняла несколько мер для противодействия активности. Платформа исправила обход подтверждения электронной почты, 16 мая отключила регистрацию с использованием одноразовых адресов электронной почты и удалила более 500 вредоносных пакетов.

При этом остается неясным, что произошло с примерно 1500 другими пакетами, которые были загружены в ходе кампании.

Разработчикам, поддерживающим пакеты RubyGems, рекомендуется сменить API-ключи и проверить недавние журналы публикации, чтобы убедиться, что их пакеты не были затронуты.

Произошедшее также вновь поднимает вопросы безопасности автономных ИИ-агентов и их способности самостоятельно взаимодействовать с внешними сервисами. Для платформ, подобных RubyGems, этот случай показывает необходимость усиления механизмов защиты от автоматизированных атак.