SOC Prime Bias: Критичний

22 Jan 2026 19:09

Аналіз кампанії пакетів BigSquatRat npm

Author Photo
Ruslan Mikhalov Керівник досліджень загроз у SOC Prime linkedin icon Стежити
Аналіз кампанії пакетів BigSquatRat npm
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Звіт описує шкідливий пакет npm, bigmathix, який встановлює троян для віддаленого доступу в Node.js. Він використовує заплутаний багатоступінчастий код для отримання подальших корисних навантажень зі змісту GitHub, керованого атакуючим, та aurevian.cloud. Виявлення ускладнюється динамічними ключами дешифрування та необхідним ініціалізатором, який визначає виконання, що відповідає цільовій атаці на ланцюг постачання на JavaScript-розробників.

Розслідування

Дослідники деобфускували пакет, щоб відновити ланцюг, який створює дочірній процес, виконує вирішення DNS та дешифрує вбудовані URL за допомогою отриманих ключів. Шляхом перебору значення ініціалізатора, вони відновили друге стадійне корисне навантаження з aurevian.cloud, яке ввело додаткову обфускацію в остаточну логіку RAT. Аналітики також зв’язали суміжні репозиторії GitHub і додаткові пакети npm, опубліковані приблизно у схожий час, щоб окреслити обсяг кампанії.

Пом’якшення

Уникайте неперевірених залежностей npm—особливо новопублікованих, з малою кількістю завантажень, або модулів з різкими змінами версій—та перевіряйте цілісність за допомогою хешів/контролів походження. Відстежуйте підозрілі дочірні процеси, породжені node.exe, і несподівані вихідні запити до невідомих доменів. Застосовуйте фільтрацію вихідного трафіку для aurevian.cloud і попереджуйте про стійкість, таку як ключі автозапуску Windows чи сервісу systemd від Node.js.

Реакція

Якщо bigmathix ідентифіковано, ізолюйте кінцевий пристрій, видаліть пакет та припиніть породжені процеси Node.js. Видаліть створені ключі автозапуску або модулі systemd, заблокуйте пов’язані домени/IP-адреси, і збирайте журнали, що містять дані DNS, походження процесів і мережевий вихідний трафік. Проведіть форензичний аналіз для виявлення скачаних корисних навантажень та стійкості, такі як запуск wscript.exe або заплановані служби, а потім шукайте аналогічні артефакти в середовищі.

“graph TB %% Class Definitions Section classDef action fill:#99ccff classDef process fill:#ffcc99 classDef persistence fill:#ccffcc classDef c2 fill:#ccccff classDef cleanup fill:#ffccff %% Nodes Definitions node_supply_chain[“<b>Техніка</b> – T1195.001 Компрометація ланцюга постачання<br/><b>Опис</b>: Компрометація програмного ланцюга постачання для розповсюдження шкідливого коду.<br/><b>Деталі</b>: Опубліковано шкідливий пакет npm ‘bigmathix’.”] class node_supply_chain action node_obfuscation[“<b>Техніка</b> – T1027 Заплутані файли або інформація<br/><b>Підтехніка</b>: T1027.009 (Стеганографія), T1027.004 (Компиляція після доставки)<br/><b>Опис</b>: Пакет містить сильно заплутаний JavaScript, який деобфускується під час виконання.”] class node_obfuscation action node_process_creation[“<b>Техніка</b> – T1543 Створення або зміна системного процесу<br/><b>Підтехніка</b>: T1543.001 (Запуск агента)<br/><b>Опис</b>: Завантажувач створює дочірній процес Node.js і руйнує дерево процесів, щоб приховати виконання (T1036.009).”] class node_process_creation process node_dns_key_derivation[“<b>Техніка</b> – T1071.004 Протокол прикладного шару DNS<br/><b>Додатково</b>: T1590.002 (Домен/IP), T1596.001 (Отримання криптографічного матеріалу)<br/><b>Опис</b>: Генерує числовий аргумент, виконує пошук DNS IP, об’єднує IP з хешем SHAu2011256 віддаленого README, щоб отримати ключі дешифрування.”] class node_dns_key_derivation action node_encrypted_download[“<b>Техніка</b> – T1573.001 Зашифрований канал Асиметрична криптографія<br/><b>Опис</b>: Використовує AESu2011GCM зашифрований канал для отримання другого стадійного корисного навантаження з aurevian.cloud.”] class node_encrypted_download action node_persistence_linux[“<b>Техніка</b> – T1543.002 Сервіс systemd<br/><b>Опис</b>: Створює сервіс systemd та запускає його через systemctl для стійкості на Linux.”] class node_persistence_linux persistence node_persistence_windows[“<b>Техніка</b> – T1547.014 Ключі автозапуску реєстру<br/><b>Опис</b>: Створює ASEP runu2011key, який запускає wscript.exe u2192 node.exe для стійкості на Windows.”] class node_persistence_windows persistence node_c2[“<b>Техніка</b> – T1104 Передача інструментів входу (C2)<br/><b>Опис</b>: RAT опитує C2, виконує отримані команди та перевіряє наявність розширення MetaMask Chrome.”] class node_c2 c2 node_cleanup[“<b>Техніка</b> – T1070.004 Видалення файлів, T1070.009 Очистка реєстру<br/><b>Опис</b>: Остання стадія видаляє свої файли та видаляє записи реєстру/runu2011key, щоб стерти докази.”] class node_cleanup cleanup %% З’єднання, що показують потік атаки node_supply_chain u002du002d>|перехід до| node_obfuscation node_obfuscation u002du002d>|перехід до| node_process_creation node_process_creation u002du002d>|використовує| node_dns_key_derivation node_dns_key_derivation u002du002d>|використовує| node_encrypted_download node_encrypted_download u002du002d>|дозволяє| node_persistence_linux node_encrypted_download u002du002d>|дозволяє| node_persistence_windows node_persistence_linux u002du002d>|підтримує| node_c2 node_persistence_windows u002du002d>|підтримує| node_c2 node_c2 u002du002d>|запускає| node_cleanup “

Потік атаки

Детекції

LOLBAS WScript / CScript (через process_creation)

Команда SOC Prime
21 січня 2026

Підозріле розширення файлу додано до ключів автозапуску [ASEPs] (через registry_event)

Команда SOC Prime
21 січня 2026

Підозрілі дочірні процеси NodeJS [Linux] (через cmdline)

Команда SOC Prime
21 січня 2026

Ймовірно ініційоване процесом завантаження файлу з Github (через network_connection)

Команда SOC Prime
21 січня 2026

IOCs (Emails) для виявлення: Аналіз кампанії пакету BigSquatRat npm

SOC Prime AI Правила
21 січня 2026

IOCs (HashSha1) для виявлення: Аналіз кампанії пакету BigSquatRat npm

SOC Prime AI Правила
21 січня 2026

IOCs (HashSha256) для виявлення: Аналіз кампанії пакету BigSquatRat npm

SOC Prime AI Правила
21 січня 2026

Виявлення виконання Node.js RAT через wscript.exe [Створення процесу в Windows]

SOC Prime AI Правила
21 січня 2026

Виявлення шкідливого програмного забезпечення Node.js з використанням заплутаних скриптів і systemctl для стійкості [Створення процесу в Linux]

SOC Prime AI Правила
21 січня 2026

Виконання моделювання

Попередня вимога: Телеметрія та перевірка базового польоту повинні пройти.

Обґрунтування: У цьому розділі представлено точне виконання техніки супротивника (ТТP), розробленої для виклику правила виявлення. Команди та розповіді ПОВИННІ безпосередньо відображати ідентифіковані ТТP та націлені на генерацію саме тієї телеметрії, яка очікується в логіці виявлення. Абстрактні або несумісні приклади можуть призвести до неправильної діагностики.

  • Атака та команди:
    Атакуючий має шкідливий JavaScript-пейлоад, що потребує виконання середовища Node.js. Щоб уникнути стандартної білих списків програм, вони використовують wscript.exe—нативний Windows сценарій—для запуску node.exe непрямо, створюючи батьківсько-дочірні відносини, що відповідають правилу виявлення. Кроки такі:

    1. Розмістіть шкідливий скрипт (malicious.js), що просто створює node.exe з пейлоадом.
    2. Створіть обгортковий JavaScript (launcher.js), який виконає Windows Script Host; цей обгортувач використовує WScript.Shell для запуску node.exe з пейлоадом.
    3. Виконайте обгортку через wscript.exe //B //Nologo launcher.js.
    4. Отримане дерево процесів виглядає так wscript.exe → node.exe → malicious.js, генеруючи цільову телеметрію.
  • Сценарій тестування регресії:
    Наступний скрипт PowerShell автоматизує весь ланцюжок на Windows тестовому хості.

    # -------------------------------------------------
    # Тест регресії – виконання Node.js RAT через wscript
    # -------------------------------------------------
    
    # Змінні
    $tempPath = "$env:TEMP"
    $launcherPath = Join-Path $tempPath "launcher.js"
    $payloadPath  = Join-Path $tempPath "malicious.js"
    $nodePath     = "C:Program Filesnodejsnode.exe"   # Відкоригуйте, якщо встановлено в іншому місці
    
    # 1. Записати шкідливий корисний вантаж (проста консоль для демонстрації)
    $payloadContent = @"
    console.log('Шкідливий корисний вантаж виконано');
    // Тут будуть реальні коди RAT
    "@
    $payloadContent | Out-File -FilePath $payloadPath -Encoding ASCII
    
    # 2. Записати обгортувач, який виконуватиме wscript
    $launcherContent = @"
    var shell = WScript.CreateObject("WScript.Shell");
    // Виконати node.exe зі шкідливим скриптом
    var cmd = "`"$nodePath`" `"$payloadPath`"";
    shell.Run(cmd, 0, false);
    "@
    $launcherContent | Out-File -FilePath $launcherPath -Encoding ASCII
    
    # 3. Виконати ланцюг через wscript
    Write-Host "Запуск шкідливого ланцюга..."
    wscript.exe //B //Nologo $launcherPath
    
    # Запауза для захоплення телеметрії
    Start-Sleep -Seconds 5
    
    # 4. Необов'язково: перевірити, чи працює процес node (для ручного спостереження)
    Get-Process -Name node -ErrorAction SilentlyContinue
    
    # -------------------------------------------------
    # Кінець тесту регресії
    # -------------------------------------------------
  • Команди очищення: Видалення артефактів і завершення залишкових процесів.

    # Сценарій очищення – запустити після перевірки
    $tempPath = "$env:TEMP"
    Remove-Item -Path (Join-Path $tempPath "launcher.js") -ErrorAction SilentlyContinue
    Remove-Item -Path (Join-Path $tempPath "malicious.js") -ErrorAction SilentlyContinue
    
    # Завершити будь-які залишкові процеси node.exe, запущені тестом
    Get-Process -Name node -ErrorAction SilentlyContinue | Stop-Process -Force