DeadLock: Банда викупівців використовує смарт-контракти для маскування своєї діяльності
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Ransomware DeadLock впровадив Polygon smart contracts як стійкий спосіб публікації та ротації proxy URL, які використовуються для командно-контрольних (C2), дозволяючи швидко змінювати бекенд-інфраструктуру без використання звичайних доменів. Після шифрування, актори розміщують HTML-форму «оплати/комунікації», яка спрямовує жертв до децентралізованого мессенджера Session для подальших вказівок та взаємодії. Ця техніка схожа на зразок EtherHiding, раніше повідомлений у зв’язку з діяльністю з Північною Кореєю, що використовує дані блокчейну як прошарок непрямого зв’язку для шкідливої інфраструктури. Відзначено, що DeadLock, схоже, не віддає пріоритету традиційним публічним сайтам витоку, а замість цього монетизує вкрадені дані через продажі на підпільних ринках.
Розслідування
Аналітики Group-IB задокументували підхід DeadLock до приховування C2-цілей за допомогою smart-contract, включаючи розміщення HTML-файлу після шифрування, що явно посилається на Session як на канал зв’язку. Звіт також посилається на раніше звіти Cisco Talos, які асоціювали активність DeadLock з техніками BYOVD (bring-your-own-vulnerable-driver) та завершенням процесу EDR, хоча точні вектори початкового доступу не були остаточно ідентифіковані. Схожа практика “smart contract як довідник C2” також обговорювалась Google Threat Intelligence Group в контексті кампаній Північної Кореї, що підкреслює ширшу тенденцію до використання публічних блокчейнів для гнучкості інфраструктури.
Пом’якшення
Моніторте кінцеві точки на наявність несподіваних HTML-артефактів, які запускають або посилаються на Session (або інші децентралізовані мессенджери) після підозрілої діяльності файлів. Забезпечте жорстке впровадження дозволених застосунків і обмежте виконання несанкціонованих інструментів, які можуть полегшити віддалений доступ, підготовку payload або встановлення мессенджера. З боку мережі, перевірте вихідні з’єднання з proxy URL або доменами, які, схоже, походять від розміщених у блокчейні вказівників, та розглядайте різкі зміни у вихідних пунктах призначення як аномалії з високим сигналом. Безперервно оновлюйте виявлення кінцевих точок для ідентифікації завантаження драйвера BYOVD, підозрілих встановлень драйверів та поведінки, що відповідає маніпуляціям EDR або насильницькому завершенню служб безпеки.
Відповідь
Якщо були виявлені індикатори DeadLock, негайно ізолюйте постраждалі системи, щоб запобігти подальшому шифруванню та латеральному переміщенню. Зберіть та збережіть скинутий HTML wrapper, примітки про шифрування та пов’язані бінарами або скриптами, а потім заблокуйте вихідний трафік до будь-яких спостережуваних proxy URLs та інфраструктури, що відноситься до смарт-контрактів. Ініціюйте формальні процедури реагування на інциденти, перевірте цілісність та доступність автономних/резервних шляхів відновлення до початку усунення несправностей і оцініть можливе витік даних для визначення ризику вимагання. Де доречно, координуйте комунікації з зацікавленими сторонами та залучайте спеціалізовану підтримку реагування на викупну програму при виконанні повної оцінки та усунення.
“graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#c2e0ff classDef tool fill:#cccccc classDef malware fill:#ffcccc classDef process fill:#e6e6e6 classDef data fill:#f0e68c classDef operator fill:#ff9900 %% Technique Nodes tech_priv_esc[“<b>Техніка</b> – T1068 Експлуатація для підвищення привілеїв<br/><b>Опис</b>: Використання вразливого драйвера для отримання підвищених системних привілеїв.”] class tech_priv_esc technique tech_def_evasion[“<b>Техніка</b> – T1211 Експлуатація для ухилення від захисту<br/><b>Опис</b>: Використання вразливостей драйвера для завершення або обходу агентів безпеки.”] class tech_def_evasion technique tech_impair[“<b>Техніка</b> – T1562 Завдання шкоди захисту<br/><b>Опис</b>: Відключення або маніпуляція рішеннями безпеки для зниження можливостей виявлення та реагування.”] class tech_impair technique tech_web_comm[“<b>Техніка</b> – T1102.002 Двосторонній обмін даними веб-сервісу<br/><b>Опис</b>: Скидання шифрованого HTML-обгортки, що запускає мессенджер Session і отримує proxy URL з Polygon smart contract.”] class tech_web_comm technique tech_app_proto[“<b>Техніка</b> – T1071.001 Протоколи прикладного рівня<br/><b>Опис</b>: Спілкування з proxy та C2 сервером за допомогою стандартних веб-протоколів (HTTP/WebSocket), зливаючи з легітимним транспортом.”] class tech_app_proto technique %% Tool Node tool_vuln_driver[“<b>Інструмент</b> – Ім’я: Вразливий драйвер<br/><b>Призначення</b>: Забезпечує виконання коду на рівні ядра, що використовується для підвищення привілеїв та ухилення від захисту.”] class tool_vuln_driver tool %% Malware Node malware_deadlock[“<b>Шкідливе ПЗ</b> – Ім’я: DeadLock Ransomware<br/><b>Можливості</b>: Виконує шифрування та C2 комунікації після початкового компромісу.”] class malware_deadlock malware %% Process Nodes process_html_wrapper[“<b>Процес</b> – Ім’я: HTML Обгортка<br/><b>Дія</b>: Декодує та запускає мессенджер Session на жертві-хості.”] class process_html_wrapper process process_session_messenger[“<b>Процес</b> – Ім’я: мессенджер Session<br/><b>Дія</b>: Обробляє шифрований трафік, отримує інформацію про proxy та спілкується з C2.”] class process_session_messenger process process_c2_server[“<b>Сервер</b> – C2 сервер<br/><b>Протокол</b>: HTTP/WebSocket”] class process_c2_server process %% Data Node data_proxy_url[“<b>Дані</b> – Proxy URL<br/><b>Джерело</b>: Отримано з Polygon smart contract для ротації C2 кінцевих точок.”] class data_proxy_url data %% З’єднання tech_priv_esc u002du002d>|використовує| tool_vuln_driver tech_def_evasion u002du002d>|використовує| tool_vuln_driver tool_vuln_driver u002du002d>|дозволяє| tech_priv_esc tool_vuln_driver u002du002d>|дозволяє| tech_def_evasion malware_deadlock u002du002d>|розміщує| process_html_wrapper process_html_wrapper u002du002d>|запускає| process_session_messenger process_session_messenger u002du002d>|отримує| data_proxy_url data_proxy_url u002du002d>|забезпечує| tech_web_comm tech_web_comm u002du002d>|спілкується за допомогою| tech_app_proto process_session_messenger u002du002d>|спілкується з| process_c2_server tech_impair u002du002d>|націлюється на| malware_deadlock “
Потік атаки
Виявлення
Був виконаний підозрілий процес, що імітує Svchost (через cmdline)
Переглянути
Можливе видалення тіньових копій через WMI (через powershell)
Переглянути
Можлива спроба зловживання Publicnode Ethereum як каналом C2 (через dns_query)
Переглянути
Ротація Proxy Server URL DeadLock Ransomware через Smart Contracts [Proxy]
Переглянути
Виконання симуляції
Передумова: Попередня перевірка телеметрії та базових показників повинна бути пройдена.
Обґрунтування: Цей розділ деталізує точне виконання техніки супротивника (TTP), спроектованої для збудження правила виявлення. Команди та розповідь МАЮТЬ безпосередньо відображати ідентифіковані TTPs та мати на меті генерувати саме ту телеметрію, яку очікує логіка виявлення. Абстрактні або не пов’язані приклади призведуть до помилкової діагностики.
-
Опис атаки та команди:
Зловмисник, отримавши контроль над проксі-сервісом, що управляється смарт-контрактом, змінює proxy URL кожні кілька хвилин, щоб уникнути статичних блок-листів. Кожна ротація публікує новий піддомен під
deadlock.example.com. Викупна програма запитує проксі для отримання наступної C2 адреси. Для цього ми виконуємо серію HTTP запитів до трьох різних URL, які всі містять буквений рядок “.example.com”, імітуючи спостережуваний у реальному світі шаблон ротації. -
Скрипт регресійного тесту:
#!/usr/bin/env bash # Симуляція ротації URL DeadLock Proxy – створює телеметрію, що збігається з правилом Sigma PROXY="http://proxy.example.local:3128" URLs=( "http://stage1.example.com/deadlock" "http://stage2.example.com/deadlock" "http://stage3.example.com/deadlock" ) echo "[*] Початок симуляції ротації proxy-URL (3 запити)..." for url in "${URLs[@]}"; do echo "[+] Запит $url через $PROXY" curl -s -x "$PROXY" "$url" -o /dev/null sleep 2 # коротка пауза для імітації реалістичного інтервалу done echo "[*] Симуляція завершена." -
Команди очищення:
#!/usr/bin/env bash # Видалити будь-які тимчасові файли, створені під час симуляції (у цьому випадку жоден) echo "[*] Артефактів для очищення немає. Конфігурація проксі залишається незмінною."