Attacco alla Supply Chain su Axios: Scaricata Dipendenza Maligna da NPM
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Un pacchetto npm dannoso, plain-crypto-js@4.2.1, è stato pubblicato e successivamente inserito come dipendenza transitiva attraverso versioni compromesse del noto client JavaScript HTTP Axios. Il pacchetto utilizza uno script post-installazione per distribuire un trojan di accesso remoto multi-stadio che prende di mira Windows, macOS e Linux. L’attacco sembra aver fatto affidamento su token npm di lunga durata, consentendo agli attori della minaccia di diffondere versioni dannose al di fuori del normale flusso di rilascio del progetto. Rilevare in anticipo la dipendenza manomessa può fermare il RAT prima dell’esecuzione sui sistemi interessati.
Indagine
Socket Research ha effettuato un’analisi statica del setup.js dropper e ha deoffuscato stringhe codificate per esporre il dominio C2, la logica di consegna del payload e i percorsi del file system target. I ricercatori hanno identificato tre versioni compromesse di Axios e altri due pacchetti npm che contenevano lo stesso codice dannoso. Hanno inoltre estratto indicatori di rete, percorsi dei file e stringhe user-agent che possono essere utilizzate per l’ingegneria della rilevazione e la creazione di regole.
Mitigazione
Le organizzazioni dovrebbero revocare eventuali token npm di lunga durata e ruotare le credenziali per tutti gli account potenzialmente colpiti. Le versioni compromesse di Axios e qualsiasi pacchetto che dipende da plain-crypto-js@4.2.1 dovrebbero essere rimosse o declassate immediatamente. I team dovrebbero anche esaminare i file di blocco, le pipeline CI/CD e i controlli di sicurezza della catena di fornitura del software per identificare attività di pubblicazione non autorizzate e ridurre la possibilità di compromissioni future del pacchetto.
Risposta
I team di sicurezza dovrebbero monitorare i log di installazione npm per riferimenti a plain-crypto-js@4.2.1 e alle versioni di Axios colpite. Dovrebbero essere create regole di rilevazione per l’esecuzione del hook postinstall, l’accesso alla rete a sfrclak.com, e la stringa user-agent dannosa. Se la compromissione è confermata, i sistemi colpiti dovrebbero essere messi in quarantena, la memoria volatile raccolta per l’analisi, e l’host rimesso a posto se il RAT è trovato.
Flusso di Attacco
Rilevamenti
MacOS Sospetti – Posizioni e Nomi dei Plist (via file_event)
Visualizza
Processi Figlio Sospetti NodeJS [Windows] (via cmdline)
Visualizza
Caricamento / Download di File Remoti tramite Strumenti Standard (via cmdline)
Visualizza
Modifica dei Permessi dei File nella Cartella Tmp Sospetti su MacOS (via cmdline)
Visualizza
Uso Sospetto di CURL (via cmdline)
Visualizza
Possibile Esecuzione Tramite Uso di chmod e nohup in un Unico Comando (via cmdline)
Visualizza
Download in Cartelle Sospette (via cmdline)
Visualizza
LOLBAS WScript / CScript (via process_creation)
Visualizza
Possibilità di Esecuzione Tramite Linee di Comando PowerShell Nascoste (via cmdline)
Visualizza
Uso di Nohup (via cmdline)
Visualizza
IoC (SourceIP) da rilevare: Attacco alla Catena di Fornitura su Axios Estrae Dipendenza Dannosa da npm
Visualizza
IoC (DestinationIP) da rilevare: Attacco alla Catena di Fornitura su Axios Estrae Dipendenza Dannosa da npm
Visualizza
IoC (Email) da rilevare: Attacco alla Catena di Fornitura su Axios Estrae Dipendenza Dannosa da npm
Visualizza
Tattiche di Evasione PowerShell e VBScript nell’Attacco alla Catena di Fornitura [Creazione Processo Windows]
Visualizza
Rilevamento dell’Esecuzione del Hook Postinstall del Pacchetto npm Dannoso [Creazione Processo Linux]
Visualizza
Rilevamento di Script Python Dannosi e File Temporanei in Attacco alla Catena di Fornitura Linux [Evento File Linux]
Visualizza
Terminale Windows Ridenominato e VBScript Auto-eliminante Rilevato [Evento File Windows]
Visualizza
Esecuzione di Script PowerShell con Flag Nascosti e Bypass [Powershell di Windows]
Visualizza
Esecuzione della Simulazione
Prerequisito: Il Controllo di Idoneità di Telemetria e Baseline Deve Aver Ottenuto Risultati Positivi.
Motivo: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per innescare la regola di rilevamento. I comandi e la narrativa DEVONO riflettere direttamente le TTP identificate e mirare a generare esattamente la telemetria prevista dalla logica di rilevamento.
-
Narrativa dell’Attacco & Comandi:
Un attaccante che ha ottenuto privilegi utente limitati su una workstation compromessa desidera scaricare un payload dannoso VBScript tramite un pacchetto npm legittimo (scenario di catena di fornitura). Per evitare il rilevamento generale di PowerShell, l’attaccante copia
powershell.exein un nuovo file chiamatopowershell_renamed.exema mantiene la sottostringa “powershell” nel nome del file (quindi il controlloImage|containscorrisponde ancora). L’attaccante quindi esegue una ricerca “where powershell” per enumerare il percorso del binario rinominato e infine avvia il payload VBScript concscript //nologoper sopprimere il banner del logo. -
Script di Test di Regressione:
# ------------------------------------------------- # Passo 1: Crea una copia rinominata di powershell.exe # ------------------------------------------------- $src = "$env:SystemRootSystem32WindowsPowerShellv1.0powershell.exe" $dst = "$env:Temppowershell_renamed.exe" Copy-Item -Path $src -Destination $dst -Force # ------------------------------------------------- # Passo 2: Usa 'where' per fare riferimento al binario rinominato # ------------------------------------------------- $whereOutput = & where.exe powershell_renamed Write-Host "Located renamed PowerShell at: $whereOutput" # ------------------------------------------------- # Passo 3: Crea un semplice payload VBScript dannoso # ------------------------------------------------- $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 # ------------------------------------------------- # Passo 4: Esegui silenziosamente il VBScript usando cscript //nologo # ------------------------------------------------- & $dst -Command "cscript //nologo `"$vbsPath`"" # ------------------------------------------------- # Fine della simulazione # ------------------------------------------------- -
Comandi di Pulizia:
# Rimuovi il binario PowerShell rinominato Remove-Item -Path "$env:Temppowershell_renamed.exe" -Force -ErrorAction SilentlyContinue # Elimina il file VBScript dannoso Remove-Item -Path "$env:Tempmalicious.vbs" -Force -ErrorAction SilentlyContinue # Rimuovi le prove dell'esecuzione Remove-Item -Path "$env:Temppwned.txt" -Force -ErrorAction SilentlyContinue