PT Sandbox

Песочница для экспертной защиты от сложного вредоносного ПО и угроз нулевого дня

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 покрывают технику

Описание методов обнаружения техники пока недоступно

Способы обнаружения

IDDS0012Источник и компонент данныхСценарий: Выполнение сценарияОписание

Detection efforts should be placed finding differences between VBA source code and p-code. VBA code can be extracted from p-code before execution with tools such as the pcodedmp disassembler. The oletools toolkit leverages the pcodedmp disassembler to detect VBA stomping by comparing keywords present in the VBA source code and p-code.

IDDS0022Источник и компонент данныхФайл: Метаданные файлаОписание

If the document is opened with a Graphical User Interface (GUI) the malicious p-code is decompiled and may be viewed. However, if the PROJECT stream, which specifies the project properties, is modified in a specific way the decompiled VBA code will not be displayed. For example, adding a module name that is undefined to the PROJECT stream will inhibit attempts of reading the VBA source code through the GUI.

Меры противодействия

IDM1042НазваниеОтключение или удаление компонента или программыОписание

Turn off or restrict access to unneeded VB components.