Содержание статьи
Нам предложен такой сценарий: организацию взломали, команда SOC обнаружила загруженный исполняемый файл. Наша задача — исследовать его и разработать индикаторы компрометации для последующего детектирования.
info
Исследование вредоносного файла необходимо проводить в изолированной среде. Как создать лабораторию для анализа вредоносов, подробно рассказано в статье «Код под надзором. Создаем виртуальную лабораторию для анализа малвари».
Итак, загружаем вредонос и начинаем его исследовать. По результатам решения кейса необходимо ответить на несколько вопросов, но я покажу, только как его решать, и не буду приводить ответы. Лучше повтори весь процесс самостоятельно, чтобы разобраться и закрепить материал.
Инструментарий
Для исследования вредоносного файла воспользуемся следующим софтом.
- DIE — программа для определения типов файлов.
- PeStudio — программа для поиска артефактов исполняемых файлов.
- IDA Pro — интерактивный дизассемблер, используемый для реверс‑инжиниринга.
- Wireshark — инструмент для анализа сетевого трафика.
- Burp Suite — используется в качестве прозрачного прокси‑сервера с целью анализа взаимодействия вредоносного файла по протоколу HTTPS.
- Loki Scanner — сканер IOCs.
- YaraEditor — программа для тестирования и создания правил YARA.
- ApiLoger — утилита для анализа вызываемых WinAPI-функций исследуемого вредоноса.
- x64dbg — отладчик с открытым исходным кодом для Windows, предназначенный для анализа вредоносных программ.
Анализировать вредоносный модуль мы будем в четыре этапа:
- Статический анализ.
- Поведенческий анализ.
- Динамический анализ.
- Создание индикаторов компрометации.
Статический анализ
В первую очередь получим MD5-хеш‑сумму исполняемого файла и проверим его на VirusTotal. По MD5 a2f33095ef25b4d5b061eb53a7fe6548 VirusTotal выдает нам первичную информацию об исполняемом файле.
Далее скормим исследуемый файл утилите DIE и выясним, какой компилятор и компоновщик использовался при создании вредоноса, а также определим, упакован он или нет.
Итак, мы узнали, что вредоносный модуль разработан на C/C++ и собран для 32-разрядных операционных систем. DIE определяет упаковщик с помощью загруженных сигнатур, но идентифицировать ручной упаковщик не позволяет. Для этого необходимо посмотреть энтропию файла по секциям.
info
Что такое энтропия исполняемого файла, рассказано в статье «Энтропия. Как хаос помогает искать вирусы».
Значение энтропии 7,677, значит, файл упакован. Из рисунка выше видно, что исследуемый файл имеет четыре секции, энтропия секции .
равна 7,844.
Загрузим файл в утилиту PeStudio, чтобы найти всевозможные артефакты. Нам интересны временные метки компиляции файла, загружаемые библиотеки, используемые ресурсы, информация о версии исполняемого файла, характерные строки, а также отладочная информация и файл сборки (Manifest). Все это пригодится нам при создании файловой сигнатуры.
Строка C:\
нам интересна для создания правила детектирования. На данном этапе мы выяснили, что исполняемый файл упакован, и получили характерные строки.
Прежде чем приступить к динамическому анализу, изучим поведение вредоносного модуля. На этом этапе выявим сетевое взаимодействие с управляющим сервером, а также используемые функции Windows API.
Запустим утилиту INetSim в виртуальной машине Kali
. Также запустим Burp Suite для анализа взаимодействия по HTTPS и будем слушать сетевой трафик взаимодействия, используя Wireshark.
Запустим Api Loger, выберем исполняемый файл chalenge.
и начнем писать логи.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»