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

31 Mar 2026 17:31

Атака на ланцюг постачання на Axios завантажує шкідливу залежність з NPM

Author Photo
Ruslan Mikhalov Керівник досліджень загроз у SOC Prime linkedin icon Стежити
Атака на ланцюг постачання на Axios завантажує шкідливу залежність з NPM
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Зловмисний пакет npm, plain-crypto-js@4.2.1, був опублікований і пізніше підтриманий як транзитивна залежність через скомпрометовані випуски широко використовуваного клієнта JavaScript HTTP Axios. Пакет використовує скрипт після встановлення для доставки багатостадійного трояну віддаленого доступу, націленого на Windows, macOS та Linux. Атака, схоже, спиралася на довготривалі маркери npm, які дозволяли загрозливим акторам надсилати зловмисні версії поза звичайним процесом випуску проекту. Виявлення пошкодженої залежності на ранньому етапі може зупинити RAT до виконання на уражених системах.

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

Дослідження Socket провели статичний аналіз setup.js дропера і декодували закодовані рядки, щоб виявити домен C2, логіку доставки навантаження та націлені шляхи файлової системи. Дослідники виявили три скомпрометовані версії Axios і два додаткові пакети npm, які містили той самий зловмисний код. Вони також вийняли мережеві індикатори, шляхи файлів і рядки користувацьких агентів, які можна використовувати для створення правил виявлення.

Пом’якшення

Організації повинні анулювати будь-які довготривалі маркери npm і змінити облікові дані для всіх потенційно уражених облікових записів. Скомпрометовані версії Axios і будь-які пакети, що залежать від plain-crypto-js@4.2.1 повинні бути негайно видалені або знижені. Команди також повинні перевірити lockfiles, CI/CD конвеєри та заходи безпеки ланцюга поставок програмного забезпечення, щоб ідентифікувати несанкціоновану публічну активність та зменшити ризик майбутнього компрометації пакетів.

Реакція

Команди безпеки повинні моніторити журнали установки npm на предмет згадок про plain-crypto-js@4.2.1 і уражені версії Axios. Повинні бути створені правила виявлення для виконання гачка postinstall, доступу до мережі на sfrclak.com, і зловмисного рядка користувацького агента. Якщо компрометація підтверджена, уражені системи повинні бути поміщені в карантин, зібрана летуча пам’ять для аналізу, а хост перевстановлений, якщо RAT виявлено.

graph TB %% Class definitions classDef technique fill:#c2e0ff classDef tool fill:#ffd9b3 classDef malware fill:#f5b7b1 classDef process fill:#d5f5e3 %% Technique nodes tech_t1195_002[“<b>Техніка</b> – <b>T1195.002</b> Компрометація ланцюга постачання: компрометація програмного забезпечення<br/><b>Опис</b>: Зловмисники компрометують оновлення ПЗ або розповсюдження пакетів для доставки шкідливого коду.”] class tech_t1195_002 technique tech_t1127_003[“<b>Техніка</b> – <b>T1127.003</b> Виконання через довірені інструменти розробника: post-install hook JamPlus<br/><b>Опис</b>: Шкідливий код виконується через post-install скрипт, вставлений у довірену утиліту розробника.”] class tech_t1127_003 technique tech_t1059_004[“<b>Техніка</b> – <b>T1059.004</b> Інтерпретатор команд і скриптів: Unix Shell<br/><b>Опис</b>: Використання команд Unix (curl, chmod, nohup) для завантаження та запуску payload’ів.”] class tech_t1059_004 technique tech_t1059_001[“<b>Техніка</b> – <b>T1059.001</b> Інтерпретатор команд і скриптів: PowerShell<br/><b>Опис</b>: Виконання команд PowerShell для запуску payload’у під Windows.”] class tech_t1059_001 technique tech_t1059_005[“<b>Техніка</b> – <b>T1059.005</b> Інтерпретатор команд і скриптів: Visual Basic<br/><b>Опис</b>: Запуск payload’у на основі VBScript.”] class tech_t1059_005 technique tech_t1059_003[“<b>Техніка</b> – <b>T1059.003</b> Інтерпретатор команд і скриптів: Windows Command Shell<br/><b>Опис</b>: Виконання batch-команд через cmd.exe.”] class tech_t1059_003 technique tech_t1027_014[“<b>Техніка</b> – <b>T1027.014</b> Обфускація файлів або інформації: поліморфний код<br/><b>Опис</b>: Використання кастомного Base64 + XOR для приховування шкідливого коду.”] class tech_t1027_014 technique tech_t1070_004[“<b>Техніка</b> – <b>T1070.004</b> Видалення індикаторів на хості: видалення файлів<br/><b>Опис</b>: Видалення setup.js та package.json для стирання слідів.”] class tech_t1070_004 technique tech_t1195_001[“<b>Техніка</b> – <b>T1195.001</b> Компрометація ланцюга постачання: компрометація залежностей і інструментів розробки<br/><b>Опис</b>: Інʼєкція plain-crypto-js у залежність Axios.”] class tech_t1195_001 technique tech_t1127[“<b>Техніка</b> – <b>T1127</b> Виконання через довірені інструменти (npm lifecycle hook)<br/><b>Опис</b>: Використання lifecycle hooks npm для виконання шкідливого коду під час встановлення пакету.”] class tech_t1127 technique tech_t1082[“<b>Техніка</b> – <b>T1082</b> Виявлення інформації про систему<br/><b>Опис</b>: Збір версії ОС, hostname, поточного користувача та інших даних.”] class tech_t1082 technique tech_t1219[“<b>Техніка</b> – <b>T1219</b> Засоби віддаленого доступу<br/><b>Опис</b>: Використання macOS Mach-O RAT для віддаленого керування.”] class tech_t1219 technique tech_t1102_002[“<b>Техніка</b> – <b>T1102.002</b> Веб-сервіс: двостороння комунікація<br/><b>Опис</b>: HTTP POST-запити до sfrclak.com для C2-комунікації.”] class tech_t1102_002 technique tech_t1570[“<b>Техніка</b> – <b>T1570</b> Латеральна передача інструментів<br/><b>Опис</b>: Завантаження платформозалежних бінарників або скриптів на скомпрометований хост.”] class tech_t1570 technique tech_t1036_005[“<b>Техніка</b> – <b>T1036.005</b> Маскування: імітація легітимних ресурсів<br/><b>Опис</b>: Перейменування package.md у package.json та використання правдоподібної назви wt.exe.”] class tech_t1036_005 technique tech_t1036_003[“<b>Техніка</b> – <b>T1036.003</b> Маскування: перейменування легітимних утиліт<br/><b>Опис</b>: Перейменування powershell.exe у wt.exe для маскування.”] class tech_t1036_003 technique %% Process / tool nodes (optional illustrative nodes) process_curl[“<b>Процес</b> – команда curl”] class process_curl process process_chmod[“<b>Процес</b> – команда chmod”] class process_chmod process process_nohup[“<b>Процес</b> – команда nohup”] class process_nohup process malware_rat[“<b>Шкідливе ПЗ</b> – macOS Mach-O RAT”] class malware_rat malware %% Connections showing attack flow tech_t1195_002 –>|leads_to| tech_t1127_003 tech_t1127_003 –>|uses| tech_t1059_004 tech_t1059_004 –>|executes| tech_t1059_001 tech_t1059_004 –>|executes| tech_t1059_005 tech_t1059_004 –>|executes| tech_t1059_003 tech_t1059_004 –>|employs| tech_t1027_014 tech_t1059_004 –>|leverages| tech_t1195_001 tech_t1059_004 –>|leverages| tech_t1127 tech_t1059_004 –>|collects| tech_t1082 tech_t1027_014 –>|enables| tech_t1070_004 tech_t1082 –>|enables| tech_t1219 tech_t1219 –>|communicates via| tech_t1102_002 tech_t1102_002 –>|facilitates| tech_t1570 tech_t1570 –>|results in| tech_t1036_005 tech_t1570 –>|results in| tech_t1036_003 %% Optional illustrative process links tech_t1059_004 –>|downloads| process_curl tech_t1059_004 –>|sets permissions| process_chmod tech_t1059_004 –>|runs background| process_nohup malware_rat –>|is the| tech_t1219

Потік атаки

Виявлення

Підозрілі місцезнаходження та назви MacOS – Plist (через file_event)

Команда SOC Prime
31 березня 2026

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

Команда SOC Prime
31 березня 2026

Віддалене завантаження / завантаження файлів через стандартні інструменти (через cmdline)

Команда SOC Prime
31 березня 2026

Макос Підозрілі зміни дозволів на файли в папці Tmp (через cmdline)

Команда SOC Prime
31 березня 2026

Підозріле використання CURL (через cmdline)

Команда SOC Prime
31 березня 2026

Можливе виконання за допомогою chmod та nohup в одній команді (через cmdline)

Команда SOC Prime
31 березня 2026

Завантаження до підозрілих папок (через cmdline)

Команда SOC Prime
31 березня 2026

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

Команда SOC Prime
31 березня 2026

Можливість виконання через приховані командні рядки PowerShell (через cmdline)

Команда SOC Prime
31 березня 2026

Використання Nohup (через cmdline)

Команда SOC Prime
31 березня 2026

IOC (SourceIP) для виявлення: Атака на ланцюг поставок в Axios тягне зловмисну залежність з npm

Правила SOC Prime AI
31 березня 2026

IOC (DestinationIP) для виявлення: Атака на ланцюг поставок в Axios тягне зловмисну залежність з npm

Правила SOC Prime AI
31 березня 2026

IOC (Emails) для виявлення: Атака на ланцюг поставок в Axios тягне зловмисну залежність з npm

Правила SOC Prime AI
31 березня 2026

Евразійська тактика PowerShell і VBScript в атаці на ланцюг поставок [Створення процесу Windows]

Правила SOC Prime AI
31 березня 2026

Виявлення виконання зловмисного гачка postinstall пакету npm [Створення процесу на Linux]

Правила SOC Prime AI
31 березня 2026

Виявлення зловмисного сценарію Python і тимчасового файлу в атаці на ланцюг поставок на Linux [Подія файлу Linux]

Правила SOC Prime AI
31 березня 2026

Перейменований термінал Windows та самовидалювана VBScript виявлені [Подія файлу Windows]

Правила SOC Prime AI
31 березня 2026

Виконання скрипту PowerShell з прихованими і обхідними прапорами [Windows Powershell]

Правила SOC Prime AI
31 березня 2026

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

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

Обґрунтування: Цей розділ розкриває точне виконання техніки супротивника (TTP), призначеної для спрацьовування правила виявлення. Команди і наратив повинні прямо відображати ідентифіковані TTPs і прагнути згенерувати саме ту телеметрію, яку очікує логіка виявлення.

  • Опис атаки і команди:

    Нападник, який отримав обмежені привілеї користувача на скомпрометованій робочій станції, бажає завантажити зловмисний платіжний файл VBScript через легітимний пакет npm (сценарій ланцюга поставок). Щоб уникнути загального виявлення PowerShell, нападник копіює powershell.exe до нового файлу з ім’ям powershell_renamed.exe , але зберігає рядок підпису “powershell” у імені файлу (щоб ще відповідало “Image|contains” перевірці). Потім нападник виконує “where powershell” для пошуку шляху перейменованого двійкового файлу і, нарешті, запускає платіжний файл VBScript за допомогою cscript //nologo для усунення банера логотипу. cscript //nologo Тестовий сценарій регресії:

  • # ————————————————- # Крок 1: Створити перейменовану копію powershell.exe # ————————————————- $src = “$env:SystemRootSystem32WindowsPowerShellv1.0powershell.exe” $dst = “$env:Temppowershell_renamed.exe” Copy-Item -Path $src -Destination $dst -Force # ————————————————- # Крок 2: Використовуйте ‘where’, щоб посилатися на перейменований двійковий файл # ————————————————- $whereOutput = & where.exe powershell_renamed Write-Host “Located renamed PowerShell at: $whereOutput” # ————————————————- # Крок 3: Створити простий зловмисний платіжний файл VBScript # ————————————————- $vbsPath = “$env:Tempmalicious.vbs” @” Set objShell = CreateObject(“WScript.Shell”) objShell.Run “cmd.exe /c echo pwned > $env:Temppwned.txt”, 0, False “@ | Set-Content -Path $vbsPath -Encoding ASCII # ————————————————- # Крок 4: Виконати VBScript тихо, використовуючи cscript //nologo # ————————————————- & $dst -Command “cscript //nologo `”$vbsPath`”” # ————————————————- # Кінець моделювання # ————————————————-

    Команди очищення:
  • Cleanup Commands:

    # Видалити перейменований двійковий файл PowerShell
    Remove-Item -Path "$env:Temppowershell_renamed.exe" -Force -ErrorAction SilentlyContinue
    
    # Видалити зловмисний платіжний файл VBScript
    Remove-Item -Path "$env:Tempmalicious.vbs" -Force -ErrorAction SilentlyContinue
    
    # Видалити докази виконання
    Remove-Item -Path "$env:Temppwned.txt" -Force -ErrorAction SilentlyContinue