Bypass d'AMSI
Qu'est-ce que Bypass d'AMSI ?
Bypass d'AMSITechniques qui desactivent, patchent ou contournent l'Antimalware Scan Interface de Windows afin que scripts et payloads en memoire ne soient pas analyses par les antivirus.
L'Antimalware Scan Interface (AMSI), introduite avec Windows 10 en 2015, permet a PowerShell, JScript, VBScript, .NET et aux macros VBA d'Office de soumettre des buffers a l'antivirus enregistre (via AmsiScanBuffer/AmsiScanString) pour analyse apres la desobfuscation mais avant l'execution. Comme AMSI s'execute dans le processus et partage l'espace d'adressage de l'attaquant, un attaquant disposant deja d'une execution de code peut tout simplement l'alterer.
Les techniques courantes se repartissent en trois familles. Le patching memoire ecrase les premiers octets de amsi.dll!AmsiScanBuffer (ou AmsiOpenSession) afin qu'il renvoie AMSI_RESULT_CLEAN ou une erreur comme E_INVALIDARG sans analyser. La reflexion bascule a true le champ prive AmsiUtils.amsiInitFailed de PowerShell — le classique one-liner de Matt Graeber de 2016 — de sorte que la session ne reinitialise plus jamais AMSI. L'obfuscation/downgrade fractionne les chaines signalees, les encode en Base64, ou force powershell -version 2 ou AMSI n'existe pas. L'objectif est d'executer des outils tels que Mimikatz, Invoke-Mimikatz ou des beacons Cobalt Strike dans un processus hote de confiance sans etre detecte.
MITRE ATT&CK suit cela sous T1562.001 (Impair Defenses: Disable or Modify Tools). Microsoft Defender dispose d'une signature de la chaine litterale amsiInitFailed depuis 2017, c'est pourquoi les attaquants l'obfusquent a l'execution. Defenses : providers AMSI relies a un EDR moderne, regles Attack Surface Reduction, Constrained Language Mode de PowerShell, AppLocker/WDAC, journalisation ScriptBlock, et alertes sur les patches accessibles en ecriture+execution appliques a amsi.dll dans les processus nouvellement crees.
flowchart TD
S[Malicious script / macro] --> H[Host process: PowerShell, WScript, Office]
H --> Q{AMSI tampered?}
Q -->|"Patch AmsiScanBuffer"| C[Force AMSI_RESULT_CLEAN]
Q -->|"Set amsiInitFailed = true"| C
Q -->|"No"| AV[AV/EDR scans deobfuscated buffer]
AV -->|Malicious| B[Blocked + alert]
AV -->|Clean| X[Execute]
C --> X[Payload executes unscanned]● Exemples
- 01
Patcher les premiers octets d'AmsiScanBuffer en memoire pour qu'il renvoie toujours AMSI_RESULT_CLEAN.
- 02
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true).
● Questions fréquentes
Qu'est-ce que Bypass d'AMSI ?
Techniques qui desactivent, patchent ou contournent l'Antimalware Scan Interface de Windows afin que scripts et payloads en memoire ne soient pas analyses par les antivirus. Cette notion relève de la catégorie Attaques et menaces en cybersécurité.
Que signifie Bypass d'AMSI ?
Techniques qui desactivent, patchent ou contournent l'Antimalware Scan Interface de Windows afin que scripts et payloads en memoire ne soient pas analyses par les antivirus.
Comment se défendre contre Bypass d'AMSI ?
Les défenses contre Bypass d'AMSI combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de Bypass d'AMSI ?
Noms alternatifs courants : Evasion AMSI.