Вредоносные Ruby-гемы и Go-модули атакуют цепочку поставок
Аккаунт BufferZoneCorp в GitHub был идентифицирован как источник вредоносных Ruby-gems и Go-modules в рамках кампании атак на software supply chain. По данным отчета, операция в первую очередь нацелена на разработчиков и среды непрерывной интеграции (CI), а ее основной целью является кража секретов и компрометация доверенных зависимостей.
Как работает атака
Исследователи отмечают, что вредоносные Ruby-gems используются для автоматизации кражи конфиденциальных данных. В частности, они собирают:
- переменные окружения с секретами;
- локальные учетные данные;
- SSH-keys;
- AWS credentials.
После сбора информация выгружается на скрытую конечную точку, контролируемую злоумышленниками.
На стороне Go вредоносные модули демонстрируют более широкий набор техник. Они способны:
- манипулировать средами сборки;
- изменять критические настройки GitHub Actions;
- ослаблять защиту контрольных сумм;
- внедрять поддельные обёртки, которые вмешиваются в настройки proxy.
Отдельно отмечается, что один из Go-modules может установить закрепление через SSH, добавляя жёстко закодированный открытый SSH-ключ в файл разрешённых ключей на затронутом хосте.
Спящие пакеты и маскировка под доверенные библиотеки
В рамках кампании используются так называемые dormant packages: изначально они загружаются без активной вредоносной активности, а затем обновляются, получая вредоносные функции. Такой подход позволяет снизить риск раннего обнаружения.
Для Ruby вредоносные gems подбираются так, чтобы их названия напоминали имена доверенных инструментов разработчика. Это усиливает обманчивый вид пакетов и повышает вероятность их установки. Аналогичным образом Go-modules воспроизводят знакомые названия библиотек, встраиваясь в существующие графы зависимостей.
Пример: knot-activesupport-logger
Одним из примеров вредоносного поведения на стороне Ruby стал gem «knot-activesupport-logger». Он осуществляет кражу учётных данных в двух сценариях:
- во время установки — через extconf.rb;
- во время выполнения — при использовании функциональности logging.
Отдельное внимание привлекает архитектура этого gem: он устроен так, чтобы подавлять обнаружение, отправляя похищенные данные в фоновом потоке.
Go-modules: атака через init()
В Go-сегменте кампании основной путь выполнения завязан на функции init(). Такой подход позволяет модулям автоматически запускаться при подключении зависимости и сразу переходить к вредоносным действиям.
По данным отчета, их цель — нарушить работу рабочих процессов GitHub Actions и скомпрометировать настройки доверия к модулям.
Среди конкретных примеров выделяется модуль «go-metrics-sdk». Он намеренно изменяет переменную GITHUB_ENV и использует PKG_ANALYTICS_URL для целей эксфильтрации. Другие модули сосредоточены на манипулировании путями выполнения и отслеживании аргументов.
Связь с MITRE ATT&CK
Технические детали кампании BufferZoneCorp, как подчеркивают авторы отчета, согласуются с рядом тактик из MITRE ATT&CK. В первую очередь речь идет о следующих категориях:
- компрометация software supply chain;
- выполнение вредоносных библиотек с участием пользователя;
- кража учетных данных через скомпрометированные зависимости программного обеспечения.
Что это значит для разработчиков
Ситуация вокруг BufferZoneCorp показывает, насколько опасной остается угроза для разработчиков программного обеспечения и CI-сред. Атака опирается не на единичный эксплойт, а на сочетание маскировки, доверенных форматов пакетов и автоматического выполнения кода через зависимости.
Эксперты делают вывод: в подобных условиях особенно важны proactive vigilance и практики безопасного управления зависимостями. Иначе даже привычный пакет из репозитория может стать точкой входа для кражи секретов и компрометации инфраструктуры разработки.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.


