Случайный криптоперевод оказался скрытым посланием хакеров. Разбор техники NullReceiver

Защитные алгоритмы совершенно не видят угрозу в пустых транзакциях.


w380unhzhdx0txe90ifu2q54uo5j36rd.jpg

Северокорейские кибергруппировки давно ищут способ спрятать адрес управляющего сервера так, чтобы его нельзя было ни отследить, ни заблокировать, — и теперь для этого используют обычный денежный перевод в криптовалюте, который на первый взгляд выглядит совершенно пустым: сумма нулевая, никаких сопроводительных данных в нём нет. Единственное, что в такой транзакции имеет значение, — это адрес получателя, и именно в нём спрятан IP-адрес сервера управления.

Пол Маккарти, публикующийся под псевдонимом 6mile, обнаружил эту технику в блокчейне Ethereum. Технику назвали NullReceiver, и она встроена в два вредоносных пакета npm — bianira-ui и fluid-type-ui, замаскированные под легитимные плагины Tailwind CSS. Пакеты связывают с северокорейской кампанией Contagious Interview , известной атаками на разработчиков через поддельные тестовые задания при трудоустройстве.

До этого злоумышленники из Северной Кореи использовали похожую схему под названием EtherHiding : транзакция отправлялась на известный «адрес сжигания» токенов, а сам адрес командного сервера или даже целый вредоносный скрипт прятался в поле данных транзакции. Слабость этой схемы в том, что адрес назначения всегда один и тот же — и хорошо известен специалистам.

NullReceiver устраняет этот недостаток. Вредоносный код обращается к заранее известному кошельку злоумышленников, находит его последнюю исходящую транзакцию и считывает адрес получателя. Этот адрес никогда не предназначался для получения средств — он просто искусственно составлен так, чтобы его байты при расшифровке превращались в IP-адрес сервера управления. В обнаруженном образце адрес получателя расшифровывался в IP 166.88.134.62, а в конце того же адреса обнаружилась строка «helloipbot!!», оставленная авторами как своеобразная подпись.

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

Из-за этого раннее автоматическое обнаружение становится практически невозможным: заподозрить неладное можно только после того, как вредоносный пакет уже найден и проанализирован. Обратная сторона в том, что кошелёк злоумышленников, с которого делаются такие переводы, повторно используется в разных кампаниях, поэтому после первого обнаружения его можно отслеживать и дальше — как ранее отслеживали адрес сжигания при EtherHiding.

Маккарти отмечает, что северокорейские операторы регулярно усложняют инструментарий сразу после того, как предыдущая версия попадает в публичные отчёты, и ожидает, что NullReceiver в ближайшее время станет основным способом скрытого управления в подобных npm-кампаниях вместо EtherHiding.

Снизить риски можно за счёт проверки происхождения и репутации npm-пакетов перед установкой, а также мониторинга сетевых подключений к IP-адресам и кошелькам, указанным в качестве индикаторов компрометации.