Перейти к содержанию
Цели урока:
- Понять принцип проектирования систем автоматического анализа вредоносных программ.
- Получить опыт работы с утилитами CWSandBox и инструментами для идентификации упаковщиков.
1. CWSandBox
Сначала мы рассмотрим использование другого инструмента для анализа вредоносных программ - CWSandBox (теперь называется Sandbox). Данный инструмент доступен по адресу http://www.gfi.com/malware-analysis-tool. CWSandBox использует динамическую установку API хуков(DLL инъекция) для мониторинга системных вызовов. Подобный подход используется в Anubis. В этой статье, мы рассмотрим отчет, генерируемый CWSandBox. Мы будем использовать подобный подход, как и в прошлом уроке, и предоставим модифицированную версию Мах++. К сожалению, сервер не может сгенерировать отчет для нас в течении 24 часов.
2. VirusTotal
Далее мы загрузим модифицированную версию Мах++ на VirusTotal. Этот сайт запускает множество вирусных движков для обнаружения вредоносных программ. Мы явно попросим запустить анализ для модифицированной версии Max++. Рис. 1 показывает результаты полученные с VirusTotal (много инструментов для определения вирус перечислены).
Рис. 1. Результаты на VirusTotal
Как показано на рис. 1, большинство инструментов, основанных на сигнатурах, ( включая clamAV) не смогли определить, что модифицированная версия Мах++ - вирус ( отметим, что модифицированная версия — по функциональности совпадает с оригинальной версией Max++. Мы всего лишь вставили две NOP инструкции после int 2d). Среди всех инструментов для определения вирус, DrWeb идентифицировал его как вирус семейства MaxPlus.6, а остальные как Smiscer или Sirefef.
Интересно, если бы мы загрузили оригинальную версию Max++ на VirusTotal, мы бы получили результат показанный на рис. 1.5. В этот раз ClamAV определил его как "Trojan.Dropper".
Рис. 2. Результаты, выданные на VirusTotal, при анализу оригинальной версии Max++
3. Инструменты для идентификации упаковщиков
Как было сказано в Malware Analysis Tutorial 6 - Self-Decoding and Self-Extracting Code Segment, Max++ имеет самораспоковующее поведение. Интересно заметить, что инструмент использует существующий упаковщик, такой как UPX. Мы используем 3 инструмента для идентификации упаковщиков: PeID, RDGPacker Detector, и ExeInfoPE для исследования модифицированной версии Мах++. Все эти инструменты доступны бесплатно в сети.
PeID и RDGPacker не нашли какой либо известный упаковщик, используемый в коде Max++. Рис. 2 и 3 показывает результаты работы этих утилит.
Рис. 2. Результаты PeID
![]()
Рис. 3. Результаты RDGPacker Detector
Только ExeInfoPE сказал, что Max++ имеет 3 секции, который используется алгоритмах, таких как UPX(тем не менее, он точно не определил, что это UPX). Рис. 4 показывает результаты, выданные ExeInfoPE.
![]()
Рис. 4. Результаты ExeInfoPE
Можно сделать вывод, что Max++ не использует любые существующие упаковщики, что непосредственно упаковать его код. Он использует свой собственный алгоритм в основе, которого лежит алгоритм упаковки в несколько слоев (хочется отметить, что он не очень сложен).
© Translated by coldfire from r0 Crew



Reply With Quote
Thanks
