Антивирус не детектирует файл с обфусцированным макросом (VBA) в документе OLE2 (Office).
Причины
- Обфускация кода: символьные подстановки (Chr, Asc, Split, Replace, Evaluate), шифрование строк (Base64/Hex), динамическое выполнение (Execute, Run).
- Сигнатурный анализ не срабатывает из-за уникальной для каждого экземпляра структуры обфускации.
- Эвристика пропускает макрос, если он не вызывает системные API напрямую или использует легитимные функции в неопасном контексте.
- Ограниченная глубина анализа VBA на уровне ядра антивируса (поведенческий анализ не активирован).
Решение
Использовать YARA-правило, нацеленное на признаки обфускации в VBA-коде. Пример правила (сохранить как `.yar`):
yara
rule obfuscated_vba_macro {
meta:
description = "Обнаружение обфусцированных макросов по характерным строкам VBA"
author = "ForensicAnvil"
hash = "sha256: "
strings:
// Типовые функции обфускации
$chr = "Chr" nocase
$asc = "Asc" nocase
$strrev = "StrReverse" nocase
$split = "Split" nocase
$replace = "Replace" nocase
$eval = "Evaluate" nocase
// Подозрительные строковые паттерны
$base64 = /[A-Za-z0-9+\/=]{40,}/
$hex = /[0-9A-Fa-f]{20,}/
// Автоматический запуск и опасные функции
$auto_open = "Auto_Open" nocase
$shell = "Shell" nocase
$createobj = "CreateObject" nocase
$wmi = "Win32_" nocase
condition:
// Комбинация обфускации + опасного вызова или длинного base64/hex
( (#chr >= 3 or #asc >= 3 or #strrev >= 1) and ($auto_open or $shell or $createobj or $wmi) ) or
( ($base64 or $hex) and ($auto_open or $shell or $createobj or $wmi) )
}Инструкция по применению (Linux/macOS)
1. Установите yara: `sudo apt install yara` или `brew install yara`.
2. Сканируйте файл: `yara -s obfuscated_vba_macro.yar документ.docx`.
3. Для эвристики используйте olevba из пакета oletools:
`olevba --deobfuscate документ.docx | grep -E "Suspicious|IOC|AutoExec"`.
Дополнительно
- Настройте антивирус на режим глубокого анализа VBA (например, в Kaspersky Endpoint Security — включить «Эвристический анализатор макросов»).
- Для поведенческого анализа применяйте Cuckoo Sandbox или CAPE в изолированной среде — антивирус может не детектировать локально, но песочница зафиксирует аномалии в рантайме.