Аналіз кампанії пакетів BigSquatRat npm
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 або заплановані служби, а потім шукайте аналогічні артефакти в середовищі.
Потік атаки
Детекції
LOLBAS WScript / CScript (через process_creation)
Перегляд
Підозріле розширення файлу додано до ключів автозапуску [ASEPs] (через registry_event)
Перегляд
Підозрілі дочірні процеси NodeJS [Linux] (через cmdline)
Перегляд
Ймовірно ініційоване процесом завантаження файлу з Github (через network_connection)
Перегляд
IOCs (Emails) для виявлення: Аналіз кампанії пакету BigSquatRat npm
Перегляд
IOCs (HashSha1) для виявлення: Аналіз кампанії пакету BigSquatRat npm
Перегляд
IOCs (HashSha256) для виявлення: Аналіз кампанії пакету BigSquatRat npm
Перегляд
Виявлення виконання Node.js RAT через wscript.exe [Створення процесу в Windows]
Перегляд
Виявлення шкідливого програмного забезпечення Node.js з використанням заплутаних скриптів і systemctl для стійкості [Створення процесу в Linux]
Перегляд
Виконання моделювання
Попередня вимога: Телеметрія та перевірка базового польоту повинні пройти.
Обґрунтування: У цьому розділі представлено точне виконання техніки супротивника (ТТP), розробленої для виклику правила виявлення. Команди та розповіді ПОВИННІ безпосередньо відображати ідентифіковані ТТP та націлені на генерацію саме тієї телеметрії, яка очікується в логіці виявлення. Абстрактні або несумісні приклади можуть призвести до неправильної діагностики.
-
Атака та команди:
Атакуючий має шкідливий JavaScript-пейлоад, що потребує виконання середовища Node.js. Щоб уникнути стандартної білих списків програм, вони використовуютьwscript.exe—нативний Windows сценарій—для запускуnode.exeнепрямо, створюючи батьківсько-дочірні відносини, що відповідають правилу виявлення. Кроки такі:- Розмістіть шкідливий скрипт (
malicious.js), що просто створюєnode.exeз пейлоадом. - Створіть обгортковий JavaScript (
launcher.js), який виконає Windows Script Host; цей обгортувач використовуєWScript.Shellдля запускуnode.exeз пейлоадом. - Виконайте обгортку через
wscript.exe //B //Nologo launcher.js. - Отримане дерево процесів виглядає так
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