Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Майкл_Сикорски,_Эндрю_Хониг_Вскрытие_покажет!_Практический_анализ.pdf
Скачиваний:
15
Добавлен:
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

 

 

.

 

 

 

 

 

.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

 

 

 

 

Введение

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

внорму, вы удалите этот файл, после чего воспользуетесь анализатором трафика, чтобы создать сигнатуру для системы обнаружения вторжений (СОВ) и убедиться

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

Несколько дней спустя с вами опять связывается сетевой администратор и сообщает об очередном похищении конфиденциальной информации. Кажется, это та же самая атака, но на этот раз вы понятия не имеете, что делать. Очевидно, ваша СОВ-сигнатура не сработала, так как другие компьютеры оказались зараженными, а антивирус не обеспечивает достаточной защиты, чтобы изолировать угрозу. Теперь начальство требует объяснений, а у вас есть лишь название вредоносной программы — TROJ.snapAK. Вы не можете ответить на самые важные вопросы и выглядите жалко.

Чтобы устранить угрозу, нужно определить, как работает TROJ.snapAK. Но как это сделать? Как написать более эффективную сетевую сигнатуру? Как узнать, не заражены ли этим вредоносом другие компьютеры? Как убедиться в том, что вы обнаружили весь вредоносный пакет, а не его часть? Как объяснить руководству, что именно делает этот троян?

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

Но, к счастью, вы догадались купить эту книгу. Навыки, полученные с ее помощью, позволят вам ответить на сложные вопросы и защитить свою сеть от взлома.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w

 

 

to

 

 

20    Введение

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

 

 

 

 

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

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

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

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

Необходимая квалификация

В этой книге каждый, независимо от образования или опыта в анализе вредоносного ПО, сможет найти для себя что-то полезное.

В главах 1–3 обсуждаются методики анализа вредоносов, которые смогут использовать даже те, кто никогда не занимался безопасностью или программированием. Главы 4–14 охватывают материал среднего уровня сложности, который позволит вам овладеть инструментами и навыками для анализа большинства вредоносных программ. Тут от вас уже потребуется определенное умение программировать. Главы 15–19 являются более продвинутыми и пригодятся бывалым аналитикам безопасности; в них описываются стратегии и методики анализа самого сложного вредоносного ПО, способного упаковывать свой код или защищаться от декомпиляции и отладки.

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

 

 

 

 

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

 

 

 

 

Введение.   

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w21

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

в книге используются реалистичные образцы вредоносного ПО (их вы можете загрузить на странице www.practicalmalwareanalysis.com/ или www.nostarch.com/malware.htm), чтобы подготовить вас к ситуациям, с которыми вы столкнетесь при анализе насто­ ящих вредоносов.

Изучение на примерах

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

В связи с этим в конце большинства глав находятся лабораторные работы, с помощью которых вы сможете отточить полученные навыки. В них вы столкнетесь с реалистичными вредоносами, созданными для демонстрации самых распространенных сценариев, с которыми вам придется иметь дело. Лабораторные работы помогут вам усвоить подходы, изученные в главе, не перегружая себя дополнительной информацией. В каждой из них рассматривается один или несколько зловредов (которые вы можете загрузить на странице www.practicalmalwareanalysis.com/ или www.nostarch.com/malwa­ re.htm), их подробный анализ, а также некоторые наводящие вопросы и ответы на них.

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

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

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

Структура книги

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

Глава 0 «Анализ вредоносных программ для начинающих» охватывает общие процессы и методологию анализа вредоносов.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w

 

 

to

 

 

22    Введение

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

 

 

 

 

Глава 1 «Основные статические методики» демонстрирует пути получения информации из исполняемого файла, не требующие его запуска.

Глава 2 «Анализ вредоносных программ в виртуальных машинах» научит вас подготавливать виртуальные машины для безопасного выполнения вредоносов.

Глава 3 «Основы динамического анализа» описывает простые, но эффективные методики анализа вредоносных программ путем их запуска.

Глава 4 «Ускоренный курс по ассемблеру для архитектуры x86» содержит введение в язык ассемблера для x86, который послужит основой для использования IDA Pro и выполнения глубокого анализа вредоносов.

Глава 5 «IDA Pro» демонстрирует использование IDA Pro, одного из важнейших инструментов для анализа вредоносных программ. IDA Pro будет активно применяться на страницах этой книги.

Глава 6 «Распознавание конструкций языка C в ассемблере» представляет примеры кода на языке C в ассемблере и помогает в понимании высокоуровневых возможностей ассемблерного кода.

Глава 7 «Анализ вредоносных программ для Windows» охватывает широкий спектр концепций, характерных для Windows и необходимых для понимания работы вредоносного ПО в этой системе.

Глава 8 «Отладка» знакомит читателя с основами отладки и объясняет, как применять отладчик при анализе вредоносов.

Глава 9 «OllyDbg» демонстрирует использование OllyDbg, самого популярного отладчика для анализа вредоносных программ.

Глава 10 «Отладка ядра с помощью WinDbg» рассказывает о том, как использовать отладчик WinDbg для анализа вредоносов и руткитов, работающих на уровне ядра.

Глава 11 «Поведение вредоносных программ» описывает распространенную вредоносную­ функциональность и показывает, как ее распознать в процессе анализа.

Глава 12 «Скрытый запуск вредоносного ПО» объясняет, как анализировать подвид вредоносных программ, которые отличаются особой незаметностью и скрывают свое выполнение внутри другого процесса.

Глава 13 «Кодирование данных» расскажет о том, как вредоносы кодируют свои данные, чтобы усложнить обнаружение результатов своей деятельности в сетевом трафике или в компьютере жертвы.

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

Глава 15 «Антидизассемблирование» рассказывает, как некоторые создатели вредоносного ПО проектируют свои программы так, чтобы их было сложно дизассемблировать, и каким образом эту защиту можно распознать и преодолеть.

 

 

 

 

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

 

 

 

 

Введение.   

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w23

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Глава 16 «Антиотладка» описывает приемы, с помощью которых авторы вредоносов усложняют отладку своего кода, и учит справляться с этими препятствиями.

Глава 17 «Методы противодействия виртуальным машинам» демонстрирует методики противодействия анализу в виртуальной машине и способы их обхода.

Глава 18 «Упаковщики и распаковка» объясняет, как с помощью упаковывания зловреды скрывают свое истинное назначение, и предоставляет пошаговую инструкцию по распаковке программ.

Глава 19 «Анализ кода командной оболочки» расскажет, что такое код командной оболочки, и посоветует несколько приемов и хитростей, которые помогут при его анализе.

Глава 20 «Анализ кода на C++» демонстрирует особенности скомпилированного кода на C++ и объясняет, как анализировать вредоносное ПО, написанное с помощью этого языка.

Глава 21 «Шестидесятичетырехбитные вредоносные программы» объясняет, зачем авторам вредоносов может понадобиться 64-битный код и что вам нужно знать о различиях между x86 и x64.

Приложение А «Важные функции Windows» кратко описывает функции Windows, которые часто используются вредоносным ПО.

Приложение Б «Инструменты для анализа вредоносного ПО» содержит перечень полезных инструментов для анализа вредоносных программ.

Приложение В «Решения лабораторных работ» предоставляет решения для лабораторных, которые приводятся в главах этой книги.

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

Приступим!