JFrog обнаружила 3022 пакета RubyGems, связанные с GemStuffer
JFrog выявила 3 022 пакета RubyGems, связанных с кампанией GemStuffer. Они соответствуют 3 315 уникальным парам «название/версия». В кампании использовались вредоносные гемы для злоупотребления рабочими процессами RubyDoc, которые создают справочные страницы для пакетов. Управляемое пакетами содержимое заставляло эти рабочие процессы извлекать данные с внешних веб-сайтов и возвращать их через связанные механизмы RubyGems. Некоторые пакеты также пытались получить API-ключи реестра RubyGems других пользователей.
Полезные нагрузки и собираемые данные
Несколько полезных нагрузок были направлены на публичные веб-сайты и муниципальные ресурсы, включая календари заседаний и документы, связанные с районами Ламбес, Уонсворт и Саутварк. В названиях пакетов встречались термины:
- ssrf
- fetch
- proxy
- scrape
- yard
- payload
В некоторых названиях использовалось Unix-время. Полезная нагрузка f2fe-s1 собирала до 150 идентификаторов заседаний и 120 URL-адресов документов, сохраняла ответы локально и создавала новый гем с именем f2fe-scraped. Его версия основывалась на временной метке.
Другая полезная нагрузка, southpxdatapp6pi, пыталась сохранить собранные данные в конфигурации вебхука RubyGems. Для этого применялись фрагментированные значения, которые впоследствии могли быть восстановлены. В этой полезной нагрузке также содержалось значение API-ключа, пересекавшееся с другим пакетом кампании.
Кража токенов и атаки на RubyGems
Пакет slnleaker5 использовал механизм кражи токенов, связанный с уязвимостью в устаревшем API-ключе RubyGems. При определённых условиях сжатия и поведения заголовков кэширования успешный ответ на запрос к устаревшему входу в систему мог кэшироваться CDN и в течение часа возвращаться другому запрашивающему. Это потенциально приводило к раскрытию данных аутентификации.
Поведение Ruby по умолчанию при запросе gzip-сжатия имело значение для запуска уязвимого сценария. Отдельный набор пакетов, опубликованный в июле, был направлен на страницы пакетов RubyGems, административные интерфейсы и системы обработки метаданных. Эти пакеты не были ориентированы на выполнение значительного количества кода Ruby.
Вредоносные описания и обработка гемов
Вредоносные описания и поля авторов содержали XSS-нагрузки, включая:
- обработчики ошибок изображений;
- элементы скриптов;
- URL-адреса
javascript:; - обработчики событий SVG.
Авторы отчёта рекомендуют системам, которые создают документацию или обрабатывают загруженные гемы, считать файлы пакетов и метаданные недоверенными, предотвращать выполнение кода в привилегированных рабочих процессах, применять надёжную санитизацию HTML и кодирование вывода.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



