November 26, 2018

Поиск и взлом уязвимых устройств интернета вещей. Ч.1.

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

Поехали:

Статья написана в исследовательских целях. Вся информация носит ознакомительный характер. Ни автор статьи, ни администрация не несет ответственности за неправомерное использование полученных из статьи знаний.

Миллиарды потенциальных целей

По данным Statista.com, объем рынка интернета вещей в 2017 году превысил миллиард долларов. Общее число подключенных к интернету устройств оценивается на текущий момент в 23 с лишним миллиарда с перспективой увеличения до 30 миллиардов к 2020 году. После этого аналитическое агентство IHS Markit прогнозирует нелинейный рост до 125 миллиардов устройств к 2030 году. Такой объем производства вполне возможен, но уже сейчас ударные темпы выпуска IoT-устройств достигаются преимущественно за счет самых дешевых «китайских» девайсов, при разработке которых о безопасности думали в последнюю очередь.

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

  • использование неизменяемых (hardcoded) и скрытых сервисных учетных данных;
  • применение одинаковых либо легко предсказуемых ключей и ПИН-кодов;
  • отсутствие проверки прав доступа при обращении к известной странице настроек (например, /settings.asp в обход /index.htm) или прямого вызова изображений и видеопотока IP-камеры (вроде /axis-cgi/jpg/image.cgi);
  • некорректная обработка получаемых данных, вызывающая переполнение буфера. Как следствие, возможно выполнение произвольного кода при получении злонамеренно составленного TCP-пакета;
  • принудительное переключение сервера на использование старых версий протоколов по запросу клиентского устройства (я старая глупая железка, давай со мной по-простому);
  • десятки других типовых ошибок и намеренных ослаблений безопасности ради удобства конфигурирования неспециалистами (в том числе — удаленного и без надлежащей авторизации).

Как искать уязвимые IoT-девайсы

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

Кто-то пляшет от прошивки (точнее, тех диких ошибок, которые были обнаружены при ее анализе методами реверс-инжиниринга). Другие в качестве отличительного признака берут название производителя (его можно определить по первым трем октетам MAC-адреса) или версию ОС (большинство устройств сообщают ее в сетевом отклике, в том числе и роботам-паукам поисковиков).

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

1. Обращаемся к базе уязвимостей — например, MITRE или Rapid7 и находим интересующие нас бреши у определенных IoT-девайсов. Наиболее гарантированными в плане использования будут уязвимости следующих типов:

  • обнаруженные после того, как производитель прекратил поддержку устройства и выпуск патчей;
  • обнаруженные недавно (для которых еще нет исправлений, либо большинство пользователей не успели исправления применить);
  • архитектурные баги, плохо исправляемые софтверными патчами и редко устраняемые до конца — вроде уязвимости Spectre, существующей в нескольких разновидностях и актуальной до сих пор;
  • влияющие сразу на несколько моделей и даже типов устройств (например, из-за общего компонента веб-интерфейса или уязвимости самого протокола коммуникации).

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

3. Составляем продвинутые поисковые запросы для Google (Google Dorks) и специализированных поисковиков по интернету вещей:

  • Shodan,
  • Censys,
  • ZoomEye.

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

Поиск IoT-девайсов легко ускорить за счет скриптов. Например, RussianOtterMult-API Network Scanner или GasMasK. Для их использования (как и для применения собственных скриптов) понадобится регистрация в Shodan и Censys.

4. Проверяем цели из поисковой выдачи и (при необходимости) просеиваем ее дополнительными запросами. Такая необходимость возникает практически всегда, поэтому для парсинга результатов часто используют скрипты. Например, вот такой от thesubtlety.

5. Подбираем инструментарий для подключения к найденным IoT-девайсам. В большинстве случаев будет достаточно браузера. Для управления камерами и DVR иногда потребуется поставить старую версию Java RE и специфический видеокодек. Часто бывают нужны Telnet- и SSH-клиенты. Реже потребуется софт от разработчика, например Cisco Smart Install Client.

6. В зависимости от того, как далеко вы намерены зайти, ограничиваемся сбором статистики или выполняем тестовое подключение и пробуем менять настройки. Последнее не рекомендуется делать, в том числе и потому, что вы с легкостью можете нарваться на ловушку (honeypot). Интерполу тоже надо поднимать показатели раскрываемости преступлений в сфере ИБ, а не слишком осторожный исследователь — идеальная цель.

Приоритетные мишени

Нам было интересно узнать, что чаще всего становится мишенью в мире IoT. Комментарии на подобный темат мы обнаружили в свободной прессе. Специалист по защите информационных систем компании GS-Labs Егор «Xarlan» Литвинов рассказывает в своём интервью одному из изданий:

— Егор, как вы считаете, какие девайсы из интернета вещей сегодня имеют самые дырявые прошивки?
— Что значит «самая дырявая прошивка»? Та, в которой больше всего багов, или та, где есть всего один баг, но его эксплуатация может привести к фатальным последствиям? Наверное, тут поможет список OWASP Top 10 IoT Vulnerabilities. Он хоть и датирован 2014 годом, но смежный доклад про небезопасность мобильных приложений, звучавший на PHDays 2018, показывает, что очень не зря существует OWASP TOP 10.
— Можете привести какие-нибудь недавние примеры?
— Из свежих примеров дырявости IoT — DNS rebinding — «сетевое устройство привязывают к вредоносному DNS-серверу и превращают его в точку входа в инфраструктуру жертвы». Ну и как результат — «интерактивная колонка Google Home позволяет злоумышленнику манипулировать ее настройками, сканировать Wi-Fi-сети, запускать установленные приложения и воспроизводить мультимедийный контент».
Или недавняя новость о том, как злоумышленники пытаются проэксплуатировать критическую уязвимость в маршрутизаторах D-Link, чтобы те в свою очередь пополнили ряды ботнета Satori.
— А какие IoT-девайсы взламывают чаще всего?
— Чаще всего взламывают те IoT-девайсы, которые наиболее распространены. Ярким примером может служить ботнет Mirai, который «ломал» IP-камеры и DVR-регистраторы. В каком-то смысле, думаю, он уже вошел в учебники истории по ИБ. Кстати, с IP-камерами связана и другая серьезная уязвимость. При определенном раскладе плохие парни могут получить полный контроль над IP-камерами фирмы Axis.
— Что еще взламывают а кроме камер?
— Чтобы немного разбавить тему взлома IP-камер и роутеров, стоит сказать пару слов об атаке Z-Shave. Хорошим парням удалось откатить протокол шифрования S2 до уязвимой версии S0 (в случае протокола S0 использовался сложнейший ключ шифрования в виде шестнадцати нулей) и далее эксплуатировать баги в протоколе S0. В результате чего «белые шляпы» сумели открыть смарт-замок Yale.
Но это как раз пример нетривиальной атаки. В общем случае сначала будут взламываться те устройства, которые используют «стандартные» протоколы передачи данных — Ethernet, Wi-Fi, Bluetooth. Уже потом под удар могут попасть гаджеты, работающие на различных RF-протоколах — ZigBee, LoRa, Z-Wave и других.
— Есть какие-то иные принципы выбора целей, кроме типа устройства?
— Другим критерием того, какие устройства наиболее вероятно станут мишенью, является применение однотипных ОС. Думаю, ни для кого не секрет, что в embedded зачастую используются облегченные вариации Linux. Потом уже идут другие встроенные ОС: FreeRTOS, ChibiOS, embOS и масса других RTOS. Вот и получается, что ботнеты (Mirai, Satori, Persirai и подобные) сначала будут атаковать то, что подключается по Ethernet/Wi-Fi и работает под Linux, и только потом в их прицел, возможно, попадут менее популярные варианты.

На сегодня всё, киберсталкеры. Во второй части данной статьи мы с вами разберём предметно некоторые свежие уязвимости в интернете вещей. Зачем нам это нужно? Да прост. Кому-то может и пригодиться. Особенно, если учесть, что живём мы с вами всё-таки в 21-ом веке.