SOC Prime Bias: Critique

13 Fév 2026 15:45

Recherche sur les menaces par Cato CTRL : Foxveil – Nouveau chargeur de malware utilisant Cloudflare, Discord et Netlify comme infrastructure de mise en scène

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
Recherche sur les menaces par Cato CTRL : Foxveil – Nouveau chargeur de malware utilisant Cloudflare, Discord et Netlify comme infrastructure de mise en scène
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Foxveil est un chargeur de malware nouvellement identifié de première étape, observé pour la première fois en août 2025. Il extrait le shellcode généré par Donut à partir de surfaces d’hébergement « de confiance » — Cloudflare Pages, Netlify, et les pièces jointes Discord — puis l’exécute via des techniques d’injection de processus. Pour la persistance, le chargeur enregistre soit un service Windows soit tente de manipuler les paramètres de Microsoft Defender. Parmi les variantes observées, les principales différences résident dans la source de préparation, l’approche d’injection, et la méthode de persistance.

Enquête

Les chercheurs de Cato ont analysé deux variantes de Foxveil et documenté le flux de bout en bout : récupération du shellcode, injection via Early Bird APC (ou auto-injection directe), et persistance à travers un service nommé AarSvc. Les artefacts déposés ont été observés sous C:WindowsSysWOW64 en utilisant des noms de fichiers masqués pour se fondre avec des composants légitimes. Le chargeur inclut également une logique de mutation de chaîne qui réécrit les termes à haut signal pour réduire les détections statiques. La télémétrie du réseau a montré des connexions à plusieurs domaines Cloudflare et Netlify, avec des récupérations occasionnelles à partir d’URL de pièces jointes Discord.

Atténuation

La plateforme Cato SASE a bloqué le chargeur avant l’exécution de la charge utile en examinant le comportement de téléchargement et les modèles de création de processus suspects. Pour réduire le risque, bloquez les domaines de mise en scène connus et alertez sur les comportements liés à l’injection associés aux techniques de Foxveil. Désactivez l’exécution de scripts non approuvés et renforcez les politiques autour des exclusions de Windows Defender pour limiter les tentatives de persistance. Gardez à jour les règles de liste blanche pour les services cloud légitimes afin de minimiser les faux positifs tout en maintenant la couverture.

Réponse

En cas de détection d’une activité Foxveil, isolez le point de terminaison, terminez le processus malveillant, et retirez tout service enregistré (y compris AarSvc). Effectuez un examen judiciaire de SysWOW64 pour les exécutables déposés et collectez des hachages pour délimiter l’étendue. Pivot sur les journaux réseaux pour les connexions aux domaines de mise en scène identifiés et bloquez-les aux niveaux DNS/proxy. Déployez des détections pour l’injection Early Bird APC et les modèles d’auto-injection dans l’ensemble de la flotte pour identifier d’autres hôtes impactés.

<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>Technique</b> – <b>T1574.005 Détournement du flux d’exécution: Faiblesse des autorisations de fichier de l’installateur exécutable</b><br/>La victime exécute un EXE/DLL malveillant déposant le chargeur Foxveil. »] class initial_execution technique staging_retrieval[« <b>Technique</b> – <b>T1102.001 Service Web: Résolution par Dead Drop</b> et <b>T1102 Service Web</b><br/>Foxveil contacte des Pages Cloudflare, des domaines Netlify ou des liens de pièces jointes Discord contrôlés par l’attaquant pour télécharger le shellcode généré par Donut. »] class staging_retrieval technique in_memory_loading[« <b>Technique</b> – <b>T1620 Chargement de code réflexif</b><br/>Le shellcode téléchargé est chargé directement en mémoire sans toucher le disque. »] class in_memory_loading technique process_injection[« <b>Technique</b> – <b>T1055.002 Injection d’exécutable portable</b> et <b>T1055.001 Injection DLL</b><br/>Foxveil v1 s’injecte via Early-Bird APC dans un nouveau processus svchost.exe ; Foxveil v2 s’auto-injecte. »] class process_injection technique persistence_service[« <b>Technique</b> – <b>T1543 Créer ou modifier un processus système</b><br/>Foxveil v1 enregistre un service Windows (AarSvc) pour la persistance au démarrage. »] class persistence_service technique masquerading[« <b>Technique</b> – <b>T1036.005 Correspondance du nom ou de l’emplacement de la ressource légitime</b><br/>Les binaires déposés nommés sms.exe, sihost.exe, taskhostw.exe, audiodg.exe, real1.exe sont placés dans C:\Windows\SysWOW64. »] class masquerading technique hide_artifacts[« <b>Technique</b> – <b>T1564.012 Exclusions de fichiers/chemins</b><br/>Tente un appel WMI à MSFT_MpPreference pour supprimer une exclusion pour C:\Windows\SysWOW64. »] class hide_artifacts technique obfuscation[« <b>Technique</b> – <b>T1027.014 Code polymorphe</b><br/>La routine de mutation de chaîne en temps réel remplace des chaînes à signal élevé comme « fox », « payload », « meterpreter », « beacon ». »] class obfuscation technique multistage_delivery[« <b>Technique</b> – <b>T1104 Canaux en plusieurs étapes</b><br/>Après l’exécution initiale du shellcode, des exécutables supplémentaires sont téléchargés depuis la même infrastructure de mise en scène (par exemple, potentiel beacon Cobalt Strike). »] class multistage_delivery technique foxveil[« <b>Malware</b> – Chargeur Foxveil<br/>Déposeur initial qui récupère et charge le shellcode. »] class foxveil malware donut_shellcode[« <b>Payload</b> – Shellcode généré par Donut<br/>Contient d’autres capacités malveillantes. »] class donut_shellcode payload cobalt_strike[« <b>Outil</b> – Potentiel beacon Cobalt Strike<br/>Téléchargé dans les étapes ultérieures pour le command‑and‑control. »] class cobalt_strike tool %% Connections initial_execution –>|dépose| foxveil foxveil –>|récupère| staging_retrieval staging_retrieval –>|télécharge| donut_shellcode donut_shellcode –>|charge via| in_memory_loading in_memory_loading –>|exécute| process_injection process_injection –>|active| persistence_service foxveil –>|effectue| masquerading foxveil –>|effectue| hide_artifacts foxveil –>|effectue| obfuscation process_injection –>|conduit à| multistage_delivery multistage_delivery –>|télécharge| cobalt_strike cobalt_strike –>|fournit| persistence_service

Flux d’attaque

Exécution de simulation

Prérequis : L’audit de télémétrie et de référentiel doit avoir réussi.

Rationnel : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et visent à générer la télémétrie exacte attendue par la logique de détection.

  • Narrative d’attaque & Commandes

    1. Reconnaissance : L’attaquant a obtenu le domaine de mise en scène Foxveil syscore.pages.dev à partir d’un dump d’identifiants compromis.
    2. Étape 1 – Résolution DNS : En utilisant un outil natif de Windows, l’attaquant résout le domaine de mise en scène pour obtenir l’adresse IP de l’hôte de la charge malveillante. Cette étape reflète le comportement réel du malware et est le déclencheur observable.
    3. Étape 2 – Récupération de la charge (non exécutée dans le test) : Dans une attaque réelle, l’IP résolue serait utilisée pour télécharger la charge de deuxième étape via HTTP. Pour la validation de détection, seule la résolution DNS est requise.
  • Script de test de régression

    <# 
    Simulez la résolution du domaine de mise en scène de Foxveil.
    Ce script effectue une requête DNS pour un domaine connu de Foxveil,
    générant la télémétrie exacte que la règle Sigma surveille.
    #>
    
    # Définir le domaine de mise en scène (choisi dans la liste blanche de la règle)
    $stagingDomain = "syscore.pages.dev"
    
    # Résoudre le domaine – cela génère un événement de requête DNS
    try {
        $result = Resolve-DnsName -Name $stagingDomain -Type A -ErrorAction Stop
        Write-Host "Domaine $stagingDomain résolu en $($result.IPAddress)"
    } catch {
        Write-Error "Échec de la résolution DNS : $_"
    }
    
    # Optionnel : pause pour assurer que le pipeline de journal traite l'événement
    Start-Sleep -Seconds 5
  • Commandes de nettoyage

    # Vider le cache DNS pour supprimer l'entrée résolue (prévient les effets de mise en cache sur les tests ultérieurs)
    ipconfig /flushdns
    Write-Host "Cache DNS vidé."