Статья посвящена методике исследования функциональности вредоносных программ с использованием инструмента ProcDOT. Даны конкретные шаги для подготовки к проведению анализа с обоснованием выбираемых программных систем и инструментов. Кратко охарактеризованы возможности ключевого компонента представляемой методики — утилиты ProcDOT. Приведен сценарий исследования образцов вредоносных программ по предлагаемой методике. Разработанная методика может использоваться в практической деятельности для быстрого получения информации о функциональности вредоносных программ.
Ключевые слова: компьютерная безопасность, анализ вредоносных программ, утилита ProcDOT.
Современный этап развития информационных технологий характеризуется наличием множества угроз компьютерной безопасности. Одна из самых серьезных таких угроз — всевозможные вредоносные программы. В целях изучения функциональности вредоносных программ их подвергают анализу. При этом активно используются как традиционные инструменты обратной программной инженерии (отладчики, дизассемблеры), так и различные системы и утилиты, специально разработанные для нужд анализа вредоносных программ. В данной статье приводится методика исследования активности вредоносных программ c использованием инструмента ProcDOT — специальной утилиты, предназначенной для динамического анализа вредоносных образцов.
Опишем конкретные шаги по подготовке к исследованию и анализу вредоносных программ по предлагаемой методике.
В качестве среды виртуализации для анализа предлагаем использовать среду VirtualBox [1]. Данное решение по виртуализации (базовый пакет) имеет лицензию GNUGeneralPublicLicense версии 2 и обладает такими характеристиками, как кроссплатформенность, возможность создания снимков состояния системы, что хорошо отвечает особенностям динамического анализа вредоносных программ. Далее, в среду виртуализации необходимо установить операционную систему, в которой будет запускаться анализируемый образец. Поскольку представляемая методика нацелена на исследование функциональности вредоносных программ, разработанных для операционных систем Windows, то рекомендуем использовать систему WindowsXP. Даная операционная система, несмотря на то, что уже не поддерживается, отлично подходит для задач динамического анализа вредоносного программного обеспечения.
Внутри операционной системы обязательно нужно наличие утилиты ProcessMonitor [2]. Данная утилита, разработанная компанией Sysinternals, предназначена для мониторинга файловой системы, мониторинга реестра и мониторинга процессов в режиме реального времени. Здесь интересно отметить принцип работы ProcessMonitor для анализа файловой активности. ProcessMonitor распаковывает драйвер фильтра файловой системы, который располагается внутри исполняемого файла Procmon.exe в качестве ресурса [3, с. 413]. Далее он устанавливает драйвер в память, а образ драйвера на диске уничтожается. Сам драйвер фильтра регистрирует функции обратного вызова с менеджером фильтров. Таким образом, когда менеджер ввода/вывода перенаправляет пакеты IRP драйверу присоединенного устройства менеджера фильтров, менеджер фильтров уведомляет драйвер фильтра ProcessMonitor о произошедшем событии. Из этого можно сделать вывод, что ProcessMonitor производит мониторинг активности файловой системы на уровне режима ядра, в отличие от инструментов, устанавливающих перехваты на библиотеки API уровня пользователя. Отметим необходимые действия по настройке ProcessMonitor для работы с ProcDOT. Во-первых, необходимо отключить опцию показа сетевых адресов в виде имен, отключить отображение колонки «последовательность» («Sequence»), а также включить отображение колонки идентификатора треда. Все это необходимо для правильной обработки результата работы ProcessMonitor — файла формата CSV, который будет загружаться в ProcDOT.
Опционально внутри WindowsXP может быть установлен пакет языка программирования Python. В экспериментах он применялся для удобства передачи файла-результата анализа, о чем будет сказано ниже.
Далее следует важный шаг по повышению скрытности системы анализа. В настоящий момент очень распространено наличие во вредоносных программах функциональности, обеспечивающей проверку на присутствие анализирующей среды. Если такая среда по результатам подобной проверки была обнаружена, то анализируемый образец изменяет свой поток управления и не раскрывает своего вредоносного поведения. Итак, кроме таких общих рекомендаций времени установки, как избежание по возможности установки дополнений, которые могут выдать присутствие виртуальной среды, выбор не менее двух процессоров и т. д., имеет смысл изменить параметры среды виртуализации, относящиеся к идентификаторам виртуального аппаратного обеспечения. Такая возможность обеспечивается с помощью утилиты vboxmanage.exe. Изменению, в частности, необходимо подвергнуть MAC адрес сетевого адаптера.
Следующим шагом устанавливаем дистрибутив REMnux [4] операционной системы Linux в VirtualBox. Данный дистрибутив основан на Ubuntu и заключает в себе множество инструментов для анализа вредоносных программ для Windows и Linux, изучения угроз уровня браузера (обфусцированный JavaScript), изучения файлов документов и других. Для нас главным здесь является факт присутствия на данном дистрибутиве утилиты ProcDOT.
Инструмент ProcDOT представляет собой утилиту для визуального анализа активности вредоносных программ [5]. На вход данная утилита принимает файл формата CSV, получающийся в результате работы ProcessMonitor. Результатом работы ProcDOT является граф, отображающий работающие процессы, треды, их отношения, взаимодействие с файловой системой и реестром. ProcDOT предоставляет, в частности, следующие возможности: корреляция данных ProcessMonitor и PCAP (данные сетевой активности), режим анимации, детектирование и визуализация инъектирования тредов, фильтрация отображаемых данных, возможности по расширению функциональности с помощью плагинов и другие.
Заключительным подготовительным шагом предлагаемой методики является настройка внутренней сети между машинами с WindowsXP и REMnux.
Итак, сценарий анализа вредоносной программы по предлагаемой методике следующий. Вначале в машине с WindowsXP запускается утилита ProcessMonitor. Далее, запускается образец вредоносной программы. По прошествии некоторого времени (приблизительно несколько минут) завершаем работу ProcessMonitor и сохраняем получившийся в результате файл. Далее запускаем специальный модуль Python — SimpleHTTPServer, входящий в стандартный пакет языка программирования Python. Данный модуль представляет собой http сервер и предоставляет возможность загрузки файлов по данному протоколу по сети. Поскольку машина с REMnux расположена в той же внутренней сети, что и WindowsXP, то появляется удобная возможность загрузки файла CSV в машину с REMnux, что и является следующим шагом. Далее, запускается на машине с REMnux утилита ProcDOT и в нее загружается получившийся файл с расширением CSV. На рисунке представлен снимок экрана с частью полученного в результате работы ProcDOT графа, отображающего поведенческую активность вредоносной программы.
Рис. 1. Поведенческая активность вредоносной программы в виде графа
На изображенной части графа можно видеть задействованные в процессе заражения файлы, в том числе, ushata.dll, usha.exe. Данный образец — троянская программа семейства PlugX [6]. Usha.exe — загрузчик программы «Касперский», а ushata.dll — вредоносный компонент, который выдает себя за часть программы «Касперский», получая, таким образом, управление в процессе работы usha.exe.
Таким образом, представленная методика исследования вредоносных образцов с использованием инструмента ProcDOT позволяет быстро получить информацию об активности вредоносной программы и может использоваться в практике специалистов по компьютерной безопасности.
Литература:
1. VirtualBox. Documentation. — URL: https://www.virtualbox.org/wiki/Documentation (датаобращения: 25.05.2016).
2. Windows Sysinternals. Process Monitor. — URL: https://technet.microsoft.com/en-us/sysinternals/processmonitor (датаобращения: 25.05.2016).
3. Russinovich M. Windows Internals / M. Russinovich, D. A. Solomon, A. Ionescu. — Redmond, Washington: Microsoft Press, 2014. — 649.
4. REMnux: A Linux Toolkit for Reverse-Engineering and Analyzing Malware. — URL: https://remnux.org/ (датаобращения: 25.05.2016).
5. ProcDOT. Online Documentation. — URL: http://www.procdot.com/onlinedocumentation.htm (датаобращения: 25.05.2016).
6. Szappanos G. PlugX goes to the registry (and India) / G. Szappanos. — URL: https://www.sophos.com/en-us/medialibrary/PDFs/technicalpapers/plugx-goes-to-the-registry-and-india.pdf?la=en (датаобращения: 25.05.2016).