Прячем VMware от вредоносов

Методы выявления вредоносного кода совершенствуются, как и сам вредоносный код. Если в прежние времена антивирусные системы использовали сигнатурный анализ для выявления вирусов, то сейчас такого подхода уже явно недостаточно. Сейчас для проверки, является ли опасным тот или иной файл, необходимо запустить его на выполнение и посмотреть — к каким именно компонентам ОС он обращается, что делает, не пытается ли прописаться в автозагрузку и т. д.

Для этого существуют специальные решения — так называемые песочницы. Здесь все достаточно просто. Для проверки файла создается экземпляр виртуальной машины — например, под Windows 7, в которой уже установлены основные офисные приложения, Acrobat Reader, почтовый клиент, браузеры и прочее. Далее, специальные хуки перехватывают различные обращения, выполняемые тестируемым файлом и анализируют их. В результате обращения проверяемого файла к реестру, действия с другими файлами, использование библиотек и многое другое будет выявлено песочницей. Казалось бы, sandbox является эффективным средством выявления вредоносного кода, но не все так просто. Дело в том, что поток проверяемых файлов даже в организации средних размеров может быть достаточно большим, и мы не можем слишком долго проверять один файл. Как правило, продолжительность проверки длится от двух до пяти минут.

Этим и пользуются разработчики вредоносов. Они могут искусственно замедлить начало выполнения полезной нагрузки, то есть вредоносного кода, для того, чтобы анализатор попросту не дождался и завершил анализ раньше с вердиктом, что файл безопасен.

Также, разработчики вражеского софта могут установить счетчик запусков приложения, и вредоносная активность будет начинаться, допустим, только при третьем запуске файла. Естественно, песочница не будет несколько раз запускать один и тот же файл и подозрительная активность и здесь не будет выявлена.

И наконец, поведение вредоноса будет меняться в случае, если он обнаружит, что его запустили в виртуальной среде.

Так или иначе, если у нас есть основания не доверять нашей песочнице, нам необходимо проанализировать подозрительный файл самостоятельно. Для этого проще всего развернуть собственную виртуальную машину, в которой с помощью различных инструментов провести анализ. И вот здесь и возникает первая проблема, о которой мы будем говорить далее. Нам необходимо собрать нашу виртуалку таким образом, чтобы вредонос не почувствовал, что его ограничивают виртуальной средой.

В рамках данной статьи мы будем говорить о виртуализации на базе VMware Player.

Усложняем установку

Обычно, при создании виртуальной машины в VMware Player мы сразу указываем ISO образ, который хотим использовать для установки системы. Однако, такая быстрая установка в свою очередь приведет к тому, что будут установлены VMware Tools, а как раз это нам совсем не нужно. Вместо этого выберите пункт с установкой операционной системы позже.

218ceb6770f21a2ba438551a1064a06f.png

Далее необходимо нашу тестовую машину сделать максимально похожей на настоящий компьютер. Для этого, в первую очередь необходимо указать реалистичный размер диска. Конечно, для обычной тестовой машины мы бы могли обойтись 20–30 Гб, но на реальной машине диски всегда имеют больший объем.

Так что укажем не менее 128 Гб. При этом, реальное место потребляемое файлами виртуальной машины будет, как правило, меньше этого объема, так как не все пространство этого диска будет использоваться.

fe794a3a3d74f58461f992a943e9f944.png

На следующем шаге укажем использование виртуализации Intel или AMD.

b1ec792b2e9019f24c6965d565158e9b.png

Далее работу мастера создания виртуальных машин можно завершить, и теперь поправим настройки созданной ВМ.

В частности, укажем использование BIOS в качестве Firmware type.

4bc4aa67f0b0f67cd26d3fc3cc54d45b.png

Не лишним будет внесение некоторых изменений в параметры сетевых интерфейсов. Так, стоит поменять МАС адрес. Напомним, что первые три байта в МАС адресе — это производитель. Соответственно, наш МАС не должен начинаться с 00:05:69, 00:50:56, 00:1C:14, или 00:0c:29.

Изменим адрес в свойствах сетевого адаптера.

795807943c3fe9a1380d868719476c31.png

Следующие действия требуют внесения изменения в файлы образа BIOS.

Внесение исправлений в ПЗУ BIOS

ПЗУ VMware BIOS содержит строки, относящиеся к VMware и виртуализации. Исправим это. В целом, править образ BIOS достаточно просто, хотя и не так как просто, как шестнадцатеричное редактирование файла ROM, поскольку это может привести к повреждению внутренних контрольных сумм в файле и неработоспособности образа.

Лучше всего воспользоваться редактором Phoenix BIOS, который можно без труда найти на просторах интернета.

Файл ROM находится в установочном каталоге VMware Workstation/Player, а именно в подкаталоге x64. По умолчанию это C:\Program Files (x86)\VMware\VMware Workstation\x64. Не забудьте сделать копию файла, перед тем как внесете изменения.

Соответственно, откройте файл в редакторе, найдите окно «Строки DMI» и измените значения, чтобы они не содержали «VMware» или «Virtual Platform».

65e17abdb6c9b76fda22cfaaf6f508d6.png

Редактирование файла VMX

Перейдите в каталог, в котором хранится ваша виртуальная машина. Там также должен быть файл с именем <имя_вм>.vmx. Откройте этот файл в текстовом редакторе. При этом также не забудьте сделать бэкап.

Далее добавим в конец этого файла следующую строку:

bios440.filename = "С:\<путь_к_файлу_BIOS>\BIOS.440.PATCH.ROM"

В завершении нашего процесса настройки поправим еще несколько параметров. Прежде всего, отключим сообщение о присутствии гипервизора при выполнении инструкции CPUID, используемой при получении информации о процессоре.

hypervisor.cpuid.v0 = "FALSE"

Отключите еще несколько инструкций, которые могут в дальнейшем помочь вредоносу понять, что он в виртуальной реальности.

monitor_control.restrict_backdoor = "TRUE"

monitor_control.disable_directexec = "TRUE"

monitor_control.disable_chksimd = "TRUE"

monitor_control.disable_selfmod = "TRUE"

monitor_control.disable_ntreloc = "TRUE"

monitor_control.disable_reloc = "TRUE"

monitor_control.disable_btmemspace = "TRUE"

monitor_control.disable_btpriv = "TRUE"

monitor_control.disable_btinout = "TRUE"

monitor_control.disable_btseg = "TRUE"

isolation.tools.getVersion.disable = "TRUE"

isolation.tools.setVersion.disable = "TRUE"

isolation.tools.getPtrLocation.disable = "TRUE"

isolation.tools.setPtrLocation.disable = "TRUE"

При определенных условиях есть вероятность, что гипервизор при запуске попытается использовать непропатченную, исходную версию BIOS. Чтобы этого не случилось, включим копирование SMBIOS с хоста.

smbios.reflectHost = "TRUE"

Вот теперь вы можете приступать к установке операционной системы. После установки не лишним будет проверить в параметрах системы, драйверах и реестре, не упоминается ли где‑то VMware или что‑то, связанное с виртуализацией.

Заключение

Исследование вредоносного кода является достаточно трудоемкой задачей, и правильная настройка используемых инструментов может серьезно помочь при изучении и сократить затраты времени.

Больше актуальных навыков по обеспечению информационной безопасности вы можете получить в рамках практических онлайн-курсов от экспертов отрасли: в каталоге можно посмотреть список всех программ, а в календаре — записаться на открытые уроки.

© Habrahabr.ru