В первой части этой статьи мы обсудили в основном вспомогательный материал. Теперь, когда был положен фундамент, мы можем приступить к самому процессу восстановления структурной схемы по исходным текстам (reverse engineering) или rev eng, как многие его называют.
Если вы хотите ознакомиться с остальными частями этой статьи, пожалуйста, прочитайте:
В первой части этой статьи мы остановились на том, что обсудили навыки, которые необходимы для того, чтобы провесит восстановление структурной схемы по исходным текстам (reverse engineering) на базовом уровне (basic level). Самое необходимое знание, которые для этого требуется, это программирование (programming). Вам не обязательно быть программистом корпоративного уровня (enterprise level programmer) для того, чтобы попрактиковаться в reverse engineering. Я даже пойду еще дальше и скажу, что вам вовсе не обязательно даже быть программистом. Все что вам необходимо, это хорошо понимать функции программирования (programming function), и как минимум, уметь читать и понимать исходные тексты (source code). Эта возможность приведет к знанию таких функций, как “sprintf”, например.
Итак, после нескольких остановок и задержек в первой части, мы перейдем к загрузке примера вредоносного программного обеспечения (malware). Это можно сделать с ранее упомянутого сайта Metasploit, которые упрощает нам работу по поиску вредоносного программного обеспечения (malware). Пожалуйста, перейдите по следующей ссылке, но помните, что вы загружаете вредоносное программное обеспечение (malware) на свой страх и риск. После того, как вы перейдете по ссылке, вы увидите рисунок, который изображен ниже.
Теперь, когда вы перешли на домашнюю страницу, наберите слово trojan (троянский конь) и нажмите ввод. Теперь вашему вниманию будет представлен список примеров вредоносного программного обеспечения (malware), которые вы можете загрузить в свое удовольствие. Прелестно, не так ли! В случае, если вы сомневаетесь в полученных вами результатах, пожалуйста, посмотрите на рисунок ниже.
Теперь я пойду дальше и загружу троянского коня (trojan) за последнюю неделю, но сейчас его уже нет в списке. Но это не столь важно, т.к. все, что я покажу для трояна (trojan), который загрузил я, ничем не будет отличаться для троняна, который загрузите вы сами. Пожалуйста, помните, что вредоносное программное обеспечение вы загружаете на свой страх и риск. Пожалуйста, убедитесь, что вы работаете с примером вредоносного программного обеспечения (malware), которые вы загрузили, в безопасном окружении, а именно вы делаете это не в промышленной среде (production system)! Извините, если я говорю очевидные вещи, но я хочу быть уверенным, что между нами нет недопонимания.
В самом деле, хороший вопрос. Что теперь? Теперь, когда у вас есть пример вредоносного программного обеспечения (malware), который вы аккуратно перенесли на образ VMware image или отдельно стоящий компьютер, мы можем приступить к его рассмотрению. Перед тем, как сделать это, было бы неплохо применить методический подход (methodical approach). Под этим я подразумеваю, что вы должны начать вашу аналитическую методологию правильно. Т.е. вы должны начать выполнять восстановление структурной схемы по исходным текстам (reverse engineering) на регулярной основе (regular basis). По существу, вы можете выделить похожие части вредоносного программного обеспечения (malware). Проблема заключается в том, как однозначно различить две части вредоносного программного обеспечения (malware)? Для этого используются хеш-противоречия (hash collision), это можно сделать с помощью MD5 hash. Вредоносное программное обеспечение (Malware) часто имеет много вариаций, поэтому иногда увидеть различие между ними бывает очень сложно, если ваши навыки в reverse engineering не очень сильно развиты. Поэтому использование MD5, которое упоминается выше, может быть очень полезным.
Вы можете загрузить некоторые утилиты, которые сделают это для вас в операционной системе Windows. Я могу предположить, что вы загрузите следующую программу под названием MAP или Malcode Analyst Pack (анализатор вредоносного кода), которая был спонсирована хорошими людьми из компании iDefense. Это очень удобная программа сделает для вас очень много различных вещей, включая возможность запуска проверки контрольных сумм MD5 checksums для файлов и папок. Программа поставляется в пакете MSI package и легко устанавливается. После установки вы обратите внимание, что после того, как вы щелкаете правой кнопкой мыши на определенном файле или папки, то вы получаете больше информации и параметров, чем обычно. В нашем случае, это хеш файлы (“Hash Files”). Затем, вы можете просто закрыть это окно и позволить программе делать ее работу. Взгляните на рисунок ниже, на котором представлен результат.
Обратите внимание, что для содержимого папки “debanot” был применен MD5. Мы видим информацию о хеше, плюс название файла и его размер, измеряемый в байтах. В общем, это очень неплохая возможность. Я настоятельно рекомендую запускать MD5 hash для всех частей вредоносного программного обеспечения (malware), которое вы анализируете перед тем, как в результате его активности возникнут какие-либо изменения. Это позволит сэкономить немало времени, чтобы в будущем не анализировать то же самое вредоносное программное обеспечение дважды. Вы можете познакомиться с MAP более близко и узнать, что у него есть много инструментов, которые можно использовать для анализа вредоносного программного обеспечения (malware analysis). Это было целью написания этой программы. Я рекомендую вам изучить многие другие возможности MAP.
Итак, мы хоть немного приблизились к взлому исполняемого модуля вредоносного программного обеспечения (malware)? Да, да, мы на пути! Если вы скажете, что терпение – это качество, присущее мастеру, то я соглашусь с вами. Теперь, когда у нас есть пример вредоносного программного обеспечения (malware), и мы использовали для него MD5 hash, мы готовы двинуться дальше. Для продолжения нам нужен редактор шестнадцатиричного кода (hex editor). Существует несколько хороших шестнадцатиричных редакторов (hex editor), но тот, который буду использован мной, выпущен компанией Heaventools. Хотя существует много бесплатных шестандцатиричных редакторов, но мне кажется, что вы получает то, за что платите, поэтому я рекомендую использовать коммерческий редактор. Но вы вольны выбирать то, что вам нравиться, т.к. любой редактор будет выполнять свою работу.
Теперь я не знаю, как выглядит файл вредоносного программного обеспечения (malware), которое вы загрузили, т.к. я не загружал его для вас. Под этим я подразумеваю следующее, имеет ли вредоносное программное обеспечение (malware), которое вы нашли по ключевому слову trojan (троян) на Metasploit, какую-нибудь особую иконку? Выглядит ли она как обычная иконка winzip или winrar, которые мы привыкли видеть? Или же он выглядит, как обычный исполняемый файл Microsoft Windows в формате PE format? Вы можете сказать сами себе следующее: “Великолепно! Дон подготавливает меня к какому-то долгому и витьеватому объяснению ….”. Вы будете правы, если подумаете так.
Как я уже говорил ранее, существует определенный набор этапов при анализе вредоносного программного обеспечения (malware). Также, не всегда доверяйте своим глазам. В мире вредоносного программного обеспечения (malware) все не всегда так, как выглядит внешне. Большинство вредоносного программного обеспечения использует невнимательность пользователя. Но мы с вами не так просты, как им кажется. На таком замысловатом высказывании я закончу вторую часть этой статьи, посвященной восстановлению структурной схемы по исходным текстам (reverse engineering). Ждите выхода новой статьи! До новых встреч.
Источник www.windowsecurity.com