42 Repository GitHub Armi Rivelano un Editore npm Nascosto
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
Una campagna sofisticata tracciata come testmetest utilizza pacchetti npm dannosi e repository GitHub compromessi per rubare credenziali e automatizzare il rilascio di pacchetti dannosi. Gli aggressori si affidano a wrapper polimorfici, addon nativi Node.js e payload criptati per eludere il rilevamento. La campagna coinvolge anche infrastrutture usate per scansionare e sfruttare le vulnerabilità di cPanel.
Indagine
I ricercatori di sicurezza di JFrog hanno identificato 42 repository GitHub armati insieme a molteplici pacchetti npm dannosi. Hanno scoperto che gli aggressori usavano una tecnica di camuffamento attraverso un addon nativo in cui un .node compilato decrittografa un payload nascosto durante l’esecuzione. L’indagine ha anche collegato l’attività a shellpanel scanners che prendono di mira i sistemi cPanel tramite CVE-2026-41940.
Mitigazione
Gli utenti dovrebbero rimuovere i pacchetti npm dannosi identificati e ricostruire i sistemi compromessi da fonti affidabili. Le organizzazioni devono ruotare tutte le credenziali potenzialmente compromesse, inclusi GitHub, npm e token cloud. È anche cruciale eseguire un audit sui repository per file di configurazione non autorizzati come .github/init.js e hook di esecuzione imprevisti in package.json file o Makefiles.
Risposta
Quando viene rilevata un’attività dannosa, revocare immediatamente i segreti esposti e ruotare le credenziali. Cercare meccanismi di persistenza come net-health-checker or pkg-runtime. Controllare i log delle GitHub Actions per flussi di lavoro non autorizzati e monitorare i sistemi per payload decrittati scritti in directory temporanee.
Flusso dell’Attacco
Stiamo ancora aggiornando questa parte.
Rilevamenti
File Nascosto Creato su Host Linux (tramite file_event)
Processi Figlio NodeJS Sospetti [Windows] (tramite cmdline)
Possibile Download File da GitHub Iniziato da Processo Insolito (tramite network_connection)
Utilizzo di Nohup (tramite cmdline)
Processi Figlio NodeJS Sospetti [Linux] (tramite cmdline)
Esecuzione di Chmod Sospetta Puntamento a Directory Sospette (tramite cmdline)
Download su Cartelle Sospette (tramite cmdline)
IOC (HashSha256) per rilevare: Oltre testmetest: Camuffamento con Addon Nativo e 42 Repository GitHub Armati Rivelano un Editore npm Nascosto
IOC (SourceIP) per rilevare: Oltre testmetest: Camuffamento con Addon Nativo e 42 Repository GitHub Armati Rivelano un Editore npm Nascosto
IOC (DestinationIP) per rilevare: Oltre testmetest: Camuffamento con Addon Nativo e 42 Repository GitHub Armati Rivelano un Editore npm Nascosto
Controllo Presenza Debugger tramite IsDebuggerPresent o CheckRemoteDebuggerPresent [Registro di Sicurezza Windows]
Creazione di Processo Sospetto e Esecuzione di File JS Temporaneo [Creazione di Processo Windows]
Rilevamento dell’Esecuzione di Addon Nativo Node.js [Caricamento Immagine Windows]
Rilevata Esecuzione di Processi Maligni di Addon Node [Creazione Processo Linux]
Letture Sospette Mappatura Memoria Addon Nativo [Google Cloud Platform]
Esecuzione Simulazione
-
Narrativa & Comandi d’Attacco: L’avversario è riuscito a rilasciare un payload JavaScript dannoso nella directory temporanea dell’utente, nominandolo
.ncper potenzialmente mimare un file correlato a Netcat o semplicemente per offuscarne lo scopo. Per eseguire questo, l’avversario utilizza un loader che invoca l’CreateProcessAAPI Win32 per avviare il Windows Script Host (wscript.exe) con il file temporaneo come argomento. Questa sequenza specifica—usando la versione ANSI dell’API di creazione del processo per eseguire uno script da%TEMP%—è esattamente il modello che la regola di rilevamento è progettata per intercettare. -
Script di Test di Regressione:
# Script di Simulazione: Avvio 'Creazione di Processo Sospetto ed Esecuzione di File JS Temporaneo' # 1. Definisci i percorsi $tempPath = $env:TEMP $targetFile = Join-Path $tempPath ".nc" # 2. Crea un file JS dannoso fittizio nella directory %TEMP% # Nota: Lo nominiamo .nc secondo la logica di rilevamento richiesta "WScript.Echo('Attività Dannosa Simulata');" | Out-File -FilePath $targetFile -Encoding ascii Write-Host "[+] File dannoso creato in: $targetFile" # 3. Simula l'esecuzione tramite wscript.exe # In uno scenario reale, la 'CallTrace' contenente 'CreateProcessA' è generata # dalla chiamata API di Windows usata dal loader del malware. # Eseguire questo tramite PowerShell/CMD genererà l'evento di creazione del processo. Write-Host "[+] Esecuzione dello script per innescare il rilevamento..." Start-Process "wscript.exe" -ArgumentList "`"$targetFile`"" Write-Host "[+] Comando di simulazione inviato." -
Comandi per la Pulizia:
# Script di Pulizia: Rimuovi artefatti della simulazione $tempPath = $env:TEMP $targetFile = Join-Path $tempPath ".nc" if (Test-Path $targetFile) { Remove-Item -Path $targetFile -Force Write-Host "[+] Pulizia riuscita: $targetFile rimosso." } else { Write-Host "[!] Pulizia fallita: File non trovato." }