- •От издательства
- •О техническом обозревателе
- •О соавторах
- •Об авторах
- •Вступительное слово
- •Благодарности
- •Предисловие
- •Почему важна защита интернета вещей?
- •Чем защита интернета вещей отличается от традиционной ИТ-защиты?
- •Законы хакинга интернета вещей
- •Заключение
- •Моделирование угроз для интернета вещей
- •Схема моделирования угроз
- •Определение архитектуры
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Использование деревьев атак для обнаружения угроз
- •Распространенные угрозы интернета вещей
- •Атаки с подавлением сигнала
- •Атаки с воспроизведением
- •Атаки со взломом настроек
- •Клонирование узла
- •Заключение
- •Пассивная разведка
- •Физический или аппаратный уровень
- •Периферийные интерфейсы
- •Среда загрузки
- •Блокировки
- •Предотвращение и обнаружение несанкционированного доступа
- •Прошивка
- •Интерфейсы отладки
- •Физическая устойчивость
- •Разведка
- •Атаки на сетевой протокол и службы
- •Тестирование беспроводного протокола
- •Оценка веб-приложений
- •Картирование приложений
- •Элементы управления на стороне клиента
- •Аутентификация
- •Управление сеансом
- •Проверка ввода
- •Логические ошибки
- •Сервер приложений
- •Исследование конфигурации хоста
- •Учетные записи пользователей
- •Привилегии учетной записи
- •Уровни патчей
- •Удаленное обслуживание
- •Управление доступом к файловой системе
- •Шифрование данных
- •Неверная конфигурация сервера
- •Мобильное приложение и облачное тестирование
- •Заключение
- •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 |
|
мочия владельца системы после того, как вы успешно атаковали ееd?f-x chan |
.c |
|
||||||||
|
. |
|
|
|
|
|
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
e |
|
Убедитесь, что вы получили надежные ответы на эти вопросы.
Тестирование беспроводного протокола
Мы посвящаем целый раздел этой главытестированию беспроводно- го протокола, учитывая распространенность протоколов радиосвязи короткого, среднего и дальнего действия в экосистемах интернета вещей. Этот уровень может совпадать с тем, что в других публика- циях называется «уровень восприятия» (Perception Layer),и включает
всебя такие технологии распознавания, как радиочастотная иденти-
фикация (Radio-Frequency Identification, RFID), Глобальная система позиционирования (Global Positioning System,GPS) и стандартрадио-
связи в ближнем поле (Near-Field Communication, NFC).
Процесс анализа этих технологий перекрывается с действиями на сетевом уровне, описанными выше (см. подразделы «Анализ се- тевого трафика» и «Протоколы реверс-инжиниринга»). Для анализа и атаки беспроводных протоколов обычно требуется специальное оборудование, в том числе: определенные чипсеты Wi-Fi с возмож- ностью вводаданных,такие какAtheros; модули USB-Bluetooth,такие как Ubertooth; инструменты программно определяемой радиосвязи
(Software-Defined Radio, SDR),такие как HackRF или LimeSDR.
На этом этапе вы испробуете определенные атаки, относящиеся к конкретному используемому беспроводному протоколу. Напри- мер, если какие-либо компоненты IoT используют Wi-Fi, протести- руйте атаки, основанные на подмене пользователя или уязвимостях протокола WEP (Wired Equivalent Privacy) (он будет выделен красным флажком, потому что его легко взломать) и небезопасных реализа- циях защищенного доступа Wi-Fi (WPA/WPA2) со слабыми учетными данными. WPA3 скоро может попасть в эту категорию небезопасных протоколов. Мы рассмотрим наиболее важные атаки на эти прото- колы в главах 10–13. Для пользовательских протоколов вы должны проверить отсутствие аутентификации (включая отсутствие взаим- ной аутентификации) и отсутствие шифрования и проверки целост- ности – то, что, к сожалению, мы наблюдаем довольно часто, даже
вкритически важных устройствах инфраструктуры.
Оценка веб-приложений
Веб-приложения, в том числе используемые в системах IoT, предо- ставляют одну из самых простых точек входа в сеть, потому что они часто доступны извне и имеют множество уязвимостей. Оценка веб-приложений – обширная тема, и существует огромное количе- ство ресурсов,которые помогут вам в этом.Итак,мы сосредоточимся на методах, которые применяются конкретно к веб-приложениям, используемым в устройствах интернета вещей.На самом деле они не
Методология тестирования безопасности 77
|
|
|
|
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 |
|
df-x chan |
|
o |
|
|||||
ложения,ноте,которые обнаруживаются на встроенных устройствах, |
. |
.c |
|
||||||||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
часто, как известно, не имеют жизненных циклов безопасной разра- ботки программного обеспечения, что приводит к очевидным и из- вестным уязвимостям. Ресурсы для тестирования веб-приложений включаютThe Web Application Hacker’s Handbook и все проекты OWASP,
в число которых входит список топ-10 рисков,Application Security Ver- ification Standard (ASVS) и OWASP Testing Guide.
Картирование приложений
Чтобы выполнить картирование веб-приложения,начните с изучения видимого,скрытого и содержимого веб-сайта по умолчанию.Опреде- литеточкивводаданныхискрытыеполяиперечислитевсепараметры. Автоматизированные инструменты для сканирования (программное обеспечение для интеллектуального анализа данных, которое скани- рует веб-сайты по одной странице за раз) могут помочь ускорить этот процесс, но вам также следует всегда просматривать сайты вручную. Можете использоватьперехватывающий проксидляпассивногоскани- рования (мониторинг веб-контента при просмотре вручную), а также
вкачестве активного сканирования (активного сканирования сайта сиспользованием ранее обнаруженных URL-адресов иAJAX-запросов, встроенных в JavaScript,в качестве отправных точек).
Вы можете обнаружить скрытый контент или конечные точки веб-приложений, которые обычно недоступны по видимым гиперс- сылкам, пробуя ввести в адресной строке распространенные имена каталогов и имена/расширения файлов. Обратите внимание, что это может быть довольно заметная деятельность, ведь все эти запросы будут генерировать большой сетевой трафик. Например, средний списокраспространенныхназванийкаталоговиименфайловдляин- струмента веб-сканирования DirBuster содержит220 560 записей.Это означает,что,если вы его используете,он отправит объекту не менее 220 560 HTTP-запросов в надежде обнаружить скрытые URL-адреса. Но не пренебрегайте этим шагом, особенно если оценка проводится
вконтролируемой среде.Мы порой обнаруживаем оченьинтересные, часто неаутентифицированные конечные точки веб-приложений на устройствах интернета вещей. Например, однажды мы обнаружили скрытый URL-адрес популярной модели камеры наблюдения, кото- рый позволял делать снимки без аутентификации, что, по сути, обе- спечивало злоумышленнику удаленный контроль того, на что была направлена камера!
Также важно определить точки входа, где веб-приложение мо- жет получать пользовательские данные. Большинство уязвимостей
ввеб-приложениях возникает из-за того, что приложение получает ненадежные входныеданные отнеаутентифицированных удаленных участников. Вы можете использовать эти точки входа позже для фаз- зинга (автоматический способ предоставления неверных случайных данных в качестве входных данных) и тестировать внедрение.
78 Глава 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 |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
t |
|
||
|
P |
D |
|
|
|
|
|
|
|
|
o |
|
|
|
|
|
|
NOW! |
r |
||||||
|
|
|
|
|
|
BUY |
|
|
||||
Элементы управления на стороне клиента |
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
w |
|
|
|
|
|
|
|
|
|
m |
||
w Click |
|
|
|
|
|
|
o |
|||||
|
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
.c |
|
||
|
|
|
p |
df |
|
|
|
|
e |
|
||
|
|
|
|
|
|
g |
|
|
|
|||
|
|
|
|
|
|
n |
|
|
|
|
||
|
|
|
|
|
-x cha |
|
|
|
|
|
Вы можете использовать элементы управления на стороне клиента (client-side controls),т. е. все, что обрабатывается браузером,локаль- ные или мобильные приложения. Элементы управления на сторо- не клиента могут представлять собой скрытые поля, файлы cookie
и Java-апплеты.Другие примеры –объекты JavaScript,AJAX,ASP.NET ViewState, ActiveX, Flash или Silverlight. Например, мы видели мно-
жество веб приложений на встроенных устройствах, выполняющих аутентификацию пользователя на стороне клиента, которую зло- умышленник всегда может обойти, поскольку пользователь может контролировать все, что происходит на стороне клиента. На устрой- ствах использовались файлы JavaScript или .jar, .swf и .xap, которые злоумышленники могли декомпилировать и изменять для выполне- ния своих задач.
Аутентификация
Ищите уязвимости в механизме аутентификации приложения. Об- щеизвестно, что огромное количество систем интернета вещей по- ставляется с небезопасными предварительно настроенными учет- ными данными и что пользователи часто оставляют эти учетные данные без изменений. Эти учетные данные можно узнать, обра- тившись к руководствам или другим интернет-ресурсам или просто методом подбора. При тестировании систем интернета вещей нам приходилось встречать пары логин/пароль начиная с популярных admin/admin и вплоть до a/a (да, имя пользователя «a», пароль «a»!), а иной раз аутентификация и вовсе не использовалась. Чтобы взло- мать пароли, отличные от заданных по умолчанию, выполните ата- ки с подбором по словарю на все конечные точки аутентификации. В таких атаках задействованы автоматизированные инструменты для подбора пароля с использованием наиболее распространенных словарных слов или списков паролей, полученных в результате уте- чек. Почти каждый составленный нами отчет об оценке безопас ности включаетв себя «отсутствие защиты отперебора»,встроенные устройстваинтернетавещейчастоимеютограниченныеаппаратные ресурсы и могут не сохранять состояние,как это должны делать при- ложения SaaS.
Крометого,проверьтенебезопаснуюпередачуучетныхданных(ко- торая обычно включаетдоступ по протоколу HTTP по умолчанию,без перенаправления на HTTPS); проверьте все функции «забыл пароль» и «запомнить меня»; выполните перечисление имен пользователей (угадать и перечислить допустимых пользователей); ищите условия открытия при отказе, при которых не удается выполнить аутентифи- кацию, но из-за некоторого исключения приложение предоставляет открытый доступ.
Методология тестирования безопасности 79
|
|
|
|
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 |
|
|
|||
Управление сеансом |
w Click |
to |
|
|
|
|
m |
||||
|
|
|
|
|
|||||||
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
-x cha |
|
|
|
|
Сеансы веб-приложения – это последовательности HTTP-транзакций, связанных с одним пользователем. Управление сеансом или процесс отслеживания этих HTTP-транзакций может стать сложным, поэто- му проверьте эти процессы на наличие недостатков. Проверьте ис- пользование предсказуемых токенов, небезопасную передачу токе- нов и раскрытие токенов в журналах. Вы также можете обнаружить недостаточное время сеанса, уязвимости фиксации сеанса и атаки
(Cross-site Request Forgery – CSRF), когда вы можете манипулировать аутентифицированными пользователями, чтобы выполнять нежела- тельные действия.
Контрольдоступа и авторизация
Затем убедитесь,что сайтдолжным образом применяет контрольдо-
ступа. Разделение на уровне пользователя, или практика предоставле-
ния пользователям доступа с разными привилегиями к различным данным или функциям, является общей особенностью устройств ин- тернета вещей. Другое название этой тактики – управление доступом на основе ролей (role-based access control, RBAC). Особенно часто она используется в сложных медицинских системах. Например, в систе- ме доступа к электронным медкартам для врача предусмотрен более привилегированный доступ,чем для медсестры, которой может быть назначенотолько право на чтение.Точнотак же системы камер будут иметькак минимум учетную записьадминистратора,которомудове- рено право изменять настройки конфигурации, и менее привилеги- рованнуюучетнуюзапись–толькодляпросмотра,позволяющуюопе- раторам устройства просматривать канал камеры.Но длятого,чтобы эта схема работала, должны использоваться надлежащие средства контролядоступа.Мы видели системы,в которых можно было запро- сить привилегированное действие из непривилегированной учетной записи, просто зная правильный URL-адрес или HTTP-запрос. Если система поддерживает несколько учетных записей, проверьте все границы привилегий. Например, может ли гостевая учетная запись получить доступ к функциям веб-приложения, которые должен ис- пользоватьтолькоадминистратор?Можетлигостеваяучетнаязапись получить доступ к API администратора, управляемому другой струк- турой авторизации?
Проверка ввода
Убедитесь, что приложение правильно проверяет и очищает вводи- мые пользователем данные для всех данных точки входа. Это дей- ствие имеет решающее значение, поскольку наиболее популярным типом уязвимостей веб-приложений является ввод, при котором пользователи могут отправить свой собственный код в приложение под видом пользовательских данных (см. «Топ-10 рисков в сфере ин-
80 Глава 3