- •От издательства
- •О техническом обозревателе
- •О соавторах
- •Об авторах
- •Вступительное слово
- •Благодарности
- •Предисловие
- •Почему важна защита интернета вещей?
- •Чем защита интернета вещей отличается от традиционной ИТ-защиты?
- •Законы хакинга интернета вещей
- •Заключение
- •Моделирование угроз для интернета вещей
- •Схема моделирования угроз
- •Определение архитектуры
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Использование деревьев атак для обнаружения угроз
- •Распространенные угрозы интернета вещей
- •Атаки с подавлением сигнала
- •Атаки с воспроизведением
- •Атаки со взломом настроек
- •Клонирование узла
- •Заключение
- •Пассивная разведка
- •Физический или аппаратный уровень
- •Периферийные интерфейсы
- •Среда загрузки
- •Блокировки
- •Предотвращение и обнаружение несанкционированного доступа
- •Прошивка
- •Интерфейсы отладки
- •Физическая устойчивость
- •Разведка
- •Атаки на сетевой протокол и службы
- •Тестирование беспроводного протокола
- •Оценка веб-приложений
- •Картирование приложений
- •Элементы управления на стороне клиента
- •Аутентификация
- •Управление сеансом
- •Проверка ввода
- •Логические ошибки
- •Сервер приложений
- •Исследование конфигурации хоста
- •Учетные записи пользователей
- •Привилегии учетной записи
- •Уровни патчей
- •Удаленное обслуживание
- •Управление доступом к файловой системе
- •Шифрование данных
- •Неверная конфигурация сервера
- •Мобильное приложение и облачное тестирование
- •Заключение
- •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 |
|
|
|
|
|
|
|
|
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 |
|
файлы служб), что позволяет упростить атаки с повышением при- вилегий. Действительно ли пользователям, не являющимся админи- страторами, нужен доступ для записи в C:\Program Files? Нужен ли каким-либо пользователям доступ к /root? Однажды мы оценивали встроенное устройство с несколькими сценариями запуска, которые былидоступныдляизменениярядовымипользователями,чтопозво- ляло злоумышленнику использовать локальный доступ для запуска собственных программ с правами root и получения полного контроля над системой.
Шифрование данных
Убедитесь, что конфиденциальные данные зашифрованы. Начните с определения наиболее конфиденциальныхданных,таких как Защи-
щенная медицинская информация (Protected Health Information – PHI) или личная информация (Personally Identifiable Information–PII).PHI
включаетв себялюбые записи о состоянии здоровья,предоставлении или оплате медицинских услуг, тогда как PII (Информация для уста- новленияличности)–этолюбыеданные,которыепотенциальномогут идентифицировать конкретного человека.Убедитесь,что этиданные зашифрованы,проверив конфигурацию системы на наличие крипто- графических примитивов.Если кому-то удалось украстьдиск устрой- ства, сможет ли он прочитать данные? Применяется ли шифрование всего диска, шифрование базы данных или любое другое шифрова- ние, и насколько оно криптографически устойчиво?
Неверная конфигурация сервера
Неверно настроенные службы могут быть небезопасными. Напри- мер, вы все еще можете найти FTP-серверы, на которых по умол- чанию включен гостевой доступ, что позволяет злоумышленникам анонимно подключаться и читать или писать в определенные папки. Мы однажды обнаружили Oracle Enterprise Manager, работающий как SYSTEM и доступный удаленно с учетными данными по умолчанию, который позволял злоумышленникам выполнять команды операци- онной системы, злоупотребляя хранимыми процедурами Java. Эта уязвимость позволила злоумышленникам полностью взломать си- стему через сеть.
Мобильное приложение и облачное тестирование
Проверьте безопасность любого мобильного приложения,связанного с системой IoT.В наши дни разработчики часто создают приложения, работающие под Android и iOS, для чего угодно – даже для кардио- стимуляторов! Подробнее о тестировании безопасности мобильных
Методология тестирования безопасности 85
|
|
|
|
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 |
|
|
|||
приложений можно узнать в главе 14. Кроме того, ознакомьтесь со |
|
|
|
to |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
m |
|||||
|
|
|
w Click |
|
|
|
|
|
|
|||||
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
df-x chan |
|
o |
|
|||||
списком «Топ-10 мобильных приложений» OWASP, документами Mo- |
. |
.c |
|
|||||||||||
|
|
|
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
|
bile Security Testing Guide (Руководство по тестированию безопасности |
|
|
|
|
|
|
|
|
|
|
||||
мобильных приложений) и Mobile Application Security Verification Stan- |
|
|
|
|
|
|
|
|
|
|
||||
dard (Стандарт проверки безопасности |
мобильных приложений). |
|
|
|
|
|
|
|
|
|
|
|
||
В ходе недавней оценки мы обнаружили, что приложение отправ- |
|
|
|
|
|
|
|
|
|
|
||||
ляет персональные данные о состоянии здоровья в облако без ведо- |
|
|
|
|
|
|
|
|
|
|
||||
ма врача или медсестры, работающей с устройством. Это, по сути, не |
|
|
|
|
|
|
|
|
|
|
||||
техническаяуязвимость,носерьезноенарушениеконфиденциально- |
|
|
|
|
|
|
|
|
|
|
||||
сти, о котором должны знать заинтересованные стороны. |
|
|
|
|
|
|
|
|
|
|
|
|||
Также оцените состояние безопасности |
любого облачного компо- |
|
|
|
|
|
|
|
|
|
|
|||
нента, связанного с системой интернета вещей. Изучите взаимодей- |
|
|
|
|
|
|
|
|
|
|
||||
ствиемеждуоблакомикомпонентамиIoT.Обратитеособоевнимание |
|
|
|
|
|
|
|
|
|
|
||||
на серверные API и реализации на облачных платформах, включая, |
|
|
|
|
|
|
|
|
|
|
||||
помимо прочего, AWS, Azure и Google Cloud Platform. Часто встреча- |
|
|
|
|
|
|
|
|
|
|
||||
ются уязвимости, связанные с небезопасными прямыми ссылками на |
|
|
|
|
|
|
|
|
|
|
||||
объекты (IDOR), которые позволяют любому, кто знает правильный |
|
|
|
|
|
|
|
|
|
|
||||
URL, получить доступ к конфиденциальным данным. Например,AWS |
|
|
|
|
|
|
|
|
|
|
||||
иногда позволяет злоумышленнику получить доступ к так называе- |
|
|
|
|
|
|
|
|
|
|
||||
мым корзинам S3, используя URL-адрес, связанный с объектами дан- |
|
|
|
|
|
|
|
|
|
|
||||
ных, которые содержит корзина. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Многие задачи, связанные с тестированием облачных технологий, |
|
|
|
|
|
|
|
|
|
|
||||
будут пересекаться с оценкой безопасности |
мобильных и веб-прило- |
|
|
|
|
|
|
|
|
|
|
жений.Впервомслучаепричинавтом,чтоклиент,использующийэти API,обычно является приложением для Android или iOS.В последнем случае мы принимаем во внимание,что многие облачные компонен- ты в основном являются веб-сервисами. Вы также можете проверить любые подключения к облаку для удаленного обслуживания и под- держки, как упоминалось в разделе «Обзор конфигурации хоста».
Намудалосьвыявитьрядоблачныхсервисовсуязвимостями:жест- ко запрограммированные облачные токены, ключи API, встроенные в мобильные приложения и двоичные файлы микропрограмм,отсут- ствие закрепления сертификатов TLS и уязвимость служб интрасети (таких как неаутентифицированный сервер кеширования Redis или службаметаданных)дляобщественностииз-занеправильнойконфи- гурации.Имейте в виду,что вам необходимо разрешение от владель- цаоблачныхсервисовдлявыполнениялюбоготестированиявоблаке.
Заключение
Некоторые члены нашей команды работали в отделах киберзащи- ты вооруженных сил. Там мы узнали, что проведение комплексной проверки является одним из наиболее важных аспектов информа- ционной безопасности . Важно следовать методике тестирования безопасности , чтобы не упустить некоторые очевидные вещи. Легко пропустить доступные уязвимости просто потому, что они кажутся слишком простыми.
86 Глава 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 |
|
|
|
|
|
|
|
|
||
систем IoT. Мы обсудили пассивнуюdf-x chan |
.c |
|
|||||||||
|
|
. |
|
|
|
|
|
|
|||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
разведку, а затем описали уровни (физический, сетевой, облачный, веб-приложение, хост и мобильное приложение) и разделили их на более мелкие сегменты.
Упомянутые в этой главе уровни редко встречаются в чистом виде; между двумя или более уровнями возможны пересечения.Например, атака разрядки батареи может быть частью оценки физического уровня, поскольку батарея является аппаратным устройством, или частью сетевого уровня, поскольку злоумышленник может провести атаку через протокол беспроводной сети компонента.Список компо- нентов для оценки также не является исчерпывающим, поэтому по мере необходимости мы будем давать ссылки на дополнительные ре- сурсы.
|
|
|
|
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 |
|
|
|
|
ЧАСТЬII
ВЗЛОМ СЕТИ