Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 051

Bypass de AMSI

Revisado porCybersecurity entrepreneur & security researcher

O que é Bypass de AMSI?

Bypass de AMSITecnicas que desativam, fazem patch ou contornam o Antimalware Scan Interface do Windows para que scripts e payloads em memoria nao sejam analisados pelos antivirus.


O Antimalware Scan Interface (AMSI), introduzido com o Windows 10 em 2015, permite que PowerShell, JScript, VBScript, .NET e VBA do Office submetam buffers ao antivirus registado (atraves de AmsiScanBuffer/AmsiScanString) para analise depois da desofuscacao mas antes da execucao. Como o AMSI corre dentro do processo e partilha o espaco de enderecos do atacante, um atacante que ja tenha execucao de codigo pode simplesmente manipula-lo.

As tecnicas comuns dividem-se em tres familias. O patching de memoria sobrescreve os primeiros bytes de amsi.dll!AmsiScanBuffer (ou AmsiOpenSession) para que devolva AMSI_RESULT_CLEAN ou um erro como E_INVALIDARG sem analisar. A reflexao altera para true o campo privado AmsiUtils.amsiInitFailed do PowerShell — o classico one-liner de Matt Graeber de 2016 — de modo que a sessao nunca mais inicializa o AMSI. A ofuscacao/downgrade divide as strings sinalizadas, codifica-as em Base64 ou forca powershell -version 2, onde o AMSI nao existe. O objetivo e executar ferramentas como Mimikatz, Invoke-Mimikatz ou beacons Cobalt Strike dentro de um processo anfitriao de confianca sem ser detetado.

O MITRE ATT&CK regista isto como T1562.001 (Impair Defenses: Disable or Modify Tools). O Microsoft Defender tem assinatura da string literal amsiInitFailed desde 2017, pelo que os atacantes a ofuscam em tempo de execucao. Defesas: providers AMSI ligados a um EDR moderno, regras de Attack Surface Reduction, Constrained Language Mode do PowerShell, AppLocker/WDAC, registo de ScriptBlock e alertas sobre patches com permissao de escrita+execucao em amsi.dll em processos recem-criados.

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]

Exemplos

  1. 01

    Aplicar patch aos primeiros bytes de AmsiScanBuffer em memoria para devolver sempre AMSI_RESULT_CLEAN.

  2. 02

    [Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true).

Perguntas frequentes

O que é Bypass de AMSI?

Tecnicas que desativam, fazem patch ou contornam o Antimalware Scan Interface do Windows para que scripts e payloads em memoria nao sejam analisados pelos antivirus. Pertence à categoria Ataques e ameaças da cibersegurança.

O que significa Bypass de AMSI?

Tecnicas que desativam, fazem patch ou contornam o Antimalware Scan Interface do Windows para que scripts e payloads em memoria nao sejam analisados pelos antivirus.

Como se defender contra Bypass de AMSI?

As defesas contra Bypass de AMSI costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.

Quais são outros nomes para Bypass de AMSI?

Nomes alternativos comuns: Evasao AMSI.

Termos relacionados