Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Майкл_Сикорски,_Эндрю_Хониг_Вскрытие_покажет!_Практический_анализ.pdf
Скачиваний:
18
Добавлен:
19.04.2024
Размер:
17.17 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

3

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Основы динамического анализа

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Динамический анализ выполняется после запуска вредоносной программы. Это второй этап исследования вредоносного кода, и его обычно проводят после того, как базовый статический анализ зашел в тупик — либо из-за обфускации/упаковки, либо ввиду исчерпания имеющихся статических методик. Динамический подход может подразумевать как мониторинг самого вредоноса, так и исследование системы после его выполнения.

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

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

Песочницы: решение на скорую руку

Для проведения базового динамического анализа доступно несколько универсальных программных продуктов, самые популярные из которых используют технологию песочницы. Песочница — это механизм безопасности, предназначенный для выполнения подозрительных программ в защищенной среде без риска нанести вред

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Глава 3. Основы динамического анализа  

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w63

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

«реальной» системе. К песочницам относят виртуализованные среды, которые часто тем или иным образом эмулируют сетевые службы, обеспечивая нормальную работу исследуемого ПО.

Использование песочниц

Многие песочницы, такие как Norman SandBox, GFI Sandbox, Anubis, Joe Sandbox, ThreatExpert, BitBlaze и Comodo Instant Malware Analysis, являются бесплатными. В настоящее время среди экспертов по компьютерной безопасности наибольшей популярностью пользуются Norman SandBox и GFI Sandbox (бывший CWSandbox).

Эти песочницы предоставляют простые для понимания отчеты и отлично подходят для начального анализа, правда, только если вы готовы загрузить программу на соответствующий сайт. Хотя песочницы автоматизированы, вы все же можете не разрешить загрузку на публичный ресурс вредоносов, которые содержат информацию о вашей компании.

ПРИМЕЧАНИЕ

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

Большинство песочниц работают схожим образом, поэтому мы сосредоточим наше внимание на одном примере, GFI Sandbox. На рис. 3.1 показано содержание отчета в формате PDF, который этот пакет генерирует автоматически. Отчет включает в себя множество подробностей о вредоносе, таких как предпринимаемая им сетевая активность, результаты сканирования утилитой VirusTotal и т. д.

Отчет, сгенерированный GFI Sandbox, может содержать разное количество разделов в зависимости от результатов анализа. На рис. 3.1 показано шесть разделов.

Раздел Analysis Summary (Краткий анализ) содержит результаты статического исследования и краткие итоги динамического анализа.

В разделе File Activity (Файловая активность) перечисляются файлы, открытые, созданные или удаленные каждым процессом, на который повлияла вредоносная программа.

Раздел Created Mutexes (Созданные мьютексы) перечисляет мьютексы, созданные вредоносом.

В разделе Registry Activity (Действия с реестром) указаны изменения, внесенные в реестр.

Раздел Network Activity (Сетевая активность) описывает сетевую активность вредоносной программы, включая открытие и прослушивание портов или выполнение DNS-запросов.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w

 

 

to

 

 

64    Часть I  •  Базовый анализ

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Рис. 3.1. Результаты анализа файла win32XYZ.exe с помощью GFI Sandbox

В разделе VirusTotal Results (Отчет VirusTotal) содержатся результаты сканирования вредоносного кода программой VirusTotal.

Недостатки песочниц

Песочницы для анализа вредоносного ПО имеют несколько существенных недостатков. Так, песочница выполняет вредоносную программу как есть, без аргументов командной строки. Поэтому код, который требует этих аргументов, не будет выполнен при их отсутствии. Кроме того, если для запуска бэкдора исследуемая программа должна получить управляющую инструкцию, этот бэкдор не будет запущен в песочнице.

Песочница может записать не все события, если было выбрано слишком короткое время ожидания. Например, вы можете пропустить вредоносную активность, если перед выполнением каких-либо действий программа засыпает на сутки (большинство песочниц перехватывают функцию Sleep и минимизируют время сна, однако существуют и другие способы отложить работу, и все они не могут быть учтены).

Есть и другие потенциальные недостатки.

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

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

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Глава 3. Основы динамического анализа  

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w65

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

должны быть реальными, например системные команды или ключи шифрования.

Если вредоносный код заключен в DLL, некоторые экспортные функции не будут вызваны надлежащим образом, поскольку по сравнению с исполняемым файлом запустить динамическую библиотеку не так просто.

Песочница может иметь неподходящую среду выполнения. Например, вредонос может работать в Windows 7, но не в Windows XP.

Песочница не может вам сказать, чем именно занимается вредонос. Она может сообщить о его базовых функциях, но неспособна идентифицировать, к примеру, нестандартную утилиту для копирования хешей из диспетчера учетных записей безопасности (Security Accounts Manager, SAM) или зашифрованный бэкдор с возможностями кейлогера. С этим вам придется разбираться самостоятельно.

Запуск вредоносных программ

Базовые методики динамического анализа окажутся бесполезными, если вам не удастся запустить вредоносное ПО. Здесь мы рассмотрим запуск большинства вредоносов, с которыми вы будете сталкиваться (EXE и DLL). И хотя обычно самым простым способом запуска является двойной щелчок на исполняемом файле или ввод его имени в командной строке, с библиотеками все может оказаться сложнее, поскольку Windows не выполняет их автоматически.

Посмотрим, как запустить DLL-файл, чтобы успешно провести динамический анализ.

Во всех современных версиях Windows присутствует программа rundll32.exe. Она предоставляет контейнер для выполнения DLL и имеет следующий синтаксис:

C:\>rundll32.exe имяDLL, экспорт

Аргумент экспорт должен быть именем или порядковым номером функции, выбранной из таблицы экспорта DLL. Как вы помните из главы 1, для просмотра этой таблицы можно использовать такие инструменты, как PEview или PE Explorer. Например, файл rip.dll имеет такой экспорт:

Install

Uninstall

Install может быть той функцией, которая запускает rip.dll, поэтому выполним следующую команду:

C:\>rundll32.exe rip.dll, Install

У вредоноса также могут быть функции, которые экспортируются только по порядковому номеру (в главе 1 мы подробно на этом останавливались). В таком случае функцию тоже можно вызвать с помощью rundll32.exe, воспользовавшись приведенной ниже командой. Перед порядковым номером (в данном случае 5) нужно указать символ #:

C:\>rundll32.exe xyzzy.dll, #5