Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги хакеры / PRO Вирусы

.pdf
Скачиваний:
14
Добавлен:
19.04.2024
Размер:
1.93 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

 

 

E

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

 

t

 

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

 

i

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

Глава 7. Технологии проникновения

 

 

 

 

 

 

BUY

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

дляe

m

работы с криптоалгоритмами.

 

 

 

 

e

m

 

.

 

 

 

 

Получив управление .

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

p

df

 

 

 

 

 

g

.c

 

 

 

 

 

p

df

 

 

 

g

.c

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

от SecureROM, загрузчик iBoot расшифровывает и запускает

 

 

 

 

 

 

 

 

 

 

ядро операционной системы, после чего загружается образ самой iOS с графическим интерфейсом пользователя. Однако все эти этапы запуска iPhone или iPad выполняются, только если инициализация SecureROM прошла успешно.

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

Как уже упоминалось, режим восстановления яблочного девайса DFU используется, если невозможна штатная загрузка айфона или айпада, и допускает обмен данными между компьютером и устройством через интерфейс USB. Для организации этого обмена в Apple придумали специальный протокол DFU. С его помощью можно залить на «окирпиченный» айфон новую прошивку, восстановить телефон из резервной копии или обновить операционную систему. Протокол DFU загружает с компьютера на яблочный девайс блоки данных с образом прошивки по запросу 0×21, 1. Когда загрузка полностью завершается, запрашивается состояние устройства, после чего соединение по USB разрывается, устройство выходит из режима DFU, перезапускается и пытается загрузить полученный образ прошивки. Это если процесс протекает в штатном режиме. Однако исследователи заметили, что выйти из DFU можно и другими способами, например по запросу 0×21, 4 (DFU abort). В этом случае выполняется форсированное завершение режима восстановления устройства.

При передаче данных протокол DFU использует режим, который носит наименование USB Control Transfer. Соединение инициализируется с использованием установочного пакета (Setup Stage) длиной 8 байт, структура которого показана на иллюстрации 24.

150

 

 

 

 

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

 

 

 

 

 

 

 

Уязвимости

 

 

 

 

 

 

 

 

 

 

 

to

BUY

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Рис. 24. Структура установочного пакета USB Control Transfer

Назначение всех полей этого пакета нам сейчас не принципиально — кроме самого последнего. Если значение wLength ненулевое, сразу за установочным пакетом следует стадия данных (Data Stage), то есть данные пойдут с компьютера на устройство или обратно (направление определяется значением bmRequest Type). Эти данные передаются последовательно фрагментами размером от 8 до 64 байт в зависимости от скорости USB-соеди- нения. Сессия передачи данных завершается стадией проверки статуса транзакции (Status Stage), на которой стороны обмениваются пакетами нулевой длины.

ВUSB-стеке iBoot временный буфер выделяется в момент инициализации USB и пакеты, передаваемые в фазе данных, загружаются в него непосредственно «на входе». Важный момент состоит в том, что USB-стек включается сразу, как только устройство переходит в режим DFU. Выделенный буфер используется для временного хранения информации на стадии данных. После передачи управления указатель на этот буфер (и размер ожидаемых данных) копируется в глобальную переменную, которую USB-стек использует как место назначения для пакетов, поступающих на устройство в фазе данных. Как только устройство выходит из режима DFU, USB-стек снова выключается. Однако глобальная переменная при этом не обнуляется! Таким образом исследователи нащупали классическую уязвимость типа Use-ater-Free (UaF).

Вэтом и кроется ошибка, лежащая в основе checkm8. Если отправить на устройство запрос Setup Stage, инициировать передачу данных, но, не начав эту самую передачу, отправить девайсу запрос DFU abort (0×21, 4) на форсированный выход из DFU, то устройство попытается снова запуститься в режиме DFU и завершить прерванную сессию. При этом состояние памяти останется инициализированным и мы получаем возможность передать на устройство, загрузить в память и выполнить произвольный код по адресу буфера, выделенного до момента предыдущего выхода устройства из DFU. Поскольку вся

151

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

 

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

 

t

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

 

i

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

Глава 7. Технологии проникновения

 

 

 

 

 

BUY

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

e

m

 

.

 

 

 

программа,e

обеспечивающая выделение буфера, работу с кучей .

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

p

df

 

 

 

 

 

g

.c

 

 

 

 

p

df

 

 

 

g

.c

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

(heap) и структурами задач, хранится в SecureROM и исполня-

 

 

 

 

 

 

 

 

 

 

ется на аппаратном уровне, исправить эту ошибку попросту невозможно. Шах и мат!

Примечательно, что на девайсах с 32-разрядным ROM (A7, A10, A10X, A11 и A11X) указанный механизм не работает, поскольку буфер там аллоцируется всякий раз в одном и том же месте при каждой инициализации USB-стека. Тем не менее, обнаруживший данную уязвимость хакер axi0mX нашел способ обойти такую предопределенность с использованием правильно подобранного сценария эксплуатации Use-ater-Free. Для этого он использовал то обстоятельство, что система одновременно может инициализировать несколько USB-передач. Например, в ответ на некоторые запросы устройство не сможет отправить данные, если получатель занят, до тех пор, пока конечная точка (endpoint) не освободится или не будет сброшен USB, то есть не будут устранены условия блокировки. Отправленные в таком состоянии запросы попадают в очередь. После устранения блокировки выполняется обход очереди и все запросы поочередно завершаются. Информация о конечной точке (endpoint) обнуляется, а запросы нулевой длины остаются в куче. Управляя запросами и тайм-аутами, теоретически можно создать такие условия формирования кучи, которые в итоге повлияют на следующее выделение памяти при создании буфера.

Обобщая, можно сказать, что из-за найденной в SecureROM ошибки в механизме создания и уничтожения USB-стека происходит утечка памяти, которая может использоваться для формирования состояния кучи, дающего возможность управлять выделением памяти при размещении буфера. В результате с помощью UaF можно выполнить запись в выделенную память для получения контролируемого косвенного перехода (controlled indirect branch) при выходе из DFU. Это, в свою очередь, позволяет взломать устройство еще до момента загрузки iOS и получить полный контроль над файловой системой.

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

152

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

Эксплойты

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

m

 

 

 

 

e

m

 

.

 

 

 

 

 

 

обрабатываемые ею и загружаемые в память данные, чем могут

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

.c

 

 

 

.

 

 

 

 

g

.c

 

 

 

df

 

 

 

 

 

 

 

 

 

p

df

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

воспользоваться злоумышленники, либо передавать в буфер ин-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

формацию без фактической проверки его границ (атака на пе-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

реполнение буфера). Для закрытия уязвимостей разработчики

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

операционных систем и прикладных программ периодически

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выпускают обновления своих продуктов, также порой называе-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мые в обиходе «заплатками», или «патчами» (от англ. patch —

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«заплатка», «пластырь»). Среди уязвимостей принято особо

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выделять критические уязвимости — с помощью которых име-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ется возможность полностью нарушить работоспособность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

операционной системы или программы, а также уязвимости

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нулевого дня — уязвимости, уже известные злоумышленникам,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для которых производитель ПО или ОС еще не успел выпустить

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

соответствующего обновления, закрывающего данную брешь

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в безопасности.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Злоумышленники

специально выискивают уязвимости

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в операционных системах и прикладных программах с целью

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

распространения вирусов и троянцев. Самый простой метод

 

 

 

 

 

 

 

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

ЭксПлойты

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

(от англ. exploit, «эксплуатировать»). Например, возможность

153

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

 

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

 

t

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

 

i

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

Глава 7. Технологии проникновения

 

 

 

 

 

BUY

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

e

m

 

.

 

 

 

устаревшихe

версий текстового редактора Microsot Word авто- .

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

p

df

 

 

 

 

 

g

.c

 

 

 

 

p

df

 

 

 

g

.c

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

матически запускать встроенные в документы.doc макросы —

 

 

 

 

 

 

 

 

 

 

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

В качестве еще одного примера можно назвать уже давно устаревший метод атаки, при которой злоумышленники рассылали пользователям Outlook письма в формате HTML, «прячущие» в себе скрытый фрейм. Поскольку эта почтовая программа ранних версий не умела правильно обрабатывать такие письма, из скрытого фрейма вызывался вредоносный скрипт, который загружал из Интернета троянца на пользовательскую машину и запускал его на выполнение. Это и был эксплойт — один из самых распространенных, с которыми многие наши соотечественники сталкивались на практике в начале «нулевых». Можно сказать, что притчей во языцех стали и многочисленные эксплойты, реализованные в виде документов в формате Adobe PDF или встраиваемых в веб-страницы интерактивных элементов в формате Adobe Flash — подобные творения злоумышленников появляются с завидной регулярностью, поскольку некоторые (особенно устаревшие) продукты корпорации Adobe с точки зрения информационной безопасности являются лакомой приманкой для злоумышленников.

Эксплойты являются популярным предметом купли-прода- жи на различных подпольных форумах, где общаются представители компьютерного андеграунда. Например, с использованием крайне распространенного у вирусописателей комплекта эксплойтов «Black Hole» («черная дыра») было инфицировано несколько миллионов компьютеров по всему миру. Один из частных случаев применения на практике данной схемы распространения вредоносного ПО выглядит следующим образом. При просмотре некоторых веб-сайтов, не несущих в себе како- го-либо подозрительного контента, внезапно происходит открытие нового окна браузера, в котором загружается веб-страница, имитирующая своим оформлением интерфейс популярной службы «Ответы@Mail.ru». Разумеется, данная веб-страница физически располагается на другом сервере, адрес которого может отдаленно напоминать URL службы mail.ru. Уже одного факта открытия этой странички в браузере достаточно, чтобы

154

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

Эксплойты

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

m

 

 

 

 

e

m

 

.

 

 

 

 

 

антивирусное ПО начало выдавать предупреждения о попыт-

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

df

 

 

 

 

 

 

 

 

 

p

df

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

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

Анализ HTML-кода такой странички показывает, что она содержит несколько скрытых фреймов, в которых запускается скрипт, выполняющий переадресацию пользователя на принадлежащий злоумышленникам сайт. Этот сайт в свою очередь эксплуатирует набор эксплойтов «Black Hole», реализующих загрузку на компьютер жертвы вредоносного ПО с использованием известных уязвимостей браузеров и операционной системы. Какие именно троянские программы попадут при этом на компьютер жертвы, зависит от используемой ею версии браузера, версии операционной системы и наличия на ней установленных обновлений безопасности, наличия или отсутствия в атакуемой системе брандмауэра и современного антивирусного ПО.

Особо следует упомянуть об опасности, которой подвергаются пользователи операционной системы Google Android. По данным на март 2020 года, для различных версий данной мобильной платформы известно в общей сложности 2565 уязвимостей (2563 на уровне компонентов самой операционной системы), притом некоторые из них время от времени эксплуатируются разработчиками вредоносных программ. Однако поскольку сама ОС Android является, по большому счету, встраиваемой и распространяется в виде предустановленной заводской прошивки для смартфонов и планшетов, далеко не все производители этих устройств озабочены регулярным обновлением операционной системы. Скорее дела обстоят прямо наоборот: обновления прошивки выпускаются, в основном, для флагманских продуктов наиболее известных и крупных корпораций, а большинство бюджетных моделей мобильных гаджетов, особенно китайского производства, не обновляется вообще. Соответственно, пользователь не в состоянии сам закрыть подобные уязвимости, поскольку они содержатся в системных компонентах, к которым он в обычных условиях не имеет доступа. Самое забавное, что и антивирусные программы для Android также не в состоянии закрыть такие уязвимости, поскольку они

155

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

 

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

 

t

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

 

i

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

Глава 7. Технологии проникновения

 

 

 

 

 

 

BUY

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

e

m

 

.

 

 

 

неeимеют возможности модифицировать компоненты ОС. Ан- .

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

p

df

 

 

 

 

 

g

.c

 

 

 

 

p

df

 

 

 

g

.c

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

тивирусы могут лишь предупредить пользователя о наличии

 

 

 

 

 

 

 

 

 

 

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

Кроме того, специалистам широко известны случаи, когда вредоносные программы были внесены в Android-прошивку телефона самим его производителем, и смартфоны поступали в продажу уже зараженными. В особенности это касается дешевых устройств (зачастую — имитирующих дорогостоящие модели известных брендов), выпущенных никому не известными небольшими китайскими заводами. Именно таким образом распространялся, например, Android.Becu.1.origin — компонент этого вредоносного приложения, способного скрытно загружать и устанавливать по команде с управляющего сервера различные вредоносные программы, «прятался» в одном из системных каталогов, имел цифровую подпись самой операционной системы и потому обладал на инфицированном устройстве поистине неограниченными полномочиями.

Еще один встроенный в прошивку некоторых дешевых китайских телефонов троянец, Android.Oldboot.1.origin, действовал как буткит, загружаясь еще до момента запуска операционной системы. С его помощью злоумышленники инфицировали более чем 350000 Android-устройств. Нередки случаи заражения при установке на телефоны и планшеты так называемых кастомных (созданных сторонними разработчиками) Android-прошивок: многие из них таят в себе очень неприятные сюрпризы. Таким образом, при выявлении очередной уязвимости в ОС Android устройство в большинстве случаев остается подверженным заражению вредоносными программами, и спасти ситуацию может, по большому счету, только замена такого устройства на более современную модель с более новой версией ОС, в которой уязвимость уже устранена разработчиками.

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

156

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

Эксплойты

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

m

 

 

 

 

e

m

 

.

 

 

 

 

 

 

По принципу своего действия использующий эту уязви-

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

df

 

 

 

 

 

 

 

 

 

p

df

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мость эксплоит — типичный буткит. Основная его задача со-

 

 

 

 

 

 

 

стоит в том, чтобы дать устройству нормально загрузиться, но при этом скомпрометировать каждое звено в цепочке загрузки после того, как отработает BootROM. В нормальном режиме BootROM передает управление загрузчику (iBoot), который загружает в память ядро iOS и передает управление на точку входа. Цель создателей эксплоита — пропатчить ядро до того, как этот процесс завершится.

Во время работы iBoot использует специальный режим (его называют boot trampoline), который ненадолго возвращает процессор в «особое» состояние: кеш сброшен, все регистры установлены в ноль, MMU отключен. Команда хакеров под названием checkra1n, трудившаяся над созданием эксплоита, разработала особый метод размещения в памяти устройства шелл-кода и научилась использовать хуки (перехват вызова функций) при вызове некоторых функций загрузчика, чтобы заставить его выполнить полезную нагрузку. В итоге загрузчик подготавливает ядро и переводит процессор в состояние boot trampoline перед вызовом точки входа. Но вместо нее с помощью хука управление передается на заранее загруженный в память шелл-код. Теперь можно спокойно патчить ядро.

Однако просто пропатчить ядро недостаточно: когда оно загрузится, необходимо сохранить код в пользовательском режиме, чтобы можно было выполнить джейлбрейк. Для этого шелл-код создает в памяти маленький виртуальный диск, чтобы перехватить выполнение команд в режиме EL0. Это позволяет изменить дерево устройств и структуру аргументов загрузки ядра и потом использовать его в качестве корневого устройства. Для реализации этой идеи хакерам даже пришлось написать собственный динамический компоновщик. Для монтирования корневой файловой системы поверх / используется syscall (3). При этом применяется каскадно-объединенное монтирование (union mounting), чтобы случайно не обрушить vnode. После всех этих манипуляций можно запускать произвольный код с идентификатором PID 1, прежде чем будет запущен launchd. Такой код инициализируется ядром iOS перед всеми последующими процессами и является для них родительским. Само собой, он обладает соответствующими системными привилегиями.

157

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

 

 

E

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

d

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

 

 

t

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

 

 

i

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

 

o

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

Глава 7. Технологии проникновения

 

 

 

 

 

 

BUY

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

e

 

m

 

 

 

 

e

m

 

.

 

 

 

 

 

 

 

Нюанс в том, что на данном этапе смонтированная .

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

p

df

 

 

 

 

 

g

.c

 

 

 

 

p

df

 

 

 

g

.c

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

корневая файловая система доступна только для чтения,

 

 

 

 

 

 

 

 

 

 

а для нормальной работы джейлбрейка нужно дропнуть

вФС несколько файлов, чтобы получить доступ к шеллу iOS и позволить пользователю установить менеджер пакетов. То есть необходимо получить доступ к /private/var, для чего сначала инициализировать механизм Data Рrotection, за который отвечает launchd. Чтобы добиться нужного результата, с использованием того же union mounting поверх / usr/libexec/ монтируется еще один образ.dmg с целью переопределить какой-нибудь из системных демонов. В качестве жертвы был выбран sysstatuscheck, поскольку этот демон запускается в различных версиях iOS в нужный момент —

вначале загрузочного процесса, но достаточно поздно, чтобы включить Data Рrotection. Когда задача выполнена,. dmg-образ принудительно размонтируется. Дальше можно позволить launchd продолжить загрузку в штатном режиме. После включения usbmux и загрузки всех необходимых утилит, позволяющих пользователю установить правильный bootstrap в своей корневой файловой системе, можно запускать демон SSH и выполнять джейлбрейк. Дело сделано: айфон успешно взломан!

ЗаГруЗчики

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

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

158

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

Социальная инженерия

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

m

 

 

 

 

e

m

 

.

 

 

 

 

 

творений на компьютеры потенциальных жертв. Именно поэ-

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

df

 

 

 

 

 

 

 

 

 

p

df

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тому данный вектор распространения вредоносных программ

 

 

 

 

 

 

 

является весьма популярным и актуальным.

социальНая иНжеНерия

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

взаблуждение, чтобы заставить выполнить те или иные нужные киберпреступнику действия, например, передать пароли от аккаунта в социальных сетях, сообщить реквизиты банковской карты или запустить на компьютере вредоносную программу. Так, от одного из друзей в социальной сети (аккаунт которого был ранее взломан) пользователю может прийти личное сообщение примерно следующего характера: «Ты с ума сошел, выкладывать такое видео? Я в шоке!» — далее в послании присутствует ссылка якобы на видеоролик, выставляющий получателя

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

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

159