SOC Prime Bias: Kritisch

31 März 2026 17:31

Supply-Chain-Angriff auf Axios bezieht bösartige Abhängigkeit von NPM

Author Photo
Ruslan Mikhalov Leiter der Bedrohungsforschung bei SOC Prime linkedin icon Folgen
Supply-Chain-Angriff auf Axios bezieht bösartige Abhängigkeit von NPM
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Ein böswilliges npm-Paket, plain-crypto-js@4.2.1, wurde veröffentlicht und später als transitive Abhängigkeit durch kompromittierte Veröffentlichungen des weit verbreiteten JavaScript-HTTP-Clients Axios eingebunden. Das Paket verwendet ein Post-Installationsskript, um einen mehrstufigen Remote-Access-Trojaner bereitzustellen, der auf Windows, macOS und Linux abzielt. Der Angriff scheint auf langlebigen npm-Token zu beruhen, die es den Bedrohungsakteuren ermöglichen, böswillige Versionen außerhalb des üblichen Veröffentlichungsworkflows des Projekts zu verbreiten. Das frühzeitige Erkennen der manipulierten Abhängigkeit kann den RAT stoppen, bevor er auf betroffenen Systemen ausgeführt wird.

Untersuchung

Socket Research führte eine statische Analyse des setup.js -Droppers durch und entschlüsselte kodierte Zeichenfolgen, um die C2-Domain, die Logik der Payload-Lieferung und die angezielten Dateisystempfade aufzudecken. Die Forscher identifizierten drei kompromittierte Axios-Versionen und zwei zusätzliche npm-Pakete, die denselben böswilligen Code enthielten. Sie extrahierten auch Netzwerkindikatoren, Datei-Pfade und User-Agent-Zeichenfolgen, die für die Erkennungserstellung und Regelgenerierung verwendet werden können.

Abschwächung

Organisationen sollten alle langlebigen npm-Token widerrufen und Anmeldeinformationen für alle potenziell betroffenen Konten ändern. Kompromittierte Axios-Versionen und jegliche Pakete, die von plain-crypto-js@4.2.1 abhängig sind, sollten sofort entfernt oder zurückgestuft werden. Teams sollten auch Lockfiles, CI/CD-Pipelines und Sicherheitskontrollen der Softwarelieferkette überprüfen, um unautorisierte Veröffentlichungstätigkeiten zu identifizieren und die Wahrscheinlichkeit zukünftiger Paketkompromittierungen zu verringern.

Reaktion

Sicherheitsteams sollten npm-Installationsprotokolle auf Verweise auf plain-crypto-js@4.2.1 und die betroffenen Axios-Versionen überwachen. Erkennungsregeln sollten für die Ausführung des Postinstall-Hooks, den Netzwerkzugang zu sfrclak.comund die bösartige User-Agent-Zeichenfolge erstellt werden. Wenn eine Kompromittierung bestätigt wird, sollten betroffene Systeme isoliert, flüchtiger Speicher zur Analyse gesammelt und der Host neu erstellt werden, wenn der RAT gefunden wird.

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>Technik</b> – <b>T1195.002</b> Lieferkettenangriff: Software kompromittieren<br/><b>Beschreibung</b>: Angreifer kompromittieren Updates oder Paketverteilung zur Ausführung von Schadcode.“] class tech_t1195_002 technique tech_t1127_003[„<b>Technik</b> – <b>T1127.003</b> Proxy-Ausführung über vertrauenswürdige Tools<br/><b>Beschreibung</b>: Schadcode über post-install Skript.“] class tech_t1127_003 technique tech_t1059_004[„<b>Technik</b> – <b>T1059.004</b> Unix Shell<br/><b>Beschreibung</b>: Nutzung von curl, chmod, nohup.“] class tech_t1059_004 technique tech_t1059_001[„<b>Technik</b> – <b>T1059.001</b> PowerShell“] class tech_t1059_001 technique tech_t1059_005[„<b>Technik</b> – <b>T1059.005</b> Visual Basic“] class tech_t1059_005 technique tech_t1059_003[„<b>Technik</b> – <b>T1059.003</b> Windows CMD“] class tech_t1059_003 technique tech_t1027_014[„<b>Technik</b> – <b>T1027.014</b> Verschleierung“] class tech_t1027_014 technique tech_t1070_004[„<b>Technik</b> – <b>T1070.004</b> Spuren löschen“] class tech_t1070_004 technique tech_t1195_001[„<b>Technik</b> – <b>T1195.001</b> Abhängigkeiten kompromittieren“] class tech_t1195_001 technique tech_t1127[„<b>Technik</b> – <b>T1127</b> npm Hooks“] class tech_t1127 technique tech_t1082[„<b>Technik</b> – <b>T1082</b> Systeminformationen sammeln“] class tech_t1082 technique tech_t1219[„<b>Technik</b> – <b>T1219</b> Remotezugriff“] class tech_t1219 technique tech_t1102_002[„<b>Technik</b> – <b>T1102.002</b> Webkommunikation“] class tech_t1102_002 technique tech_t1570[„<b>Technik</b> – <b>T1570</b> Laterale Übertragung“] class tech_t1570 technique tech_t1036_005[„<b>Technik</b> – <b>T1036.005</b> Tarnung“] class tech_t1036_005 technique tech_t1036_003[„<b>Technik</b> – <b>T1036.003</b> Umbenennung“] class tech_t1036_003 technique process_curl[„<b>Prozess</b> – curl“] class process_curl process process_chmod[„<b>Prozess</b> – chmod“] class process_chmod process process_nohup[„<b>Prozess</b> – nohup“] class process_nohup process malware_rat[„<b>Malware</b> – macOS RAT“] class malware_rat malware %% Connections (UNCHANGED) 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 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

Angriffsablauf

Erkennungen

Verdächtige MacOS – Plist-Standorte und Namen (via file_event)

SOC Prime Team
31. März 2026

Verdächtige NodeJS-Kindprozesse [Windows] (via cmdline)

SOC Prime Team
31. März 2026

Hochladen / Herunterladen von Remote-Dateien über Standardwerkzeuge (via cmdline)

SOC Prime Team
31. März 2026

MacOS Verdächtige Änderung der Datei-Berechtigungen im Tmp-Ordner (via cmdline)

SOC Prime Team
31. März 2026

Verdächtige CURL-Nutzung (via cmdline)

SOC Prime Team
31. März 2026

Mögliche Ausführung durch die Verwendung von chmod und nohup in einem einzelnen Befehl (via cmdline)

SOC Prime Team
31. März 2026

Downloads in verdächtige Ordner (via cmdline)

SOC Prime Team
31. März 2026

LOLBAS WScript / CScript (via process_creation)

SOC Prime Team
31. März 2026

Die Möglichkeit der Ausführung durch versteckte PowerShell-Befehlszeilen (via cmdline)

SOC Prime Team
31. März 2026

Nohup-Nutzung (via cmdline)

SOC Prime Team
31. März 2026

IOCs (SourceIP) zur Erkennung: Lieferkettenangriff auf Axios zieht böswillige Abhängigkeit von npm

SOC Prime AI-Regeln
31. März 2026

IOCs (DestinationIP) zur Erkennung: Lieferkettenangriff auf Axios zieht böswillige Abhängigkeit von npm

SOC Prime AI-Regeln
31. März 2026

IOCs (E-Mails) zur Erkennung: Lieferkettenangriff auf Axios zieht böswillige Abhängigkeit von npm

SOC Prime AI-Regeln
31. März 2026

PowerShell- und VBScript-Ausweichtaktiken im Lieferkettenangriff [Windows Prozess-Erstellung]

SOC Prime AI-Regeln
31. März 2026

Erkennung der Ausführung bösartiger npm-Paketpostinstall-Hooks [Linux-Prozess-Erstellung]

SOC Prime AI-Regeln
31. März 2026

Erkennung eines bösartigen Python-Skripts und temporärer Datei im Linux-Lieferkettenangriff [Linux-Datei-Ereignis]

SOC Prime AI-Regeln
31. März 2026

Umbenanntes Windows-Terminal und selbstlöschendes VBScript erkannt [Windows-Datei-Ereignis]

SOC Prime AI-Regeln
31. März 2026

PowerShell-Skriptausführung mit versteckten und Umgehungs-Flags [Windows PowerShell]

SOC Prime AI-Regeln
31. März 2026

Simulation Ausführung

Voraussetzung: Der Telemetrie- und Basislinientest muss bestanden worden sein.

Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der Adversary-Technik (TTP), die darauf ausgelegt ist, die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.

  • Angriffs-Narrativ & Befehle:

    Ein Angreifer, der begrenzte Benutzerrechte auf einer kompromittierten Arbeitsstation erlangt hat, möchte eine bösartige VBScript-Payload über ein legitimes npm-Paket (Lieferketten-Szenario) herunterladen. Um generischen PowerShell-Erkennung auszuweichen, kopiert der Angreifer powershell.exe in eine neue Datei namens powershell_renamed.exe hält aber die Zeichenfolge „powershell“ im Dateinamen bei (sodass der Image|contains Check immer noch übereinstimmt). Der Angreifer führt dann eine “where powershell”-Abfrage aus, um den Pfad des umbenannten Binärdatei zu ermitteln und startet schließlich die VBScript-Payload mit cscript //nologo um das Logo-Banner zu unterdrücken.

  • Regressionstest-Skript:

    # -------------------------------------------------
    # Schritt 1: Erstellen einer umbenannten Kopie von powershell.exe
    # -------------------------------------------------
    $src = "$env:SystemRootSystem32WindowsPowerShellv1.0powershell.exe"
    $dst = "$env:Temppowershell_renamed.exe"
    Copy-Item -Path $src -Destination $dst -Force
    
    # -------------------------------------------------
    # Schritt 2: Verwenden von 'where', um auf die umbenannte Binärdatei zu verweisen
    # -------------------------------------------------
    $whereOutput = & where.exe powershell_renamed
    Write-Host "Umbenannte PowerShell gefunden unter: $whereOutput"
    
    # -------------------------------------------------
    # Schritt 3: Erstellen einer einfachen bösartigen VBScript-Payload
    # -------------------------------------------------
    $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
    
    # -------------------------------------------------
    # Schritt 4: Ausführen des VBScript still mit cscript //nologo
    # -------------------------------------------------
    & $dst -Command "cscript //nologo `"$vbsPath`""
    # -------------------------------------------------
    # Ende der Simulation
    # -------------------------------------------------
  • Bereinigungskommandos:

    # Entfernen der umbenannten PowerShell-Binärdatei
    Remove-Item -Path "$env:Temppowershell_renamed.exe" -Force -ErrorAction SilentlyContinue
    
    # Löschen der bösartigen VBScript-Datei
    Remove-Item -Path "$env:Tempmalicious.vbs" -Force -ErrorAction SilentlyContinue
    
    # Entfernen von Beweisen für die Ausführung
    Remove-Item -Path "$env:Temppwned.txt" -Force -ErrorAction SilentlyContinue