- •От издательства
- •О техническом обозревателе
- •О соавторах
- •Об авторах
- •Вступительное слово
- •Благодарности
- •Предисловие
- •Почему важна защита интернета вещей?
- •Чем защита интернета вещей отличается от традиционной ИТ-защиты?
- •Законы хакинга интернета вещей
- •Заключение
- •Моделирование угроз для интернета вещей
- •Схема моделирования угроз
- •Определение архитектуры
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Использование деревьев атак для обнаружения угроз
- •Распространенные угрозы интернета вещей
- •Атаки с подавлением сигнала
- •Атаки с воспроизведением
- •Атаки со взломом настроек
- •Клонирование узла
- •Заключение
- •Пассивная разведка
- •Физический или аппаратный уровень
- •Периферийные интерфейсы
- •Среда загрузки
- •Блокировки
- •Предотвращение и обнаружение несанкционированного доступа
- •Прошивка
- •Интерфейсы отладки
- •Физическая устойчивость
- •Разведка
- •Атаки на сетевой протокол и службы
- •Тестирование беспроводного протокола
- •Оценка веб-приложений
- •Картирование приложений
- •Элементы управления на стороне клиента
- •Аутентификация
- •Управление сеансом
- •Проверка ввода
- •Логические ошибки
- •Сервер приложений
- •Исследование конфигурации хоста
- •Учетные записи пользователей
- •Привилегии учетной записи
- •Уровни патчей
- •Удаленное обслуживание
- •Управление доступом к файловой системе
- •Шифрование данных
- •Неверная конфигурация сервера
- •Мобильное приложение и облачное тестирование
- •Заключение
- •4. Оценка сети
- •Переход в сеть IoT
- •VLAN и сетевые коммутаторы
- •Спуфинг коммутатора
- •Двойное тегирование
- •Имитация устройств VoIP
- •Идентификация устройств IoT в сети
- •Обнаружение паролей службами снятия отпечатков
- •Атаки MQTT
- •Настройка тестовой среды
- •Написание модуля MQTT Authentication-Cracking в Ncrack
- •Тестирование модуля Ncrack на соответствие MQTT
- •Заключение
- •5. Анализ сетевых протоколов
- •Проверка сетевых протоколов
- •Сбор информации
- •Анализ
- •Создание прототипов и разработка инструментов
- •Работа с Lua
- •Общие сведения о протоколе DICOM
- •Генерация трафика DICOM
- •Включение Lua в Wireshark
- •Определение диссектора
- •Определение основной функции диссектора
- •Завершение диссектора
- •Создание диссектора C-ECHO
- •Начальная загрузка данных функции диссектора
- •Анализ полей переменной длины
- •Тестирование диссектора
- •Разработка сканера служб DICOM для механизма сценариев Nmap
- •Написание библиотеки сценариев Nmap для DICOM
- •Коды и константы DICOM
- •Написание функций создания и уничтожения сокетов
- •Создание заголовков пакетов DICOM
- •Написание запросов контекстов сообщений A-ASSOCIATE
- •Чтение аргументов скрипта в движке сценариев Nmap
- •Определение структуры запроса A-ASSOCIATE
- •Анализ ответов A-ASSOCIATE
- •Создание окончательного сценария
- •Заключение
- •6. Использование сети с нулевой конфигурацией
- •Использование UPnP
- •Стек UPnP
- •Распространенные уязвимости UPnP
- •Злоупотребление UPnP через интерфейсы WAN
- •Другие атаки UPnP
- •Использование mDNS и DNS-SD
- •Как работает mDNS
- •Как работает DNS-SD
- •Проведение разведки с помощью mDNS и DNS-SD
- •Злоупотребление на этапе проверки mDNS
- •Атаки «человек посередине» на mDNS и DNS-SD
- •Использование WS-Discovery
- •Как работает WS-Discovery
- •Подделка камер в вашей сети
- •Создание атак WS-Discovery
- •Заключение
- •UART
- •Аппаратные средства для связи с UART
- •Как найти порты UART
- •Определение скорости передачи UART
- •JTAG и SWD
- •JTAG
- •Как работает SWD
- •Аппаратные средства для взаимодействия с JTAG и SWD
- •Идентификация контактов JTAG
- •Взлом устройства с помощью UART и SWD
- •Целевое устройство STM32F103C8T6 (Black Pill)
- •Настройка среды отладки
- •Кодирование целевой программы на Arduino
- •Отладка целевого устройства
- •Заключение
- •Как работает SPI
- •Как работает I2C
- •Настройка архитектуры шины I2C типа «контроллер–периферия»
- •Заключение
- •9. Взлом прошивки
- •Прошивка и операционные системы
- •Получение доступа к микропрограмме
- •Взлом маршрутизатора Wi-Fi
- •Извлечение файловой системы
- •Статический анализ содержимого файловой системы
- •Эмуляция прошивки
- •Динамический анализ
- •Внедрение бэкдора в прошивку
- •Нацеливание на механизмы обновления микропрограмм
- •Компиляция и установка
- •Код клиента
- •Запуск службы обновления
- •Уязвимости служб обновления микропрограмм
- •Заключение
- •10. Радио ближнего действия: взлом rFID
- •Радиочастотные диапазоны
- •Пассивные и активные технологии RFID
- •Структура меток RFID
- •Низкочастотные метки RFID
- •Высокочастотные RFID-метки
- •Настройка Proxmark3
- •Обновление Proxmark3
- •Клонирование низкочастотных меток
- •Клонирование высокочастотных меток
- •Имитация RFID-метки
- •Изменение содержимого RFID-меток
- •Команды RAW для небрендированных или некоммерческих RFID-тегов
- •Подслушивание обмена данными между меткой и считывателем
- •Извлечение ключа сектора из перехваченного трафика
- •Атака путем подделки RFID
- •Автоматизация RFID-атак с помощью механизма скриптов Proxmark3
- •Пользовательские сценарии использования RFID-фаззинга
- •Заключение
- •11. Bluetooth Low Energy (BLE)
- •Как работает BLE
- •Необходимое оборудование BLE
- •BlueZ
- •Настройка интерфейсов BLE
- •Обнаружение устройств и перечисление характеристик
- •GATTTool
- •Bettercap
- •Взлом BLE
- •Настройка BLE CTF Infinity
- •Приступаем к работе
- •Заключение
- •12. Радиоканалы средней дальности: взлом Wi-Fi
- •Как работает Wi-Fi
- •Атаки Wi-Fi на беспроводные клиенты
- •Деаутентификация и атаки «отказ в обслуживании»
- •Атаки на Wi-Fi путем подключения
- •Wi-Fi Direct
- •Атаки на точки доступа Wi-Fi
- •Взлом WPA/WPA2
- •Взлом WPA/WPA2 Enterprise для сбора учетных данных
- •Методология тестирования
- •Заключение
- •13. Радио дальнего действия: LPWAN
- •Захват трафика LoRa
- •Настройка платы разработки Heltec LoRa 32
- •Настройка LoStik
- •Превращаем USB-устройство CatWAN в сниффер LoRa
- •Декодирование протокола LoRaWAN
- •Формат пакета LoRaWAN
- •Присоединение к сетям LoRaWAN
- •Атаки на LoRaWAN
- •Атаки с заменой битов
- •Генерация ключей и управление ими
- •Атаки воспроизведения
- •Подслушивание
- •Подмена ACK
- •Атаки, специфичные для приложений
- •Заключение
- •14. Взлом мобильных приложений
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Защита данных и зашифрованная файловая система
- •Подписи приложений
- •Аутентификация пользователя
- •Управление изолированными аппаратными компонентами и ключами
- •Проверенная и безопасная загрузка
- •Анализ приложений iOS
- •Подготовка среды тестирования
- •Статический анализ
- •Динамический анализ
- •Атаки путем инъекции
- •Хранилище связки ключей
- •Реверс-инжиниринг двоичного кода
- •Перехват и изучение сетевого трафика
- •Анализ приложений Android
- •Подготовка тестовой среды
- •Извлечение файла APK
- •Статический анализ
- •Обратная конвертация двоичных исполняемых файлов
- •Динамический анализ
- •Перехват и анализ сетевого трафика
- •Утечки по побочным каналам
- •Заключение
- •15. Взлом умного дома
- •Физический доступ в здание
- •Клонирование RFID-метки умного дверного замка
- •Глушение беспроводной сигнализации
- •Воспроизведение потока с IP-камеры
- •Общие сведения о протоколах потоковой передачи
- •Анализ сетевого трафика IP-камеры
- •Извлечение видеопотока
- •Атака на умную беговую дорожку
- •Перехват управления интеллектуальной беговой дорожкой на базе Android
- •Заключение
- •Инструменты для взлома интернета вещей
- •Предметный указатель
|
|
|
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