NullReceiver вдосконалює EtherHiding за допомогою порожніх крипто-переказів
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Актори загроз, пов’язані з Північною Кореєю, використовують новий метод вирішення C2 на базі блокчейну під назвою NullReceiver. Ця техніка вбудовує IP-адреси C2 у байти адреси одержувача нульових переказів Ethereum, що ускладнює виявлення, ніж при використанні звичайного EtherHiding. Пов’язане з цим шкідливе програмне забезпечення розповсюджується через заражені пакети npm.
Розслідування
Дослідники провели розслідування діяльності через статичний аналіз опублікованих npm tarballs і перевірку транзакцій, контрольованих атакуючими, на публічному блокчейні. Аналіз ідентифікував два шкідливі npm пакети, bianira-ui and fluid-type-ui, які використовують NullReceiver для вирішення командно-контрольної інфраструктури.
Пом’якшення
Захисники повинні контролювати активність блокчейну, пов’язану з відомими Ethereum-гаманцями, контрольованими атакуючими, та перевіряти адреси одержувачів, які використовуються у нульових переказах. Організації також повинні посилити контроль ланцюжка постачання програмного забезпечення для npm-залежностей, щоб запобігти встановленню заражених пакетів.
Реагування
Якщо виявлено активність NullReceiver, уражені середовища Node.js слід ізолювати негайно. Слідчі повинні ідентифікувати джерело шкідливого npm-пакета та заблокувати пов’язані C2 IP-адреси та Ethereum-гаманці як на рівні мережі, так і на рівні додатків.
Потік атаки
Виявлення
Можлива Спроба Зловживання Publicnode Ethereum Як Канал C2 (через dns_query)
Proof of Value
IOC (SourceIP) для виявлення: Порожні криптоперекази NullReceiver вирішують проблеми EtherHiding
Proof of Value
IOC (DestinationIP) для виявлення: Порожні криптоперекази NullReceiver вирішують проблеми EtherHiding
Proof of Value
Встановлення HTTP/HTTPS з’єднання NullReceiver [Мережева з’єднаність Windows]
Proof of Value
Виявлення блокчейн-техніки командного та контрольного управління NullReceiver [Створення процесу Linux]
Proof of Value
Виконання Симуляції
Передумова: Перевірка телеметрії та базова перевірка повинна пройти.
Мета: Цей розділ надає деталі щодо точного виконання техніки атакуючого (TTP), що призначена для викликання правила виявлення. Команди та хронологія ДОВИННІ безпосередньо відображати ідентифіковані TTP та спрямовані на створення очікуваної телеметрії, передбаченої логікою виявлення. Абстрактні або не пов’язані приклади призведуть до неправильної діагностики.
-
Атака та команди: Атакуючий намагається встановити прихований канал управління та контролю, що обходить традиційні чорні списки IP-адрес. Для цього вони розгортають шкідливий npm-пакет, який використовує техніку “NullReceiver”. Сценарій ініціалізує глобальні змінні за допомогою специфічного обфускованого синтаксису (
global.i = "A10-npm3!", global.r = require) та негайно звертається доhttps://1rpc.io/ethкінцевої точки. Це дозволяє шкідливому програмному забезпеченню зчитувати поле “recipient” конкретної транзакції Ethereum, яке містить закодовану IP-адресу фактичного C2 сервера. Цей метод використовує легітимну блокчейн-інфраструктуру для приховування злого наміру. -
Скрипт для тесту регресії:
#!/bin/bash # Скрипт симуляції для виявлення техніки NullReceiver C2 # Створення шкідливого node-сценарію, що імітує специфічні патерни правил виявлення cat << 'EOF' > malicious_npm_payload.js // Імітація точних патернів, визначених у Sigma rule global.i = "A10-npm3!"; global.r = require; const https = require('https'); // Шкідливе ПЗ звертається до специфічної RPC кінцевої точки для отримання інструкцій const url = 'https://1rpc.io/eth'; console.log("[!] Ініціювання перевірки на базі блокчейну C2..."); https.get(url, (res) => { console.log("[!] З'єднання успішне. Аналіз стану блокчейну..."); res.on('data', (d) => { // В реальній атаці це парсить поле 'recipient' для IP C2 console.log("[!] Інструкція отримана за допомогою техніки NullReceiver."); }); }).on('error', (e) => { console.error(`[X] З'єднання не вдалося: ${e.message}`); }); EOF # Виконання шкідливого сценарію за допомогою node echo "[*] Виконання шкідливої симуляції..." node malicious_npm_payload.js # Очищення файлу сценарію rm malicious_npm_payload.js -
Команди для очищення:
# Видалити будь-які артефакти, створені під час симуляції rm -f malicious_npm_payload.js