Кампания GemStuffer: атака на цепочку поставок Ruby для кражи данных правительства Великобритании

security

В мае 2026 года специалисты по информационной безопасности обнаружили новую масштабную атаку на цепочку поставок программного обеспечения. Кампания получила название GemStuffer. Она направлена на экосистему Ruby и использует вредоносные пакеты в реестре RubyGems (система управления пакетами для языка Ruby) для кражи конфиденциальных данных правительства Великобритании. Под ударом оказались порталы местных органов власти, работающие на платформе ModernGov (программное обеспечение для управления заседаниями и демократическими процедурами). Эта атака представляет серьёзную угрозу для государственного сектора и демонстрирует высокий уровень технической сложности злоумышленников.

Описание

Злоумышленники внедряют вредоносные скрипты в скомпрометированные конвейеры непрерывной интеграции и доставки (CI/CD), конфигурации инструмента Bundler и хуки установки гемов. Скрипты маскируются под имена вроде payload.rb, exploit.rb, extconf.rb и другие. После выполнения на заражённой системе они собирают информацию о среде выполнения, включая временные метки и пути к рабочим каталогам. Затем начинается целенаправленный сбор данных с правительственных порталов.

Основной этап кражи - веб-скрапинг сайтов советов графств Ламбет, Уондсуэрт и Саутуарк, использующих ModernGov. Вредоносные скрипты на Ruby обращаются к конечным точкам mgCalendarMonthView.aspx, извлекают календари заседаний, протоколы комитетов, контактные данные чиновников и прикреплённые PDF-документы. Чтобы не вызывать подозрений у систем обнаружения, скрипты подделывают строку User-Agent браузера Mozilla/5.0 и игнорируют ошибки проверки SSL-сертификатов при запросах к правительственным порталам.

Собранные данные упаковываются в полноценные архивы гемов Ruby. Исследователи опубликовали детали этого процесса. Временные каталоги создаются в /tmp, а украденная информация помещается в файлы lib/result.txt или README внутри гема. Используется метод File.binwrite для корректной обработки не-UTF-8 данных. Некоторые варианты вредоносного ПО автоматически удаляют временные каталоги после создания архива, что затрудняет криминалистический анализ и оставляет минимум следов на заражённых системах.

Финальная стадия - эксфильтрация через инфраструктуру RubyGems. Вредоносный код создаёт поддельное окружение RubyGems под /tmp/gemhome/.gem, вводит жёстко заданные ключи API в файл учётных данных и отправляет пакет с украденными данными на rubygems.org. Другие варианты загружают архив напрямую через HTTP POST-запросы к API RubyGems. Использование нескольких ключей API служит механизмом устойчивости: даже если один ключ отзовут, операция продолжается. С точки зрения сети такая активность почти неотличима от легитимной публикации гемов - одно исходящее TLS-соединение с gzip-сжатым архивом. Поэтому традиционные средства защиты, такие как межсетевые экраны и системы обнаружения вторжений, редко фиксируют аномалию.

Последствия атаки могут быть серьёзными: утечка закрытых данных правительственных порталов, включая протоколы заседаний, личные данные чиновников и служебную переписку. Злоумышленники используют доверенную инфраструктуру RubyGems, поэтому атака остаётся незаметной для многих организаций. Кампания GemStuffer показывает, как атаки на цепочки поставок становятся всё более изощрёнными и нацеленными на конкретные секторы. Особую тревогу вызывает способность вредоносного ПО маскировать свою активность под обычную работу разработчика.

Для защиты от подобных угроз специалистам рекомендуется немедленно удалить все выявленные вредоносные пакеты из реестра RubyGems. Необходимо проверить временные каталоги на серверах на наличие артефактов, соответствующих шаблонам lambeth71b, rubydocran_ и /tmp/gemhome/. Следует проанализировать конфигурационные файлы Bundler и конвейеры CI/CD на предмет следов скриптов payload.rb, exploit.rb и других, перечисленных в отчёте. Кроме того, важно контролировать изменения переменной окружения HOME - её перенаправление на /tmp является надёжным индикатором компрометации. В средах, где публикация гемов не предусмотрена, стоит заблокировать исходящие HTTPS-запросы к rubygems.org/api/v1/gems.

Эта атака служит напоминанием о том, что даже доверенные реестры пакетов могут стать каналом утечки данных. Разработчикам и администраторам Ruby-систем следует усилить мониторинг с помощью средств обнаружения аномалий в поведении сборочных сред. Кампания GemStuffer, вероятно, не последняя в своём роде, поэтому бдительность и проактивная защита остаются ключевыми факторами безопасности. Использование принципа минимальных привилегий, ограничение записи в /tmp и применение read-only файловых систем в контейнерах помогут снизить риск подобных атак в будущем.

Индикаторы компрометации

URLs

  • https://democracy.wandsworth.gov.uk/mgCalendarMonthView.aspx?M=1&Y=2026&GL=1&bcr=1
  • https://moderngov.lambeth.gov.uk/mgCalendarMonthView.aspx?M=1&Y=2026&GL=1&bcr=1
  • https://moderngov.southwark.gov.uk/mgCalendarMonthView.aspx?M=1&Y=2026&GL=1&bcr=1

MD5

  • 81c34eea9c853c5ec13a3b3cd4a2228b
  • 9211506ae02c9e4e75aeadfebeb4883c

SHA1

  • 5f924c0454f1fb6b2299d658c3bb4e75ce3d0b66
  • db9827ae2c004a4dc6009be2d009477bff5249df

SHA256

  • 239440c830e17530dda0a8a06ed2708860998750a1e3ed2239e919465dc59420
  • c2d6bcacc88177e0f2c8c262726f86f37e671b1692c8bc135bac4b610ddcf31a

Комментарии: 0