Malware Trovato nel Repository di Tendenza di Hugging Face
Detection stack
- AIDR
- Alert
- ETL
- Query
Riassunto
I ricercatori di HiddenLayer hanno scoperto codice dannoso ospitato nel repository di Hugging Face Open-OSS/privacy-filter che imita un progetto legittimo di OpenAI. Il repo conteneva uno script loader.py che recuperava un comando PowerShell da jsonkeeper.com, il quale scaricava un file batch di seconda fase e un infostealer basato su Rust. Il payload esfiltra credenziali, dati del browser, file dei portafogli di criptovaluta e screenshot, quindi si auto-elimina dopo l’esecuzione di un’attività pianificata one-shot.
Investigazione
L’analisi ha identificato sei fasi dall’esca iniziale fino al finale infostealer in Rust, inclusa un’esecuzione nascosta di PowerShell, un downloader che recupera update.bat da api.eth-fastscan.org, e un file batch che crea uno script runner temporaneo e un’attività pianificata transitoria. È stato osservato traffico di rete verso un dominio C2 recargapopular.com e un dominio correlato welovechinatown.info. Sono stati trovati più repository di Hugging Face sotto l’utente anthfu che riutilizzavano lo stesso loader e URL C2.
Mitigazione
Bloccare i domini e gli URL dannosi elencati al perimetro della rete, e disabilitare l’esecuzione di script PowerShell non firmati sugli endpoint. Rimuovere eventuali file scaricati dai repository compromessi e revocare qualsiasi credenziale che potrebbe essere stata raccolta. Implementare un monitoraggio rigoroso per la creazione di attività pianificate sospette e per le linee di comando anomale di PowerShell.
Risposta
Isolare qualsiasi host che abbia eseguito il loader o start.bat, trattarlo come completamente compromesso e ricostruire il sistema. Ruotare tutte le password memorizzate, i cookie di sessione, i token OAuth e le credenziali dei portafogli di criptovaluta. Cercare connessioni storiche ai domini dannosi e la presenza dei percorsi di file e nomi di attività pianificate indicati.
"grafico TB %% Definizioni delle classi classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef malware fill:#ff6666 classDef credential fill:#ccffcc classDef exfil fill:#c0c0c0 classDef operator fill:#ff9900 %% Definizioni dei nodi malicious_repo["<b>Risorsa</b> – <b>Repository di Hugging Face</b><br/>Contiene start.bat e loader.py dannosi"] class malicious_repo file action_user_execution_link["<b>Azione</b> – <b>T1204.001 Esecuzione Utente: Link Dannoso</b><br/>La vittima clicca su un link al repository dannoso"] class action_user_execution_link action file_start_bat["<b>File</b> – start.bat<br/>Script batch invocato dalla vittima"] class file_start_bat file file_loader_py["<b>File</b> – loader.py<br/>Loader Python che verifica checksum e disabilita la verifica SSL"] class file_loader_py file action_user_execution_file["<b>Azione</b> – <b>T1204.002 Esecuzione Utente: File Dannoso</b><br/>La vittima esegue loader.py"] class action_user_execution_file action action_proxy_execution["<b>Azione</b> – <b>T1127 Esecuzione Proxy degli Strumenti di Sviluppatore Affidabili</b><br/>loader.py avvia PowerShell con bypass e finestra nascosta"] class action_proxy_execution action process_powershell["<b>Processo</b> – PowerShell<br/>Esegue linea di comando remota"] class process_powershell process action_taint_shared_content["<b>Azione</b> – <b>T1080 Contaminazione del Contenuto Condiviso</b><br/>PowerShell oneu2011liner scarica update.bat da api.ethu2011fastscan.org"]/Class action_taint_shared_content action file_update_bat["<b>File</b> – update.bat<br/>Script batch che aggiunge esclusioni Defender e crea attività pianificata"] class file_update_bat file action_hide_artifacts["<b>Azione</b> – <b>T1564.012 Nascondere i Frutti: Esclusioni File/Percorso</b><br/>Aggiunge esclusioni di Microsoft Defender per i file payload"] class action_hide_artifacts action action_hijack_execution["<b>Azione</b> – <b>T1574 Dirottamento del Flusso di Esecuzione</b><br/>Crea attività pianificata oneu2011shot MicrosoftEdgeUpdateTaskCore per eseguire il payload come SYSTEM"] class action_hijack_execution action process_scheduled_task["<b>Processo</b> – Attività Pianificata<br/>Esegue payload Rust con privilegi SYSTEM"]/Class process_scheduled_task process malware_rust_payload["<b>Malware</b> – Payload Rust<br/>Esegue controlli antiu2011analisi e disabilita AMSI/ETW"] class malware_rust_payload malware action_credential_collection["<b>Azione</b> – <b>T1555 Credenziali dagli Archivi di Password</b><br/>L’infostealer estrae credenziali di Chromium, Firefox, Discord e portafogli"]/Class action_credential_collection credential action_credential_files["<b>Azione</b> – <b>T1552.001 Credenziali Non Sicure: Credenziali Nei File</b><br/>Raccoglie file seed di SSH, FTP, VPN e portafogli"] class action_credential_files credential action_os_credential_dump["<b>Azione</b> – <b>T1003 Dump Credenziali OS</b><br/>Recupera chiavi del browser crittografate"] class action_os_credential_dump credential action_screen_capture["<b>Azione</b> – <b>T1113 Cattura Schermo</b><br/>Cattura screenshot da più monitor"] class action_screen_capture malware action_data_encoding["<b>Azione</b> – <b>T1132 Codifica Dati</b><br/>Packeggia i dati in JSON compresso secondo gzip"] class action_data_encoding malware action_exfiltration["<b>Azione</b> – <b>T1567.002 Esfiltrazione Attraverso Servizio Web</b><br/>Posta dati codificato tramite HTTPS a recargapopular.com"] class action_exfiltration exfil %% Connessioni malicious_repo –>|contiene| file_start_bat malicious_repo –>|contiene| file_loader_py action_user_execution_link –>|conduce_a| file_start_bat action_user_execution_link –>|conduce_a| file_loader_py file_start_bat –>|eseguito_da| action_user_execution_file file_loader_py –>|eseguito_da| action_user_execution_file action_user_execution_file –>|attiva| action_proxy_execution action_proxy_execution –>|avvia| process_powershell process_powershell –>|scarica| file_update_bat file_update_bat –>|esegue| action_hide_artifacts action_hide_artifacts –>|crea| action_hijack_execution action_hijack_execution –>|spawna| process_scheduled_task process_scheduled_task –>|esegue| malware_rust_payload malware_rust_payload –>|esegue| action_credential_collection malware_rust_payload –>|esegue| action_credential_files malware_rust_payload –>|esegue| action_os_credential_dump malware_rust_payload –>|esegue| action_screen_capture malware_rust_payload –>|codifica| action_data_encoding action_data_encoding –>|esfiltra| action_exfiltration "
Flusso di Attacco
Rilevamenti
Chiama Metodi .NET Sospetti da Powershell (via powershell)
Visualizza
IOCs (HashSha256) per rilevare: Malware Trovato nel Repository di Tendenza Hugging Face “Open-OSS/privacy-filter”
Visualizza
IOCs (SourceIP) per rilevare: Malware Trovato nel Repository di Tendenza Hugging Face “Open-OSS/privacy-filter”
Visualizza
IOCs (DestinationIP) per rilevare: Malware Trovato nel Repository di Tendenza Hugging Face “Open-OSS/privacy-filter”
Visualizza
Rilevamento di Comunicazione Maligna C2 nel Repository Hugging Face [Connessione di rete di Windows]
Visualizza
Attività PowerShell e CMD Nascosta per Esecuzione Maligna [Creazione di Processo di Windows]
Visualizza
Esecuzione Simulazione
Prerequisito: Il Controllo Preliminare di Telemetria & Baseline deve essere superato.
Ragionamento: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirare a generare l’esatta telemetria attesa dalla logica di rilevamento. Esempi astratti o non correlati porteranno a una diagnostica errata.
-
Narrazione dell’Attacco & Comandi:
L’attaccante ha ottenuto una presenza su una workstation Windows e desidera eseguire un payload malevolo con diritti elevati mentre rimane invisibile all’utente. Essi:- Creano un PowerShell one-liner che genera una shell CMD nascosta (
/k) e immediatamente la eleva usandoStart-Process -Verb RunAs. - Esegue questo one-liner da una sessione PowerShell esistente, garantendo che l’albero dei processi contenga sia un’istanza nascosta di PowerShell and un’istanza CMD lanciata con
/k. - Il CMD elevato può quindi essere usato per scaricare ed eseguire il payload finale.
- Creano un PowerShell one-liner che genera una shell CMD nascosta (
-
Script di Test di Regressione:
# --------------------------------------------------------- # Script avversario simulato – PowerShell Nascosto + CMD RunAs # --------------------------------------------------------- $maliciousCmd = "cmd.exe /k echo L'attaccante ha elevato && ping -n 5 127.0.0.1" $psCommand = "-ExecutionPolicy Bypass -WindowStyle Hidden -Command `"Start-Process -FilePath 'powershell.exe' -ArgumentList `"$maliciousCmd`" -Verb RunAs`"" # Avvio PowerShell nascosto che esegue a sua volta il CMD elevato Start-Process -FilePath "powershell.exe" -ArgumentList $psCommand -WindowStyle Hidden -
Comandi di Pulizia:
# Terminare eventuali processi CMD elevati ancora attivi generati dal test Get-Process -Name "cmd" -ErrorAction SilentlyContinue | Where-Object { $_.StartInfo.Arguments -match "/k echo L'attaccante ha elevato" } | Stop-Process -Force # Opzionalmente rimuovere eventuali file temporanei se creati (nessuno in questo semplice esempio)