Reverse engineering, Реверс-инжиниринг

#4 Реверс-инжиниринг. Работа с вредоносными программами. Базовая настройка в лаборатории анализа.

Здравствуйте, дорогие друзья.

Читателям этого цикла статей рекомендуется соблюдать меры предосторожности при работе с файлами, содержащими вредоносные программы. Вот несколько основных советов, которые помогут нам предотвратить взлом нашего хост-компьютера.:
• Проводите анализ в закрытой среде, например, на отдельном компьютере или на виртуальной машине.
• Если доступ к сети не требуется, отключите его.
• Если доступ в Интернет не требуется, отключите его.
• При копировании файлов вручную переименуйте файл в файл с именем, которое не выполняется. Например, переименуйте myfile.exe в myfile.foranalysis.


Базовая настройка в лаборатории анализа

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

идеальная настройка среды анализа

Среда sandbox — это среда, в которой мы проводим анализ файла. MITM, упомянутый справа на диаграмме, означает среду man in the middle, в которой мы отслеживаем входящие и исходящие сетевые действия. Sandbox следует восстановить до исходного состояния. Это означает, что после каждого использования мы сможем вернуть его в неизмененное состояние. Самый простой способ настроить это — использовать технологию виртуализации, поскольку тогда будет легко вернуться к клонированным образам. Существует множество программ виртуализации на выбор, включая VMware, VirtualBox, Virtual PC и Bochs.
Следует также отметить, что существует программное обеспечение, которое может определить, что оно запущено, и не любит, когда его запускают в виртуализированной среде. В этом случае может потребоваться настройка физического компьютера. Лучшим решением для нас было бы программное обеспечение для управления дисками, которое может сохранять образы дисков или создавать новые образы. К таким программам относятся Fog, Clonezilla, Deep Freeze и HDClone.


Наша установка
В нашей установке мы будем использовать VirtualBox, который можно загрузить с сайта https://www.virtualbox.org/. Мы будем использовать 32-разрядную ОС Windows 7, которую можно загрузить с сайта https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/. На следующей диаграмме система, имеющая подключение к Интернету, установлена с двумя виртуальными машинами, гостевой изолированной средой и гостевой MITM:

Система, имеющая подключение к Интернету, установлена с двумя виртуальными машинами
  1. Загрузите и установите VirtualBox и запустите его. В VirtualBox есть установщики как для Windows, так и для Linux. Загрузите 32-разрядный образ Windows 7, как показано здесь:
Загрузка 32-разрядного образа Windows 7
  1. Образ, загруженный с веб-сайта Microsoft, заархивирован и должен быть извлечен. В VirtualBox нажмите «Файл»|»Импортировать устройство». Вам должно быть показано диалоговое окно, в котором мы можем импортировать 32-разрядный образ Windows 7.
  2. Просто просмотрите и выберите файл OVA, который был извлечен из ZIP-архива, затем нажмите «Далее», как показано здесь:
Импорт файла ova.

4. Прежде чем продолжить, можно изменить настройки. Объем оперативной памяти по умолчанию равен 4096 МБ. Чем больше выделено оперативной памяти и чем больше число ядер процессора, тем выше производительность при запуске или отладке. Однако, чем больше будет добавлено оперативной памяти, тем больше места на диске будет занято при сохранении снимков изображения. Это означает, что если мы выделим 1 ГБ оперативной памяти, то для создания снимка также потребуется не менее 1 ГБ дискового пространства. Мы установили объем оперативной памяти на уровне 2048 МБ, что было бы вполне достаточным для нашей работы:

RAM 2048
  1. Нажмите на Импорт, и он должен начать генерировать образ виртуального диска. Как только он будет завершен, нам нужно создать наш первый снимок. Рекомендуется создавать снимок в выключенном состоянии, поскольку объем занимаемого дискового пространства минимален. Найдите вкладку «Снимки» и нажмите «Сделать». Заполните поля «Название снимка» и «Описание снимка», затем нажмите кнопку «ОК«. Это быстро создаст Ваш первый снимок.
    Во включенном состоянии объем оперативной памяти плюс объем измененного дискового пространства на виртуальной машине равны общему объему дискового пространства, который будет занимать моментальный снимок.
  2. Нажмите «Пуск», чтобы начать запуск образа Windows 7. В конечном итоге Вы увидите следующее окно. В случае, если он запросит пароль, по умолчанию используется пароль Password!:
Запуск Windows 7

На данный момент для настройки сети задано значение NAT. Это означает, что все сетевые ресурсы, необходимые виртуальной машине, будут использовать IP-адрес главного компьютера. IP-адрес виртуальной машины берется из службы виртуального DHCP VirtualBox. Помните, что для любого сетевого взаимодействия на виртуальной машине используется IP-адрес главного компьютера.
Поскольку мы не можем предотвратить отправку определенной вредоносной программой информации в Интернет, чтобы вернуть ее обратно на нашу виртуальную машину, важно отметить, что некоторые интернет-провайдеры могут отслеживать распространенное поведение вредоносных программ. Лучше всего ознакомиться с Вашим контрактом с ними и позвонить, если это необходимо.
Большая часть нашего анализа связана с вредоносными программами, и на момент написания статьи злоумышленники обычно нацеливались на системы Windows. В нашей установке используется 32-разрядная версия Microsoft Windows 7. Не стесняйтесь использовать другие версии. Мы рекомендуем установить 32-разрядную версию Microsoft Windows, так как позже, во время низкоуровневой отладки, будет проще отслеживать виртуальные и физические адреса.


Образцы
Мы будем создавать наши собственные программы, чтобы проверить и понять, как ведет себя низкоуровневый код и как он выглядит. В следующем списке представлено программное обеспечение, которое мы будем использовать для создания наших программ:
Dev C++ (http://www.bloodshed.net/devcpp.htm)
Visual Studio C++ (https://www.visualstudio.com/downloads/) MASM32 (http://www.masm32.com/)


Резюме
Реверс инжиниринг существует уже много лет и является полезным методом для понимания того, как все работает. В индустрии программного обеспечения обратный инжиниринг помогает проверять и исправлять потоки и структуры кода. Информация, получаемая в результате выполнения таких задач, может повысить безопасность различных аспектов программного обеспечения, сетевой инфраструктуры и осведомленности человека. Реверс-инжиниринг, являющийся основным требованием к специалистам в области защиты от вредоносных программ, помогает создавать информацию об обнаружении и исправлении ошибок; ту же информацию, которая используется для создания защитных систем для серверов организации. Он также используется властями и экспертами для выявления преступных группировок.
Существуют основные шаги, которые помогают собрать информацию о реверс-инжиниринге. Как только аналитик получит разрешение от автора оригинала на проведение реверс-инжиниринга, он может начать со статического анализа, динамического анализа и затем низкоуровневого анализа. Затем следует обзор и подробные сведения о программном обеспечении.
При проведении анализа используются различные типы инструментов, включая инструменты статического анализа, дизассемблеры, декомпиляторы, отладчики и средства мониторинга системы. При реверс-инжиниринге вредоносных программ лучше всего использовать эти инструменты в среде с ограниченным доступом к сети, которую Вы используете для личных целей или работы, или вообще без доступа к ней. Это должно предотвратить компрометацию Вашей инфраструктуры. С вредоносными программами следует обращаться должным образом, и мы перечислили несколько способов предотвратить случайные двойные щелчки.
Для анализа вредоносных программ, тем не менее, требуется доступ к Интернету, чтобы получить дополнительную информацию о том, как работает вредоносное ПО и что оно делает. Могут возникнуть некоторые юридические вопросы, которые требуют от вас ознакомления с законами Вашей страны и политиками вашего местного интернет-провайдера, чтобы убедиться, что вы не нарушаете ни одно из них.
Основным требованием к настройке аналитической лаборатории является то, что целевую операционную систему можно вернуть в неизмененное состояние.
Теперь, когда у нас есть базовые настройки, давайте начнем наше путешествие по обратному проектированию.

На этом все. Всем хорошего дня!

Цикл статей по реверс-инжинирингу.