T1564.007: Сокрытие в скомпилированном VBA-коде
Злоумышленники могут скрыть полезную нагрузку в формате Visual Basic for Applications (VBA), встроенную в документы Microsoft Office, подменив исходный код на языке VBA безопасными на вид данными.
Документы Microsoft Office со встроенным содержимым в формате VBA хранят исходный код внутри потоков модулей. Каждый поток модулей содержит раздел PerformanceCache
, в котором хранится отдельная скомпилированная версия исходного кода на VBA, называемая пи-кодом (p-code). Этот пи-код выполняется в том случае, если версия Microsoft Office, указанная в потоке _VBA_PROJECT
(который содержит зависимое от версии описание проекта VBA), соответствует версии хост-приложения Microsoft Office.
Злоумышленник может замаскировать вредоносный код на VBA, перезаписав его исходный код нулями, безопасным кодом или случайными байтами, не затронув при этом ранее скомпилированный вредоносный пи-код. Таким образом можно обойти средства, сканирующие документы на наличие вредоносного кода на VBA, поскольку нежелательный код скрыт в скомпилированном пи-коде. Если исходный код на VBA удален, некоторые средства защиты могут даже не обнаружить наличие макросов. Если версии потока _VBA_PROJECT
и хост-приложения Microsoft Office совпадут, пи-код будет выполнен. В противном случае безопасный исходный код VBA будет распакован и перекомпилирован в пи-код — таким образом вредоносный пи-код будет перезаписан, что потенциально позволит обойти динамический анализ кода.
Какие продукты Positive Technologies покрывают технику
Описание методов обнаружения техники пока недоступно
Способы обнаружения
ID | DS0012 | Источник и компонент данных | Сценарий: Выполнение сценария | Описание | Отслеживайте различия между исходным кодом VBA и p-кодом. Код VBA можно извлечь из p-кода до его выполнения с помощью дизассемблера pcodedmp и аналогичных инструментов. Дизассемблер pcodedmp используется в составе инструментария oletools для обнаружения техники сокрытия в скомпилированном VBA-коде путем сопоставления ключевых слов из исходного кода VBA с p-кодом. |
---|
ID | DS0022 | Источник и компонент данных | Файл: Метаданные файла | Описание | Если документ будет открыт через графический интерфейс (GUI), вредоносный p-код будет декомпилирован и отображен. Но если в поток |
---|
Меры противодействия
ID | M1042 | Название | Отключение или удаление компонента или программы | Описание | Отключите или ограничьте доступ к ненужным компонентам VB. |
---|