Ricerca sulla Minaccia Cato CTRL: Foxveil – Nuovo Malware Loader che Sfrutta Cloudflare, Discord e Netlify come Infrastruttura di Staging
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
Foxveil è un malware loader di fase iniziale recentemente identificato, visto per la prima volta nell’agosto 2025. Esso estrae shellcode generati da Donut da superfici di hosting ‘fidate’—Cloudflare Pages, Netlify e allegati Discord—e lo esegue tramite tecniche di process-injection. Per la persistenza, il loader registra un servizio di Windows o tenta di manomettere le impostazioni di Microsoft Defender. Tra le varianti osservate, le principali differenze sono la fonte di staging, l’approccio di iniezione e il metodo di persistenza.
Investigazione
I ricercatori di Cato hanno analizzato due varianti di Foxveil e documentato il flusso end-to-end: recupero dello shellcode, iniezione via Early Bird APC (o auto-iniezione diretta), e persistenza attraverso un servizio denominato AarSvc. Sono stati osservati artefatti rilasciati sotto C:WindowsSysWOW64 utilizzando nomi di file mascherati per mescolarsi con componenti legittimi. Il loader include anche una logica di mutazione delle stringhe che riscrive i termini ad alto segnale per ridurre le rilevazioni statiche. La telemetria di rete ha mostrato connessioni a più domini Cloudflare e Netlify, con richieste occasionali da URL di allegati Discord.
Mitigazione
La piattaforma Cato SASE ha bloccato il loader prima dell’esecuzione del payload esaminando il comportamento di download e schemi di creazione di processi sospetti. Per ridurre il rischio, bloccare i domini di staging conosciuti e avvisare su comportamenti di iniezione associati alle tecniche di Foxveil. Disabilitare l’esecuzione di script non attendibili e rinforzare le politiche attorno alle esclusioni di Windows Defender per limitare i tentativi di persistenza. Mantenere aggiornate le regole della lista di permessi per i servizi cloud legittimi per minimizzare i falsi positivi mantenendo la copertura.
Risposta
Se viene rilevata attività di Foxveil, isolare l’endpoint, terminare il processo malevolo e rimuovere qualsiasi servizio registrato (incluso AarSvc). Eseguire una revisione forense di SysWOW64 per eseguibili rilasciati e raccogliere hash per lo scoping. Fare pivot sui log di rete per le connessioni ai domini di staging identificati e bloccarli ai livelli DNS/proxy. Distribuire rilevamenti per l’iniezione Early Bird APC e i pattern di auto-iniezione su tutta la flotta per identificare ulteriori host impattati.
graph TB %% Class Definitions classDef technique fill:#ffcc99 classDef malware fill:#ff9999 classDef tool fill:#99ccff classDef payload fill:#ccccff classDef operator fill:#ff9900 %% Node Definitions initial_execution[“<b>Tecnica</b> – <b>T1574.005 Hijack Execution Flow: Vulnerabilità dei Permessi del File di Installazione Eseguibile</b><br/>La vittima esegue un EXE/DLL malevolo che rilascia il loader Foxveil.”] class initial_execution technique staging_retrieval[“<b>Tecnica</b> – <b>T1102.001 Web Service: Resolver Dead Drop</b> e <b>T1102 Web Service</b><br/>Foxveil contatta pagine Cloudflare, domini Netlify o link di allegati Discord controllati dall’attaccante per scaricare shellcode generato da Donut.”] class staging_retrieval technique in_memory_loading[“<b>Tecnica</b> – <b>T1620 Caricamento del Codice Riflessivo</b><br/>Lo shellcode scaricato viene caricato direttamente in memoria senza toccare il disco.”] class in_memory_loading technique process_injection[“<b>Tecnica</b> – <b>T1055.002 Iniezione di Eseguibili Portabili</b> e <b>T1055.001 Iniezione DLL</b><br/>Foxveil v1 inietta tramite Early-Bird APC in un nuovo processo svchost.exe; Foxveil v2 si auto-inietta.”] class process_injection technique persistence_service[“<b>Tecnica</b> – <b>T1543 Creazione o Modifica di Processo di Sistema</b><br/>Foxveil v1 registra un servizio Windows (AarSvc) per la persistenza all’avvio.”] class persistence_service technique masquerading[“<b>Tecnica</b> – <b>T1036.005 Corrispondenza del Nome o Posizione della Risorsa Legittima</b><br/>i binari rilasciati sono denominati sms.exe, sihost.exe, taskhostw.exe, audiodg.exe, real1.exe posizionati in C:\Windows\SysWOW64.”] class masquerading technique hide_artifacts[“<b>Tecnica</b> – <b>T1564.012 Esclusioni di File/Percorso</b><br/>Tenta una chiamata WMI a MSFT_MpPreference per rimuovere un’esclusione per C:\Windows\SysWOW64.”] class hide_artifacts technique obfuscation[“<b>Tecnica</b> – <b>T1027.014 Codice Polimorfico</b><br/>La routine di mutazione delle stringhe in tempo di esecuzione sostituisce stringhe ad alto impatto come “fox”, “payload”, “meterpreter”, “beacon”.”] class obfuscation technique multistage_delivery[“<b>Tecnica</b> – <b>T1104 Canali Multi-Fase</b><br/>Dopo l’esecuzione iniziale dello shellcode, vengono scaricati eseguibili aggiuntivi dalla stessa infrastruttura di staging (es. potenziale beacon di Cobalt Strike).”] class multistage_delivery technique foxveil[“<b>Malware</b> – Foxveil Loader<br/>Dropper iniziale che recupera e carica lo shellcode.”] class foxveil malware donut_shellcode[“<b>Payload</b> – Shellcode generato da Donut<br/>Contiene ulteriori capacità malevoli.”] class donut_shellcode payload cobalt_strike[“<b>Tool</b> – Potenziale beacon di Cobalt Strike<br/>Scaricato in fasi successive per il comando e controllo.”] class cobalt_strike tool %% Connections initial_execution –>|rilascia| foxveil foxveil –>|recupera| staging_retrieval staging_retrieval –>|scarica| donut_shellcode donut_shellcode –>|carica tramite| in_memory_loading in_memory_loading –>|esegue| process_injection process_injection –>|abilita| persistence_service foxveil –>|esegue| masquerading foxveil –>|esegue| hide_artifacts foxveil –>|esegue| obfuscation process_injection –>|conduce a| multistage_delivery multistage_delivery –>|scarica| cobalt_strike cobalt_strike –>|fornisce| persistence_service
Flusso d’attacco
Rilevamenti
Catena di Processi di Sistema Anormale (via process_creation)
Visualizza
Possibile Infiltrazione/Esfiltrazione Dati/C2 via Servizi o Strumenti di Terze Parti (via proxy)
Visualizza
Processi Svchost Sospetti (via process_creation)
Visualizza
Modifica Sospetta delle Esclusioni di Defender via WMIC (via cmdline)
Visualizza
Possibile Infiltrazione/Esfiltrazione Dati/C2 via Servizi o Strumenti di Terze Parti (via dns)
Visualizza
IOC (HashSha256) per rilevare: Cato CTRLTM Ricerca sulle Minacce: Foxveil – Nuovo Malware Loader che Abusa di Cloudflare, Discord e Netlify come Infrastruttura di Staging Parte 1
Visualizza
IOC (HashSha256) per rilevare: Cato CTRLTM Ricerca sulle Minacce: Foxveil – Nuovo Malware Loader che Abusa di Cloudflare, Discord e Netlify come Infrastruttura di Staging Parte 2
Visualizza
Rilevamento di Iniezione di Processo Mascherato svchost.exe Foxveil v1 [Creazione Processo Windows]
Visualizza
Rilevamento dei Domini di Staging del Malware Foxveil [Connessione di Rete Windows]
Visualizza
Esecuzione della Simulazione
Prerequisito: Il controllo pre-volo di Telemetria e Baseline deve essere passato.
Motivazione: 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 TTPs identificati e mirare a generare l’esatta telemetria prevista dalla logica di rilevamento.
-
Narrativa dell’Attacco e Comandi
-
Ricognizione: L’attaccante ha ottenuto il dominio di staging di Foxveil
syscore.pages.devda un dump di credenziali compromesso. - Fase 1 – Risoluzione DNS: Utilizzando uno strumento nativo di Windows, l’attaccante risolve il dominio di staging per ottenere l’indirizzo IP dell’host del payload malevolo. Questo passaggio rispecchia il comportamento reale del malware ed è il trigger osservabile.
- Fase 2 – Recupero del Payload (non eseguito nel test): In un attacco reale, l’IP risolto verrebbe utilizzato per scaricare il payload di seconda fase via HTTP. Per lo scopo della validazione del rilevamento, è richiesta solo la risoluzione DNS.
-
Ricognizione: L’attaccante ha ottenuto il dominio di staging di Foxveil
-
Script di Test di Regressione
<# Simula la risoluzione del dominio di staging di Foxveil. Questo script effettua una query DNS per un dominio Foxveil conosciuto, generando l'esatta telemetria che la regola Sigma monitora. #> # Definire il dominio di staging (scelto dalla whitelist della regola) $stagingDomain = "syscore.pages.dev" # Risolvere il dominio – questo genera un evento di query DNS try { $result = Resolve-DnsName -Name $stagingDomain -Type A -ErrorAction Stop Write-Host "Risolto $stagingDomain a $($result.IPAddress)" } catch { Write-Error "La risoluzione DNS è fallita: $_" } # Opzionale: pausa per garantire che la pipeline di log elabori l'evento Start-Sleep -Seconds 5 -
Comandi di Pulizia
# Svuotare la cache DNS per rimuovere l'entrata risolta (previene gli effetti di caching nei test successivi) ipconfig /flushdns Scrivi-Ost "Cache DNS svuotata."