GlassWorm ховає RAT всередині зловмисного розширення Chrome
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
GlassWorm використовує скомпрометовані пакети npm, PyPI, GitHub і OpenVSX для розповсюдження багатоступінчастої платформи шкідливого програмного забезпечення. На першому етапі завантажується лоудер, який запитує мемо блокчейну Solana для отримання адрес командування та контролю, а потім завантажує зашифрований корисний вантаж. Другий етап краде облікові дані, файли криптовалютного гаманця та деталі хоста, а третій етап розгортає стійкий RAT на основі WebSocket разом зі шкідливим розширенням Chrome, призначеним для збору даних браузера. Операція орієнтована в основному на розробників і власників криптовалюти.
Розслідування
Аналітики пов’язали початковий компроміс із шкідливими скриптами попереднього встановлення та лоудерами на основі Unicode, вбудованими в легітимні пакети. Вони виявили дві адреси гаманців Solana, які діють як місцеположення для передачі URL-адрес C2, і спостерігали запити лоудера до кількох кінцевих точок RPC Solana. RAT третього етапу покладається на вузли DHT bootstrap і повторює отримання через Solana, якщо розв’язання DHT не вдається. Дослідники також виявили інфраструктуру ексфільтрації та нанесли на карту шкідливе розширення Chrome, що використовувалося в кампанії.
Захист
Організації повинні застосовувати сканування ланцюга постачання для npm та інших екосистем пакетів, перевіряти цілісність пакетів і довіру до видавця та блокувати відомі шкідливі IP-адреси та домени. Захист на кінцевих точках повинен контролювати підозрілі запущені середовища Node.js, неочікувані заплановані завдання і підозрілі ключі запуску реєстру. Браузерні сховища облікових даних варто посилити, а користувачам криптовалюти варто використовувати апаратну верифікацію гаманцями, де можливо.
Відповідь
Якщо GlassWorm було виявлено, ізолюйте уражену кінцеву точку, зупиніть шкідливі процеси та видаліть будь-які вкладені файли та механізми збереження, такі як заплановані завдання. Відкличте скомпрометовані токени npm, замініть облікові дані криптовалютного гаманця і скиньте паролі, збережені у браузері. Проведіть повний судово-медичний аналіз журналів хоста, щоб простежити виконання лоудера, і оновіть засоби захисту, щоб знизити ризик подальших компромісів ланцюга постачання.
"graph TB %% Class Definitions classDef technique fill:#ffcc99 classDef persistence fill:#99ffcc classDef exfil fill:#ff9999 classDef credential fill:#ccccff classDef execution fill:#ffdb4d classDef collection fill:#c2f0c2 classDef command fill:#ffd699 %% Nodes u2013 Attack Steps step1_initial_access["<b>Техніка</b> – <b>T1195.001 Компрометація ланцюга постачання</b><br/>Шкідливі пакети npm/pyPI та скомпрометовані репозиторії GitHub доставляють лоудер."] class step1_initial_access technique step2_obfuscation["<b>Техніка</b> – <b>T1027 Заплутані файли або інформація</b><br/>Лоудер-код заплутаний і компільований після доставки (T1027.004)."] class step2_obfuscation execution step3_guardrails["<b>Техніка</b> – <b>T1480 Обмеження виконання</b><br/>Лоудер перевіряє локаль, мову та часовий пояс і зупиняється, якщо виконання відбувається поза цільовими регіонами Росії."] class step3_guardrails execution step4_dead_drop["<b>Техніка</b> – <b>T1102.001 Dead Drop Розв’язувач</b><br/>Лоудер опитує мемо транзакцій блокчейну Solana для отримання URL C2."] class step4_dead_drop command step5_cred_files["<b>Техніка</b> – <b>T1552.001 Облікові дані у файлах</b><br/>Збирає .npmrc, NPM_TOKEN, конфіги постачальників хмарних послуг та закриті ключі SSH."] class step5_cred_files credential step6_browser_creds["<b>Техніка</b> – <b>T1555.003 Облікові дані з веб-браузерів</b><br/>Збирає паролі, кукі, автозаповнені дані і платіжні картки з Chrome, Edge, Firefox; обминає шифрування, зв’язане з додатками."] class step6_browser_creds credential step7_private_keys["<b>Техніка</b> – <b>T1552.004 Закриті ключі</b><br/>Копіює файли криптовалютних гаманців і скріншоти початкових фраз."] class step7_private_keys credential step8_exfil_webhook["<b>Техніка</b> – <b>T1567.004 Ексфільтрація через Webhook</b><br/>Архівує зібрані дані і надсилає їх на контрольовані зловмисниками HTTP кінцеві точки."] class step8_exfil_webhook exfil step9_persistence_rc["<b>Техніка</b> – <b>T1037.004 RC Скрипти</b><br/>Створює запис HKCUSoftwareMicrosoftWindowsCurrentVersionRun і заплановане завдання для запуску PowerShell лаунчера при старті."] class step9_persistence_rc persistence step10_wmi_event["<b>Техніка</b> – <b>T1546.003 WMI Підписка на події</b><br/>Реєструє подію WMI для виявлення апаратних гаманців USB і запуску фішингового інтерфейсу."] class step10_wmi_event persistence step11_ps_profile["<b>Техніка</b> – <b>T1546.013 PowerShell Профіль</b><br/>Додає стійкість через скрипт профілю PowerShell."] class step11_ps_profile persistence step12_vnc["<b>Техніка</b> – <b>T1021.005 VNC</b><br/>Завантажує прихований рідний модуль VNC (HVNC) для невидимого віддаленого робочого столу."] class step12_vnc command step13_multi_stage["<b>Техніка</b> – <b>T1104 Багатоступінчасті канали</b><br/>Встановлює двосторонній канал Socket.IO WebSocket для команд C2."] class step13_multi_stage command step14_input_injection["<b>Техніка</b> – <b>T1674 Ін’єкція вхідних даних</b><br/>Виконує постачений зловмисниками JavaScript через eval() в межах RAT."] class step14_input_injection execution step15_keylog_clip["<b>Техніка</b> – <b>T1056.001 Кейлогінг</b> & <b>T1115 Дані з буфера обміну</b><br/>Шкідливе розширення Chrome веде журнал натискань клавіш, захоплює текст з буфера обміну та робить знімки екрана."] class step15_keylog_clip collection step16_browser_hijack["<b>Техніка</b> – <b>T1185 Викрадення сесії браузера</b><br/>Розширення збирає кукі та токени сесії і може перенаправляти активні вкладки на URL, контрольовані зловмисниками."] class step16_browser_hijack collection %% Connections u2013 Attack Flow step1_initial_access –>|призводить до| step2_obfuscation step2_obfuscation –>|призводить до| step3_guardrails step3_guardrails –>|призводить до| step4_dead_drop step4_dead_drop –>|призводить до| step5_cred_files step5_cred_files –>|призводить до| step6_browser_creds step6_browser_creds –>|призводить до| step7_private_keys step7_private_keys –>|призводить до| step8_exfil_webhook step8_exfil_webhook –>|призводить до| step9_persistence_rc step9_persistence_rc –>|призводить до| step10_wmi_event step10_wmi_event –>|призводить до| step11_ps_profile step11_ps_profile –>|призводить до| step12_vnc step12_vnc –>|призводить до| step13_multi_stage step13_multi_stage –>|призводить до| step14_input_injection step14_input_injection –>|призводить до| step15_keylog_clip step15_keylog_clip –>|призводить до| step16_browser_hijack "
Атака
Виявлення
Виконання NodeJS з рідкісного місця (через cmdline)
Перегляд
Можлива спроба комунікацій через IP Lookup Domain (через dns)
Перегляд
Можливі точки стійкості [ASEPs – Software/NTUSER Hive] (через event реєстру)
Перегляд
Можлива спроба зловживання Publicnode Ethereum як C2 каналу (через dns_query)
Перегляд
IOC (DestinationIP) для виявлення: GlassWorm ховає RAT всередині шкідливого розширення Chrome
Перегляд
IOC (HashMd5) для виявлення: GlassWorm ховає RAT всередині шкідливого розширення Chrome
Перегляд
IOC (HashSha256) для виявлення: GlassWorm ховає RAT всередині шкідливого розширення Chrome
Перегляд
IOC (HashSha1) для виявлення: GlassWorm ховає RAT всередині шкідливого розширення Chrome
Перегляд
IOC (SourceIP) для виявлення: GlassWorm ховає RAT всередині шкідливого розширення Chrome
Перегляд
IOC (Emails) для виявлення: GlassWorm ховає RAT всередині шкідливого розширення Chrome
Перегляд
Виявлення GlassWorm RAT та ексфільтрації даних [Windows Підключення до мережі]
Перегляд
Виявлення виконання фішингового програмного забезпечення Ledger/Trezor [Windows Створення процесу]
Перегляд
Імітаційне виконання
Попередня умова: Перевірка телеметрії та базової лінії повинні були бути пройдені.
Обґрунтування: Цей розділ деталізує точне виконання техніки супротивника (TTP), розрахованої на запуск правила виявлення. Команди та оповідь ПОВИННІ безпосередньо відображати ідентифіковані TTP та націлені на генерацію саме тієї телеметрії, яку очікує логіка виявлення.
-
Сценарій атаки та команди:
Зловмисник отримав шкідливий виконуваний файл, який прикидається клієнтом гаманця Ledger Live/Trezor. Виконуваний файл називаєтьсяAssaac.exeщоб імітувати легітимний виконуваний файл. Він скидається в каталог%APPDATA%користувача, а супутній JavaScript-файл (index.js) розміщується в прихованій підпапціQtCvyfVWKH. Потім зловмисник виконує виконуваний файл, що змушує Windows зареєструвати подію створення процесу з точною назвою образу та шляхом командного рядка, що відстежує правило Sigma.Крок за кроком:
- Створіть приховану папку і помістіть туди шкідливий скрипт.
- Скопіюйте шкідливий виконуваний файл (
Assaac.exe) у папку AppData користувача. - Запустіть виконуваний файл, який читає
index.jsі починає процедури крадіжки облікових даних.
-
Сценарій регресійного тестування:
# ------------------------------------------------------------ # Встановіть шкідливі файли # ------------------------------------------------------------ $appData = $env:APPDATA $folder = Join-Path $appData "QtCvyfVWKH" $exePath = Join-Path $appData "Assaac.exe" $jsPath = Join-Path $folder "index.js" # Забезпечте наявність прихованої папки New-Item -ItemType Directory -Path $folder -Force | Out-Null # Сховати папку (необов'язково) (Get-Item $folder).Attributes += 'Hidden' # Розгорніть фіктивний шкідливий виконуваний файл (для демонстрації ми використовуємо копію calc.exe) Copy-Item -Path "$env:SystemRootSystem32calc.exe" -Destination $exePath -Force # Розгорніть фіктивний JavaScript-код (вміст не має значення для виявлення) @" // placehold шкідливого завантаження console.log('Виконана крадіжка криптовалютного гаманця'); "@ | Set-Content -Path $jsPath -Encoding UTF8 # ------------------------------------------------------------ # Запустіть шкідливий виконуваний файл (це повинно запустити правило Sigma) # ------------------------------------------------------------ & $exePath "$jsPath" # ------------------------------------------------------------ # Кінець сценарію – залиште артефакти для ручного очищення # ------------------------------------------------------------ -
Команди очищення:
# Закрийте шкідливий процес, якщо він все ще працює Get-Process -Name "Assaac" -ErrorAction SilentlyContinue | Stop-Process -Force # Видаліть створені файли та папку Remove-Item -Path $exePath -Force -ErrorAction SilentlyContinue Remove-Item -Path $jsPath -Force -ErrorAction SilentlyContinue Remove-Item -Path $folder -Recurse -Force -ErrorAction SilentlyContinue