La persistance au sein des environnements Windows repose fréquemment sur des mécanismes d'administration légitimes détournés par les attaquants. Parmi les vecteurs les plus insidieux figure le détournement des options d'exécution de fichiers image (Image File Execution Options - IFEO), répertorié sous la technique MITRE ATT&CK T1546.012. Initialement conçu par Microsoft pour faciliter le débogage logiciel en redirigeant le lancement d'un binaire vers un outil d'analyse, ce composant de registre permet à un attaquant disposant de privilèges administratifs locaux d'intercepter l'exécution de binaires système courants (comme notepad.exe, sethc.exe ou taskmgr.exe) pour exécuter une charge malveillante avec des privilèges élevés.
Anatomie technique de la persistance IFEO
La clé de registre HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options contient des sous-clés correspondant au nom d'exécutables cibles. Lorsqu'une sous-clé contient une valeur nommée Debugger, le sous-système Windows (CSRSS / CreateProcess) intercepte tout appel à l'exécutable spécifié et lance à sa place le chemin configuré dans la chaîne Debugger, en lui passant le binaire initial en argument.
Les attaquants exploitent cette mécanique pour atteindre deux objectifs tactiques majeurs :
- Persistance discrète : En assignant un binaire du quotidien (ex.
calc.exeounotepad.exe) à un loader malveillant ou à une commande PowerShell obfusquée, la charge utile se redéclenche chaque fois qu'un utilisateur ou un script lance l'outil usuel. - Bypass d'authentification (Sticky Keys Backdoor) : En détournant des utilitaires d'accessibilité pré-session tels que
sethc.exe(touches rémanentes) ouutilman.exe, l'adversaire obtient un shell interactif avec les privilègesNT AUTHORITY\SYSTEMdirectement depuis l'écran de verrouillage Windows sans nécessiter d'identifiants valides.
L'angle mort de la détection native
La création ou modification d'une valeur de registre Debugger est une opération autorisée pour les développeurs utilisant Visual Studio ou le Windows SDK. Par conséquent, les configurations antivirus traditionnelles et certaines règles EDR par défaut ignorent ces modifications pour éviter de submerger le SOC de faux positifs lors des sessions de débogage logiciel légitimes. De surcroît, lorsque le champ Debugger invoque un interpréteur système comme PowerShell avec un paramètre chiffré (-EncodedCommand), l'inspection superficielle du registre échoue à révéler l'intention hostile.
Requête Advanced Hunting (KQL) : Détection et Décodage IFEO
Grâce à Defender for Endpoint et au moteur Advanced Hunting (KQL), nous pouvons non seulement identifier les manipulations suspectes de clés IFEO, mais aussi extraire et décoder dynamiquement les scripts Base64 tout en filtrant le bruit légitime généré par Visual Studio.
DeviceRegistryEvents
| where ActionType in ("RegistryValueSet", "RegistryKeyCreated")
| where RegistryKey has @"Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
and RegistryValueName =~ "Debugger"
| extend TargetBinary = tostring(extract(@"Image File Execution Options\\([^\\]+)", 1, RegistryKey))
| extend DebuggerPayload = tostring(RegistryValueData)
| extend EncodedPayload = extract(@"(?i)-(?:e|enc|encodedcommand)\s+([A-Za-z0-9+/=]{16,})", 1, DebuggerPayload)
| extend DecodedScript = iff(isnotempty(EncodedPayload), base64_decode_tostring(EncodedPayload), "Cleartext or Non-Base64")
| where not(DebuggerPayload has_any (
@"\Microsoft Visual Studio\",
@"\Windows Kits\",
@"vsjitdebugger.exe"
))
| project Timestamp, DeviceName, InitiatingProcessAccountName, TargetBinary, DebuggerPayload, DecodedScript, InitiatingProcessCommandLine
| order by Timestamp descRemédiation SOAR avec Akuity SOC
Dès la détection d'une anomalie IFEO par notre moteur de corrélation, la plateforme Akuity SOC prend le relais pour accélérer la réponse opérationnelle sans surcharger les analystes L1/L2 :
- Décodage sécurisé in-app : L'assistant IA in-app d'Akuity SOC qualifie et décode la charge utile obfusquée en tâche de fond, éliminant tout recours à des décodeurs web publics non sécurisés susceptibles de compromettre des données confidentielles.
- Confinement machine 1-clic : Déclenchement immédiat de l'action
isolateDevice()depuis l'inventaire des éléments de preuve pour couper la persistance et bloquer tout mouvement latéral tout en préservant le canal Live Response pour les analystes. - Gouvernance Zero-Trust : Exécution protégée par un challenge d'élévation MFA AAL2 obligatoire et consignée dans un journal d'audit immuable certifié NIS 2 et SOC 2 Type II.
Déployez les playbooks SOAR d'Akuity SOC connectés nativement à Microsoft Defender for Endpoint et isolez les menaces critiques en un clic.
Démarrer votre essai gratuit de 14 jours (sans carte bancaire) →Mini-FAQ Technique
Pourquoi les attaquants privilégient-ils IFEO par rapport aux clés Run habituelles ?
Les clés Run et RunOnce font l'objet d'un monitoring rigoureux par l'ensemble des solutions de sécurité du marché. À l'inverse, IFEO est déclenché de manière événementielle (à la demande) lorsque la cible exécute le binaire légitime, ce qui réduit considérablement l'empreinte de la charge utile au démarrage du système.
Comment remédier à une persistance IFEO sans réinstaller l'endpoint ?
Une session Live Response via Defender for Endpoint ou le déclenchement automatisé d'un playbook Akuity SOC permet de supprimer la valeur de registre incriminée (Remove-ItemProperty) et d'éliminer le fichier payload du disque avant de redémarrer le service CSRSS ou le système.