SOC Prime Bias: Critico

13 Feb 2026 15:45

Ricerca sulla Minaccia Cato CTRL: Foxveil – Nuovo Malware Loader che Sfrutta Cloudflare, Discord e Netlify come Infrastruttura di Staging

Author Photo
Ruslan Mikhalov Capo della Ricerca sulle Minacce presso SOC Prime linkedin icon Segui
Ricerca sulla Minaccia Cato CTRL: Foxveil – Nuovo Malware Loader che Sfrutta Cloudflare, Discord e Netlify come Infrastruttura di Staging
shield icon

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.

<div class="wp-block-socprime-category-attack-flow attack-flow-class" data-title="Attack Flow" data-attack-flow="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>Technique</b> – <b>T1574.005 Hijack Execution Flow: Executable Installer File Permissions Weakness</b><br/>Victim runs malicious EXE/DLL dropping the Foxveil loader."] class initial_execution technique staging_retrieval["<b>Technique</b> – <b>T1102.001 Web Service: Dead Drop Resolver</b> and <b>T1102 Web Service</b><br/>Foxveil contacts attacker‑controlled Cloudflare Pages, Netlify domains or Discord attachment links to download Donut‑generated shellcode."] class staging_retrieval technique in_memory_loading["<b>Technique</b> – <b>T1620 Reflective Code Loading</b><br/>Downloaded shellcode is loaded directly into memory without touching disk."] class in_memory_loading technique process_injection["<b>Technique</b> – <b>T1055.002 Portable Executable Injection</b> and <b>T1055.001 DLL Injection</b><br/>Foxveil v1 injects via Early‑Bird APC into a newly spawned svchost.exe process; Foxveil v2 self‑injects."] class process_injection technique persistence_service["<b>Technique</b> – <b>T1543 Create or Modify System Process</b><br/>Foxveil v1 registers a Windows service (AarSvc) for boot persistence."] class persistence_service technique masquerading["<b>Technique</b> – <b>T1036.005 Match Legitimate Resource Name or Location</b><br/>Dropped binaries named sms.exe, sihost.exe, taskhostw.exe, audiodg.exe, real1.exe placed in C:\Windows\SysWOW64."] class masquerading technique hide_artifacts["<b>Technique</b> – <b>T1564.012 File/Path Exclusions</b><br/>Attempts WMI call to MSFT_MpPreference to remove an exclusion for C:\Windows\SysWOW64."] class hide_artifacts technique obfuscation["<b>Technique</b> – <b>T1027.014 Polymorphic Code</b><br/>Runtime string‑mutation routine replaces high‑signal strings such as "fox", "payload", "meterpreter", "beacon"."] class obfuscation technique multistage_delivery["<b>Technique</b> – <b>T1104 Multi‑Stage Channels</b><br/>After initial shellcode execution, additional executables are downloaded from the same staging infrastructure (e.g., potential Cobalt Strike beacon)."] class multistage_delivery technique foxveil["<b>Malware</b> – Foxveil Loader<br/>Initial dropper that retrieves and loads shellcode."] class foxveil malware donut_shellcode["<b>Payload</b> – Donut generated shellcode<br/>Contains further malicious capabilities."] class donut_shellcode payload cobalt_strike["<b>Tool</b> – Potential Cobalt Strike beacon

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

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

    1. Ricognizione: L’attaccante ha ottenuto il dominio di staging di Foxveil syscore.pages.dev da un dump di credenziali compromesso.
    2. 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.
    3. 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.
  • 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."