Всем привет! Меня зовут Артём Семенов, я занимаюсь пентестами в компании RTM Group.

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

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

Готовимся к тестированию

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

Изучение характеристик и документации IoT устройства

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

OWASP (Открытый проект по безопасности веб-приложений) предлагает "Топ-10 уязвимостей IoT", список ключевых областей, которым следует уделить особое внимание при анализе безопасности IoT-устройств. Вот некоторые из них:

  1. Недостатки в процессе аутентификации: если устройство не имеет эффективных механизмов аутентификации и авторизации, оно становится уязвимым для различных видов атак, включая перехват данных и выполнение несанкционированных действий.

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

Даже один уязвимый компонент может позволить атакующему обойти все установленные меры безопасности. В начале 2019 года обнаружены проблемы безопасности в P2P-утилите iLnkP2P, которая была установлена на более чем 2 миллионах устройств, таких как IP-камеры, радионяни, умные дверные звонки и видеорегистраторы. Одна из уязвимостей (CVE-2019-11219) позволяла злоумышленнику идентифицировать устройство, а другая уязвимость аутентификации в iLnkP2P (CVE-2019-11220) позволяла перехватывать трафик в открытом виде, включая видеопотоки и пароли.

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

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

  2. Отсутствие обновлений и патчей безопасности: Отсутствие возможности обновления устройства само по себе создает уязвимость в области безопасности. Оно означает, что устройство остается уязвимым в течение неопределенного времени.

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

  1. Неконтролируемый доступ к сети: если устройство не ограничивает сетевые запросы, оно может стать жертвой DDoS-атак или других типов сетевых атак.

Эти и другие уязвимости, определенные в OWASP Top 10 IoT, должны стать центром внимания при исследовании характеристик и документации IoT-устройств. Понимание этих угроз и применение соответствующих мер безопасности значительно снизит риск взлома IoT- устройств и злоупотребления ими.

Подготовка тестового окружения

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

Здесь следует упомянуть о дистрибутиве от Affinity, который предоставляет специализированное окружение для тестирования IoT. Этот инструмент, известный своим широким функционалом для проведения аудита безопасности, идеально подходит для создания изолированного и безопасного тестового окружения. В состав дистрибутива входят следующие элементы:

  1. Arduino - платформа открытого типа, которая используется для создания интерактивных электронных объектов и устройств;

  2. Baudrate -утилита для определения скорости передачи данных в системах связи;

  3. BDAddr - инструмент для работы с адресами Bluetooth-устройств;

  4. BetterCap - мощный, гибкий и портативный инструмент для проведения атак типа "человек посередине" и анализа трафика;

  5. Binwalk - утилита для анализа, разбора и извлечения данных из прошивок;

  6. Create_AP - утилита для создания точек доступа Wi-Fi;

  7. Cutter - графический интерфейс пользователя для Radare2, инструмента для обратной разработки;

  8. DspectrumGUI - инструмент для анализа и визуализации спектров;

  9. Dump1090 - программа, которая может обрабатывать сигналы ADS-B/Mode-S, часто используемые в авиационной отрасли;

  10. Firmadyne - система для эмуляции и анализа встроенного программного обеспечения;

  11. Firmware Analysis Toolkit - набор инструментов для анализа прошивок;

  12. Firmware-Mod-Kit (FMK) - инструменты для (де)компиляции прошивок;

  13. GHIDRA - платформа для обратной разработки, созданная NSA;

  14. GNURadio - бесплатная платформа для реализации программно-определяемых радио;

  15. GQRX - ПО для SDR радиоприемников, поддерживающее множество типов аппаратных устройств;

  16. GR-GSM - набор инструментов GNURadio для сканирования GSM;

  17. GR-Paint - программное обеспечение для "рисования" на спектрограмме;

  18. HackRF Tools - набор инструментов для работы с SDR-устройствами HackRF;

  19. Inspectrum - инструмент для визуализации и анализа данных из радиосигналов;

    и другие.

Все это делает дистрибутив от Affinity практически идеальным для проведения всеобъемлющего тестирования безопасности устройств IoT.

Начинаем исследование устройства

Основательный анализ открытых портов и служб на устройстве IoT: на начальной стадии тестирования важно оценить сетевую карту устройства IoT, идентифицируя открытые порты и работающие службы. Этот шаг можно автоматизировать с помощью мощного инструмента, такого как Nmap. Воспользуйтесь следующей командой для полного сканирования портов:

nmap -sS -sU -T4 -A -v <target_IP>

Здесь -sS и -sU выполняют сканирование TCP и UDP портов соответственно, -T4 увеличивает скорость сканирования, -A запускает обнаружение ОС и версий служб, а -v обеспечивает подробный вывод.

Активный поиск уязвимостей и анализ данных – к нему стоит переходить, получив полную картину открытых портов и служб на IOT-устройстве. Применяйте специализированные инструменты, такие как RouterSploit или Firmware Analysis Toolkit, которые автоматизируют идентификацию потенциальных уязвимостей.

Пример команды для запуска Firmware Analysis Toolkit может выглядеть так:

./extractor.py -b <brand> -sql 127.0.0.1 -np -nk firmware.bin output_dir

Здесь -b указывает бренд прошивки, -sql указывает на сервер MySQL, -np и -nk пропускают проверку патчей и ключей соответственно.

Не забывайте про важность ручного исследования: часто автоматизированные инструменты могут пропустить уязвимости, которые обнаруживаются вручную. Возможно, вам придется изучить аутентификационные процессы, обработку данных и протоколы связи. Ради этого применяйте инструменты, например, Radare2 или GHIDRA, для анализа и декомпиляции исполняемого кода.

GHIDRA можно использовать для декомпиляции исполняемых файлов следующим образом:

./ghidraRun

После запуска программы вы можете открыть файл через меню "File" -> "Open File" и затем провести анализ. Это даст вам глубокое понимание устройства и его потенциальных уязвимостей.

Попытка проникновения и эксплуатация уязвимостей

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

  1. Составление стратегии атаки. Исходя из выявленных уязвимостей, вам потребуется разработать план или сценарий атаки, соответствующий конкретной ситуации. Варианты могут быть различны, начиная от взлома аутентификационных данных до атак типа "man in the middle" или эксплуатации уязвимостей в программном обеспечении;

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

bettercap -X

Дальше, мы используем модули, реализованные в bettercap, для взаимодействия с iot устройством. Рассмотрим на примере взаимодействия с BLE:

ble.recon on - для перечисления доступных нам устройств, используя bluetooth.
ble.enum 04:52:de:ad:be:ef - если знаем MAC адрес устройства, то можем использовать эту команду для перечисления сервисов и характеристик устройства.
ble.write 04:52:de:ad:be:ef 234bfbd5e3b34536a3fe723620d4b78d ffffffffffffffff - для перезаписи значения UUID на ffffffffffffffff

Важно отслеживать процесс внедрения, чтобы избежать нежелательных последствий;

  1. Ручное тестирование. Некоторые уязвимости могут быть слишком сложными или уникальными для автоматической эксплуатации. В таких случаях может потребоваться экспертное вмешательство. Инструменты, такие как Qiling или radare2, могут быть использованы для более детального анализа и эксплуатации уязвимостей. В случае с radare2, основная команда для анализа файла выглядит так:

radare2 [file]

  1. Оценка результата атаки: после проведения атаки важно проанализировать ее результаты. Это позволит определить, насколько успешным было проникновение и какой уровень доступа или контроля был получен;

  2. Документирование и анализ. Завершающим этапом является документирование всего процесса внедрения, включая используемые инструменты, методы и результаты атаки. Этот анализ может быть использован в будущем для улучшения безопасности устройства и разработки более эффективных стратегий защиты.

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

Заключение

В настоящее время безопасности IoT должно уделяться самое пристальное внимание. Атаки на устройства этого типа участились в связи с пандемией, и сообщения о них можно встретить все чаще. Защищать IoT-устройства необходимо еще и потому, что они предоставляют прямой доступ к приложениям и данным. Именно поэтому для обеспечения их безопасности нужно применять комплексные меры. Они включают в себя, в частности, использование передовых протоколов и технологий, проведение тестирования на проникновения для того, чтобы гарантировать безопасность IoT-сети и предотвратить возможные нарушения безопасности со стороны злоумышленников.

Комментарии (3)


  1. Tipo_4ek
    17.08.2023 19:15

    Но что делать тому большому пласту населения с умными устройствами, особенно с учетом отсутствия обновлений / саппорта. Как минимизировать их риски?

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


  1. hexmister
    17.08.2023 19:15
    +6

    Рассказ автора оставляет смешанные чувства. Кажется, что логика в повествовании есть, но суть похожа на "рекламный буклет". Техники, мягко говоря, устарели или устаревают. Пробегусь только по инструментам, которые предлагает автор. Binwalk, Firmadyne, Firmware Analysis Toolkit последний раз обновлялись пару лет назад, а FMK умер лет пять как назад. Умозаключение "GHIDRA можно использовать для декомпиляции исполняемых файлов следующим образом: ./ghidraRun ...можете открыть файл через меню "File" -> "Open File" и затем провести анализ. Это даст вам глубокое понимание устройства и его потенциальных уязвимостей." говорит о том, что или автор поленился описать как и какой файл нужно открыть (исполняемую часть прошивки, ядро ОС, внутренние программы встроенной ОС и др.) или не понимает, что к чему.


    1. olku
      17.08.2023 19:15
      +1

      Автор, это ваш рабочий алгоритм или больше самореклама?