Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Bypass AMSI

hacking

Définition

Le bypass AMSI désigne les techniques employées pour contourner l'Antimalware Scan Interface, une interface Windows introduite avec PowerShell 5.0 permettant aux solutions antivirales d'inspecter dynamiquement le contenu de scripts avant leur exécution, y compris lorsqu'ils sont obfusqués ou générés en mémoire. Les méthodes de contournement incluent la modification en mémoire de la fonction AmsiScanBuffer pour la neutraliser, l'obfuscation avancée du code afin d'échapper aux signatures sans altérer la logique fonctionnelle, la réflexion PowerShell pour désactiver le champ interne signalant l'échec d'initialisation d'AMSI, ou l'exécution de code hors du contexte PowerShell classique, par exécution directe en mémoire via .NET. Ces techniques s'inscrivent dans la tactique MITRE ATT&CK Defense Evasion, notamment sous T1562.001 relative à la désactivation d'outils de sécurité. En défense, la surveillance des événements liés à l'échec de chargement AMSI, la journalisation approfondie PowerShell via les journaux Script Block Logging et Module Logging, la détection comportementale des modifications mémoire suspectes sur le processus powershell.exe, ainsi que le déploiement d'un EDR capable de détecter les techniques de patch mémoire indépendamment de l'AMSI lui-même, renforcent la résilience. La restriction de PowerShell en mode langage contraint (Constrained Language Mode) sur les postes non administratifs limite également fortement la surface d'exploitation disponible pour ces contournements.

Fonctionnement d'AMSI

Introduit avec Windows 10, l'Antimalware Scan Interface est une interface standardisée qui permet aux moteurs de script de soumettre leur contenu à l'antivirus avant exécution. Elle s'applique à PowerShell, VBScript, JScript, les macros Office, WMI et .NET. Concrètement, la DLL amsi.dll est chargée dans l'espace mémoire du processus hôte : lorsque PowerShell désobfusque une commande, il appelle AmsiScanBuffer() avec le code en clair, puis transmet le verdict au fournisseur AMSI (Microsoft Defender ou un tiers).

C'est précisément cette architecture qui constitue la faiblesse : le contrôle s'exécute dans le processus contrôlé, donc en espace utilisateur, avec les mêmes privilèges que l'attaquant. Un code qui s'exécute déjà peut altérer son propre gardien.

Techniques d'exploitation

Les familles de bypass documentées depuis 2016 relèvent de quelques principes :

  • Patch mémoire : réécriture des premiers octets d'AmsiScanBuffer pour forcer un retour « contenu propre » (E_INVALIDARG), via VirtualProtect.
  • Corruption d'état : modification par réflexion .NET du champ amsiInitFailed de AmsiUtils, ce qui fait croire à PowerShell qu'AMSI n'a pas pu s'initialiser.
  • Downgrade : exécution en PowerShell v2, antérieur à AMSI, si le composant est encore installé.
  • Obfuscation : fragmentation de chaînes, encodage, alias et concaténation dynamique pour ne jamais présenter de signature reconnaissable au scan.
  • DLL hijacking : chargement d'une amsi.dll factice depuis un répertoire prioritaire.

Outils courants

Les tests d'intrusion s'appuient sur AMSITrigger et DefenderCheck pour identifier l'octet exact déclenchant la détection, Invoke-Obfuscation et Chameleon pour la transformation de charges, ainsi que les modules intégrés à Cobalt Strike, Covenant ou Metasploit. Ces outils sont réservés à des missions autorisées et contractualisées.

Détection

La supervision repose sur des signaux indirects : événements 4104 (Script Block Logging) contenant des appels à System.Management.Automation.AmsiUtils, VirtualProtect ou GetProcAddress ; alerte Defender Behavior:Win32/AmsiTampering ; désactivation soudaine de la journalisation ; lancement de powershell.exe -Version 2. Une solution EDR capable d'inspecter l'intégrité des pages mémoire d'amsi.dll reste le contrôle le plus fiable.

Contre-mesures

  • Activer Constrained Language Mode couplé à AppLocker ou WDAC, qui bloque la réflexion .NET.
  • Désinstaller le moteur PowerShell v2 et le framework .NET 2.0.
  • Centraliser Script Block Logging et Module Logging vers un SIEM.
  • Appliquer la protection contre les altérations (Tamper Protection) et l'ASR.
  • Réduire les privilèges administrateurs locaux, qui conditionnent la plupart des variantes persistantes.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis