Шесть npm-пакетов прятали C2-адреса в Ethereum-кошельке
Исследователи обнаружили шесть вредоносных npm-пакетов, которые использовали Ethereum-кошелёк для хранения адресов командных серверов. Такой подход позволяет злоумышленникам обходить традиционные методы обнаружения и динамически менять инфраструктуру.

Шесть вредоносных пакетов в репозитории npm использовали нестандартный способ маскировки: они хранили адреса командных серверов (C2) в транзакциях Ethereum-кошелька. Это позволяет злоумышленникам обновлять инфраструктуру без изменения кода вредоноса, что серьёзно усложняет обнаружение.
Как пакеты использовали Ethereum-кошелёк
Исследователи из компании Checkmarx обнаружили в реестре npm шесть пакетов, которые содержали вредоносный код. Вместо того чтобы жёстко прописывать адрес C2-сервера в коде, они обращались к Ethereum-кошельку, чтобы получить адрес оттуда. Такой подход позволяет менять C2-инфраструктуру в любой момент, просто отправляя новую транзакцию на кошелёк, и вредоносное ПО будет использовать новый адрес без необходимости обновления.
Пакеты были опубликованы под разными именами, чтобы выглядеть легитимными. Среди них — пакеты, имитирующие популярные библиотеки, такие как ethereumjs и другие, что увеличивает шансы на то, что разработчики случайно установят их. На момент обнаружения пакеты уже были скачаны несколько сотен раз, что говорит о том, что некоторые разработчики могли стать жертвами.
Предыстория и контекст
Использование блокчейна для сокрытия C2-адресов — относительно новая техника, которая набирает популярность среди киберпреступников. Она основана на том, что блокчейн является публичным и децентрализованным, что делает его идеальным каналом для передачи информации, которую сложно заблокировать или отследить. Злоумышленники могут использовать смарт-контракты или просто транзакции для хранения данных, а вредоносное ПО будет читать их через публичные API.
Ранее подобные методы уже использовались в других вредоносных программах, например, для получения адресов C2 через DNS-записи или социальные сети. Однако блокчейн даёт дополнительные преимущества: он не зависит от конкретного домена или хостинга, а также позволяет автоматически обновлять конфигурацию без участия оператора.
В случае с npm-пакетами, злоумышленники, вероятно, выбрали Ethereum из-за его популярности и развитой экосистемы инструментов для работы с кошельками. Это упрощает создание вредоносного кода, который может взаимодействовать с блокчейном без необходимости писать сложные низкоуровневые протоколы.
Как работает такая схема
Вредоносный код, внедрённый в пакет, содержит адрес Ethereum-кошелька, принадлежащего злоумышленникам. При запуске код обращается к публичному API блокчейна, например, Etherscan, и получает последние транзакции этого кошелька. В данных транзакции (например, в поле input data) закодирован адрес C2-сервера. Затем вредоносное ПО устанавливает соединение с этим сервером и получает дальнейшие инструкции.
Такой подход позволяет злоумышленникам менять C2-адрес в любой момент, просто отправляя новую транзакцию на кошелёк. Это делает защиту от вредоноса более сложной, так как традиционные методы блокировки по IP-адресам или доменам становятся неэффективными.
Технические детали и анализ
Checkmarx опубликовала подробный отчёт, в котором перечислены все шесть пакетов и их характеристики. Среди них — пакеты с именами, похожими на легитимные проекты, такие как ethereumjs-wallet и другие. Вредоносный код был написан на JavaScript и использовал библиотеку web3 для взаимодействия с блокчейном.
Анализ показал, что пакеты были опубликованы с использованием разных аккаунтов, что затрудняет их связывание с одним автором. Однако все они использовали один и тот же Ethereum-кошелёк для получения C2-адресов, что позволяет предположить, что они принадлежат одной группе злоумышленников.
Интересно, что в одном из пакетов был обнаружен механизм проверки: код проверял, находится ли он в песочнице, и если да, то не выполнял вредоносные действия. Это делает анализ в изолированной среде менее эффективным, так как вредоносное ПО может оставаться неактивным до тех пор, пока не будет запущено в реальной среде.
Кого затронет и как
В первую очередь угроза касается разработчиков, которые используют npm для управления зависимостями в своих проектах. Если они установили один из этих пакетов, их системы могут быть скомпрометированы. Злоумышленники могут получить доступ к данным, установить дополнительное вредоносное ПО или использовать заражённые машины для дальнейших атак.
Компании, которые разрабатывают программное обеспечение с использованием npm, также находятся в зоне риска. Если вредоносный пакет попадёт в производственный код, это может привести к утечке данных или нарушению работы сервисов. Поэтому важно проверять все зависимости на наличие известных уязвимостей и использовать инструменты для анализа безопасности.
Для пользователей, которые не занимаются разработкой, прямая угроза минимальна, однако они могут пострадать косвенно, если их данные будут украдены в результате атаки на компанию, использующую уязвимые пакеты.
Что будет дальше
Checkmarx уже уведомила npm о найденных пакетах, и они были удалены из реестра. Однако это не гарантирует, что подобные атаки не повторятся. Злоумышленники могут создавать новые пакеты с другими именами и использовать те же методы.
Разработчикам рекомендуется быть внимательными при выборе пакетов, проверять их репутацию и использовать инструменты для анализа уязвимостей, такие как npm audit или сторонние решения. Также стоит следить за обновлениями в сфере кибербезопасности, чтобы быть в курсе новых угроз.
В долгосрочной перспективе использование блокчейна для сокрытия C2-адресов может стать более распространённым. Это требует от специалистов по безопасности разработки новых методов обнаружения, которые учитывали бы такие техники. Возможно, появятся инструменты для мониторинга блокчейн-транзакций на предмет подозрительной активности.
Итог
Использование Ethereum-кошелька для хранения C2-адресов — это новый и изощрённый способ маскировки вредоносной активности. Шесть пакетов в npm были удалены, но угроза не исчезла полностью. Разработчикам и компаниям необходимо усилить меры безопасности и быть внимательными к зависимостям, которые они используют. Следите за новостями в области кибербезопасности, чтобы вовремя реагировать на новые угрозы.