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

Обход AMSI

ПроверилCybersecurity entrepreneur & security researcher

Что такое Обход AMSI?

Обход AMSIТехники, отключающие, патчащие или обходящие Windows Antimalware Scan Interface, чтобы скрипты и in-memory полезные нагрузки не попадали под проверку антивирусов.


Antimalware Scan Interface (AMSI), представленный вместе с Windows 10 в 2015 году, позволяет PowerShell, JScript, VBScript, .NET и VBA в Office передавать буферы зарегистрированному антивирусу (через AmsiScanBuffer/AmsiScanString) для сканирования после деобфускации, но до выполнения. Поскольку AMSI работает внутри процесса и разделяет адресное пространство атакующего, злоумышленник, уже получивший выполнение кода, может попросту вмешаться в его работу.

Распространённые техники делятся на три семейства. Патчинг памяти перезаписывает первые байты amsi.dll!AmsiScanBuffer (или AmsiOpenSession), чтобы тот возвращал AMSI_RESULT_CLEAN или ошибку вроде E_INVALIDARG без сканирования. Рефлексия переключает приватное поле AmsiUtils.amsiInitFailed в PowerShell на true — классический однострочник Matt Graeber 2016 года — так что сессия больше никогда не инициализирует AMSI. Обфускация/откат версии разбивает помеченные строки, кодирует их в Base64 или принудительно запускает powershell -version 2, где AMSI не существует. Цель — запустить инструменты вроде Mimikatz, Invoke-Mimikatz или биконов Cobalt Strike внутри доверенного процесса-хоста незаметно.

MITRE ATT&CK отслеживает это как T1562.001 (Impair Defenses: Disable or Modify Tools). Microsoft Defender имеет сигнатуру буквальной строки amsiInitFailed с 2017 года, поэтому атакующие обфусцируют её во время выполнения. Защита: AMSI-провайдеры, подключённые к современному EDR, правила Attack Surface Reduction, PowerShell Constrained Language Mode, AppLocker/WDAC, журналирование ScriptBlock и оповещения о патчах с правами на запись+выполнение в amsi.dll во вновь созданных процессах.

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]

Примеры

  1. 01

    Патч первых байтов AmsiScanBuffer в памяти процесса так, чтобы он всегда возвращал AMSI_RESULT_CLEAN.

  2. 02

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

Частые вопросы

Что такое Обход AMSI?

Техники, отключающие, патчащие или обходящие Windows Antimalware Scan Interface, чтобы скрипты и in-memory полезные нагрузки не попадали под проверку антивирусов. Относится к категории Атаки и угрозы в кибербезопасности.

Что означает Обход AMSI?

Техники, отключающие, патчащие или обходящие Windows Antimalware Scan Interface, чтобы скрипты и in-memory полезные нагрузки не попадали под проверку антивирусов.

Как защититься от Обход AMSI?

Защита от Обход AMSI обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия Обход AMSI?

Распространённые альтернативные названия: AMSI evasion.

Связанные термины