В этой статье мы рассмотрим, как может выглядеть работа виртуальной машины VMProtect, а также посмотрим, что можно сделать для понимания защищенного функционала (в зависимости от того, как далеко вы готовы зайти в этом не всегда благодарном деле).
Ожидается, что данный материал поможет тем, кто в ходе реагирования на компьютерный инцидент или исследования какой-либо вредоносной активности столкнулся с защитой в виде виртуальной машины.
Вступление
Как понятно из названия, понятие виртуальной машины (для краткости далее ВМ) в данном контексте используется как описание механизма защиты программного обеспечения. Применение такой защиты заключается в представлении исходного алгоритма программы в виде последовательности команд, которые будут интерпретироваться соответствующими обработчиками (подробнее далее).
Такой механизм защиты применяется отдельно или в составе протекторов программного обеспечения, как это часто бывает, для защиты как легитимного софта, так и вредоносного ПО от анализа. В случае с последним целью также может быть обход обнаружения со стороны средств защиты, хотя сам факт применения протектора может, напротив, выступать в роли дополнительного аргумента в пользу вредоносности сканируемого файла.
На написание данной статьи побудил образец вредоносного ПО группировки PurpleFox, в котором применялась защита VMProtect версии 2.13 (не самая свежая, но как пример описания возможной реализации ВМ вполне подойдет). В различных упоминаниях вредоносных кампаний, в которых были задействованы схожие образцы, говорилось о применении руткита в качестве следующего этапа после развертывания защищенного с помощью VMProtect вредоносного модуля, от этого и без того большой интерес к данному образцу ощутимо вырос.
Итак, есть интересный повод разобраться в работе ВМ как средства защиты от анализа, идем дальше.
PurpleFox
Анализируемый вредоносный модуль наряду с еще двумя содержится в MSI-установщике, который попадает на устройство жертвы в результате работы относительно длинной цепочки выполнения различных вредоносных компонентов. Примеры таких цепочек, а также другая информация о такой вредоносной активности довольно подробно раскрывается в разных статьях по теме (пример 1, пример 2), поэтому не буду дублировать то, что и так хорошо описано