Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / практический хакинг.pdf
Скачиваний:
23
Добавлен:
19.04.2024
Размер:
31.35 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

 

 

 

 

 

 

BUY

 

 

wClick

to

Сетевойo m

уровень

 

wClick

to

 

 

 

 

o m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

w

 

 

 

 

 

 

.c

 

.

 

 

 

 

g

 

 

.

 

 

 

 

g

 

p

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

df

 

 

n

e

 

 

 

-xcha

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

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

Хотя многие другие проверки, рассматриваемые в этой главе, за- трагивают работу сети, мы отвели для них отдельные разделы. На- пример,оценка веб-приложений в силу ее сложности и многообразия действий заслуживает особого рассмотрения.

Разведка

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

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

Обнаружение хоста

Обнаружение хоста определяет, какие системы работают в сети, пу- тем их проверки с использованием различных методов. Эти методы включают отправку пакетов эхо-запросов протокола управляющих сообщений интернета (ICMP), проведение сканирования TCP/UDP общих портов, прослушивание широковещательного трафика в сети или выполнение запроса ARP с целью проверить, находятся ли хосты водномсегментеL2.(L2относитсякуровню2моделиOSIкомпьютер- ной сети. Это уровень канала передачи данных, который отвечает за передачуданныхмеждуузламиводномсегментесетинафизическом уровне. Ethernet является распространенным протоколом передачи данных.) Для сложных систем IoT, таких как серверы, управляющие камерами наблюдения, которые охватывают множество различных сегментов сети, важно не полагаться ни на один конкретный метод. Используйте различные комбинации, чтобы повысить шансы обхода файрволов или строгих конфигураций виртуальной локальной сети

(Virtual Local Area Network –VLAN).

72  Глава 3

 

 

 

 

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мы

 

 

 

 

 

m

w Click

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

проводимтестнапроникновениевсистемуинтернетавещей,незнаяdf-x chan

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

e

 

IP-адреса тестируемых систем.

Определение версии службы

После того как вы определили действующие хосты, определите все службы прослушивания. Начните со сканирования портов TCP и UDP. Затем выполните комбинацию захвата баннера (подключение к сете- вой службе и считывание исходной информации,которую он отправ- ляет в ответ) и зондирования с помощью инструментов для снятия отпечатков,такихкакAmapилиопции-sV вNmap.Имейтеввиду,что некоторые службы, особенно для медицинских устройств, подверже- ны сбоям даже при простом зондировании. Мы видели, как системы интернета вещей выходили из строя и просто перезагружались, по- сле того как мы сканировали их с помощью функции определения версий Nmap. Этот инструмент сканирования отправляет специаль- но созданные пакеты для получения ответов от определенных типов служб,которыевпротивномслучаенеотправляютникакойинформа- ции,когда вы к ним подключаетесь.По-видимому,те же самые паке- ты могут сделать некоторые чувствительные устройства нестабиль- ными, поскольку устройства не имеют надежной очистки входных данных в их сетевых службах, что приводит к повреждению памяти и последующему сбою.

Идентификация операционной системы

Вам нужно будет определить точную операционную систему, рабо- тающую на каждом из тестируемых хостов, чтобы вы могли позже разработать эксплойты для них. По крайней мере, определите архи- тектуру (например, x86, x64 или ARM). В идеале следует определить точныйуровеньпакетаобновленияоперационнойсистемы(дляWin- dows) и версию ядра (для Linux или систем на основе Unix в целом).

Выможетеопределитьоперационнуюсистемучерезсеть,анализи- руя ответы хоста на специально созданные пакеты TCP,UDP и ICMP,–

процесс, называемый получением цифровых отпечатков. Эти ответы будут незначительно различаться в реализации сетевого стека TCP/ IP в разных операционных системах. Например, некоторые старые системы Windows отвечают на зондирующий пакет FIN открытого порта с пакетом FIN/ACK; другие отвечают RST, а третьи вообще не отвечают. Изучив статистику таких ответов, можно создать профиль для каждой версии операционной системы,а затем использовать эти профили для идентификации. (Для получения дополнительных све-

дений обратитеськ разделу TCIP/IP Fingerprinting Methods Supported by Nmap в документации Nmap.)

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

Методология тестирования безопасности­   73

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

w Click

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

ных IoT-устройств может вызвать сбои.

 

w

 

df-x chan

 

o

 

 

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

Составление топологической карты сети

Топологическая карта моделирует связи между различными система- ми в сети. Этот шаг применяется, когда вам нужно протестировать всюэкосистемуустройствисистем,некоторыеизкоторыхмогутбыть подключены через маршрутизаторы и фаерволы,и не обязательно на том же участке L3. (L3 относится к уровню 3 модели OSI компьютер- ных сетей. Это сетевой уровень; он отвечает за пересылку и маршру- тизациюпакетов.Уровень3вступаетвигру,когдаданныепередаются через маршрутизаторы.) Создание сетевой карты протестированных активов становится полезным для моделирования угроз: это помога- етвамувидеть,какатака,использующаяцепочкууязвимостейнараз- ных хостах, может привести к компрометации критических активов. На рис. 3.4 показана диаграмма топологии высокого уровня.

Облачная база данных

Врач

Облако

IMD

Пациент

Домашняя система мониторинга

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

74  Глава 3

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

На этой абстрактной карте сети показан пациент с имплантиро-

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

ванным медицинским устройством, связывающийся с домашнимdf-x chan

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

e

 

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

Атаки на сетевой протокол и службы

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

Сканирование уязвимостей

Начните с проверки баз данных, таких как Национальная база дан-

ных уязвимостей (National Vulnerability Database – NVD) или VulnDB,

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

Анализ сетевого трафика

На раннем этапе процесса оценки безопасности­ используйте инстру- мент перехвата трафика,такой как Wireshark или tcpdump,–пусть он поработает некоторое время, чтобы вы получили представление об используемых протоколах связи. Если система IoT включает в себя различные взаимодействующие компоненты, такие как камера на- блюдения со своим сервером или инфузионная помпа с электронной медкартой (EHR), сможете захватить любой сетевой трафик между ними. Известные атаки,такие как отравление кеша ARP, обычно уда- ется провести в том же сегменте L3.

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

Методология тестирования безопасности­   75

 

 

 

 

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

 

 

ментов, как tcpdump,даже на устройства с очень ограниченными ап-

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

df-x chan

 

o

 

паратными ресурсами, такие как домашние системы мониторинга

.

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

e

 

кардиостимулятора. Мы продемонстрируем это в главе 6. Подготовив репрезентативную выборку сетевого трафика, можете

приступить к ее анализу. Определите, применяются ли незащищен- ные каналы связи: протоколы открытоготекста; известные уязвимые протоколы, например набор сетевых протоколов (Universal Plug and Play–UPnP);ипроприетарныепротоколы,которыетребуютдальней- шего изучения, или могут быть подвергнуты реверс-инжинирингу (обсуждаются в следующем разделе).

Реверс-инжинирингпротоколов связи

Вы должны произвести реверс-инжиниринг (обратную разработку) любых проприетарных протоколов связи, которые обнаружите. Со- здание новых протоколов – всегда палка о двух концах; некоторым системам действительно требуется собственный стек протоколов для обеспечения их производительности, функциональности или даже безопасности­ . Но разработка и реализация надежного прото- кола обычно весьма сложна. Многие системы интернета вещей, ко- торые мы видели, используют TCP или UDP и созданы на их основе, часто с применением некоторых вариантов XML, JSON или друго- го структурированного языка. В сложных случаях мы сталкивались с проприетарными беспроводными протоколами, о которых мало общедоступной информации,напримертакими,которые содержатся в имплантируемых кардиостимуляторах. В подобных случаях было бы проще изучить протоколы под другим углом. Например, попро- буйте отладить системные службы,которые взаимодействуют с уров- нем драйвера, отвечающего за передачу радиосигнала. Таким обра- зом, вам не обязательно анализировать собственный беспроводной протокол. Вместо этого вы могли бы понять, как он работает,– разо- браться в уровне непосредственно над ним.

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

Эксплойты протокола или службы

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

76  Глава 3