атаки на цепочки поставок ПО через Web3

Как Web3 меняет атаки на цепочки поставок облачного ПО

Безопасность

Вредоносной программе уже не обязательно хранить адрес управляющего сервера в собственном коде. Она может получать его из блокчейна, а злоумышленники — менять инфраструктуру без повторного распространения заражённого пакета. Так публичные сети становятся справочником для атак на разработчиков и корпоративные облака.

Исследователи Palo Alto Networks Unit 42 описали эту эволюцию в исследовании, опубликованном 7 октября 2026 года. Они рассмотрели несколько способов использования Web3 в цепочках заражения, включая кампании ChainDrop и PolinRider.

Почему атакуют зависимости и системы сборки

Компьютер разработчика и система автоматической сборки CI/CD могут хранить облачные ключи, токены сервисных аккаунтов и секреты развёртывания. Заражённая зависимость получает шанс добраться до них ещё при установке или подготовке проекта. Похищенные действующие учётные данные затем позволяют обращаться к ресурсам с правами жертвы.

ChainDrop затронул более 400 npm-пакетов, включая keyv и cacheable-request. Через сценарий preinstall червь запускал скрытый сборщик данных с помощью Bun. Если среды выполнения не было, загрузчик скачивал её из официального репозитория: сам Bun в разобранном образце не был заражён.

Червь искал секреты в файлах и памяти работающего процесса GitHub Actions, включая краткосрочные токены OIDC. Он также добавлял задачи VS Code и команды запуска Claude Code, чтобы вредонос активировался при открытии проекта или начале AI-сеанса. Украденные токены публикации npm помогали ему заражать новые пакеты.

Код ChainDrop относится к линии Shai-Hulud, однако это не устанавливает личность операторов: опубликованный инструментарий могли использовать разные группы. Исследователи отдельно наблюдали смену управляющего домена через одну Ethereum-транзакцию 4 августа 2026 года — без обновления уже установленного вредоноса.

PolinRider охватил npm, модули Go, Packagist и расширения Chrome. Загрузчики скрывались в конфигурациях, настройках автоматизации и файлах, выдаваемых за шрифты. Поэтому опасность могла возникать при открытии рабочего пространства или запуске инструмента разработки, а не только при установке пакета.

Похожая проблема доверия уже проявлялась в истории с вредоносными плагинами OpenClaw: внешне полезное дополнение становилось способом украсть доступы. Но способы запуска и кампании в этих случаях различаются.

Три способа использовать блокчейн

EtherHiding — данные в смарт-контракте

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

Название EtherHiding не означает обязательное использование Ethereum: Guardio ещё в 2023 году описала такой механизм в BNB Smart Chain. Само чтение контракта не требует новой транзакции от заражённой машины. При этом постоянный адрес контракта остаётся признаком, который защита может отслеживать в RPC-запросах.

TxDataHiding — данные в транзакциях

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

В многоцепочечных вариантах одна сеть содержит указатель на данные в другой. Исследователи описали связки TRON, Aptos и BNB Smart Chain с резервными маршрутами получения нагрузки. Уже записанную транзакцию не переписывают: для смены данных оператор публикует новую запись, которую должен найти загрузчик.

NullReceiver — адрес сервера в адресе получателя

Этот механизм обходится без смарт-контракта и отдельного поля с нагрузкой. Загрузчик читает исходящую транзакцию контролируемого атакующими кошелька и восстанавливает IPv4-адрес из адреса получателя. Перевод может иметь нулевую сумму и пустое поле данных. Однако нулевая сумма перевода не означает отсутствия сетевой комиссии.

Метод обнаружили в bianira-ui и fluid-type-ui. Позднее Sonatype описала шесть npm-пакетов с похожей схемой, где из адреса получателя извлекались основной и резервный адреса серверов. Это усложняет поиск явных доменов, но не делает сетевые запросы и дальнейшее выполнение кода невидимыми.

Какие атаки связывают с КНДР

Атрибуция различается от кампании к кампании. Socket связывает PolinRider с северокорейским кластером Contagious Interview / Famous Chollima. Microsoft относит компрометации Axios и Mastra к Sapphire Sleet, также пересекающейся с активностью, которую другие исследователи называют Alluring Pisces.

В Axios злоумышленники добавили зависимость plain-crypto-js, которая загружала троян удалённого доступа. В Mastra после захвата аккаунта сопровождающего вредоносная easy-day-js попала более чем в 140 пакетов. Код запускался при установке, даже если приложение впоследствии не импортировало библиотеку.

В случае arrayref команда безопасности Rust подтвердила добавление зависимости proc-macro1 со скриптом сборки, скачивавшим вредоносную нагрузку. Unit 42 рассматривает этот эпизод в контексте связанных операций, но официальное сообщение Rust не называет автора атаки. Эти случаи нельзя автоматически считать работой одной группы или доказательством применения Web3 в каждом из них.

Что меняется для защиты

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

Unit 42 рекомендует проверять изменения конфигураций репозиториев, сценариев установки и автоматизации CI/CD до выполнения кода. В компании без Web3-задач неожиданный блокчейн-трафик инструментов разработки заслуживает расследования. В криптовалютном проекте тот же запрос может быть штатным, поэтому важен контекст.

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

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x