Под маской безопасности: XML-RPC целый год втайне добывал криптовалюту

Checkmarx раскрывает масштабную атаку на цепочку поставок через популярный NPM-пакет.


t2zt2n8w84h2he5fx7ky15p9x5n2udf8.jpg


Команда специалистов компании Checkmarx обнаружила атаку на цепочку поставок, которая продолжалась более года. Вредоносный npm -пакет @0xengine/xmlrpc, начавший своё существование в октябре 2023 года, со временем превратился в инструмент для криптомайнинга и кражи данных. Пакет продолжал оставаться активным до ноября 2024 года, сохраняя внешнюю видимость нормальной работы и даже получая регулярные обновления.

Изначально созданный для легитимной работы с протоколом XML-RPC в Node.js, с версии 1.3.4 @0xengine/xmlrpc начал включать в свой состав вредоносный код. Этот код, скрытый в файле validator.js, позволял незаметно запускать криптомайнер XMRig и собирать конфиденциальные данные, такие как SSH-ключи и история команд bash. Данные передавались через Dropbox и file.io, что затрудняло их отслеживание.

Распределение вредоносного ПО велось двумя способами: через прямую установку пакета из NPM и через зависимость в проекте на GitHub под названием «yawpp», якобы предназначенном для работы с WordPress. Это позволяло незаметно заражать системы разработчиков, доверяющих проверенным репозиториям.

Атака была тщательно замаскирована. Вредоносный функционал активировался только при выполнении определённых команд с параметром «—targets» или «-t», а также при использовании yawpp-скриптов. Для повышения эффективности майнинга зловред применял технологию обнаружения активности пользователя и запускался только в периоды бездействия. Также он использовал системные службы для автоматического восстановления после перезагрузки системы.

На момент расследования Checkmarx выявила 68 скомпрометированных систем, подключённых к майнинг-пулу hashvault.pro. Все они добывали криптовалюту Monero в пользу злоумышленника.

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

Этот случай подчёркивает важность регулярного анализа безопасности используемых пакетов и их обновлений. Разработчики и организации должны уделять особое внимание проверке исходного кода и мониторингу изменений в коде, чтобы избежать внедрения угроз в свои проекты.