Безопасность IoT. Выпуск 2. Умный дом +8




Умный дом представлен широком набором устройством. Во второй части цикла публикаций о безопасности IoT будут рассмотрены умные ТВ приставки, умная кухня, голосовые помощники и освещение. Ссылка на 1 часть.

Безопасность умного дома


Smart TV — Apple TV



Apple TV представляет собой цифровой медиа плеер с широком набором возможностей в рамках отдельной ОС, управляемый телефоном, Siri, пультом и расширяемый программно за счёт сторонних приложений. Apple TV имеет несколько поколений:

  1. I поколение — Y’07, MacOS X, traditional HDD & USB Port
  2. II поколение — Y’10, iOS + MicroUSB
  3. III поколение — Y’12, iOS + MicroUSB
  4. IV поколение — Y’15, tvOS (iOS) + USB-C & Bluetooth
  5. V поколение (4K) — Y’17, tvOS (iOS) + Bluetooth, без USB
  6. VI поколение — модель 2018 года, без USB

Известные способы получения доступа к Apple TV


К таким способам можно получение доступа модели 1 поколения, представленные в рамках конференции в 2009 году “Hacking the Apple TV and Where Your Forensic Data Lives”, Kevin Estis and Randy Robbins, Def Con 2009 (презентация, видео). Модель этого поколения была сделана на базе Mac OS X и доступ к данным сводился к анализу жесткого диска и особенностям подключения к ТВ в целом.

Доступ к данным Apple TV поколений II-V очень похож по методикам на доступ к другим продуктам Apple и сводится к

  • Анализу резервных копий различными инструментами в т. ч. криминалистическими.
  • Поиск jailbreak для исследования данных вне резервных копий или исследование уже взломанного ТВ.
  • Анализ контента, погодных клиентов, стрим-контента: Netflix, iTunes, NHL, NBA, Vimeo, YouTube и т.п.
  • Доступ к данным приложений с целью извлечения учётных записей и кредитных карт, а также прочей полезной информации.

Утилиты для Jailbreak


В отличие от часов, набор Jailbreak утилит для TV представлен широко, кроме моделей 3-го поколения:

  • Актуальный список обновляется, например, на pangu ресурсе.
  • Apple TV 1 — скрипты, ssh, извлечение диска и прочие способы аналогичные Mac.
  • Apple TV 2Seas0npass jail для версий tvOS 4.3 — tvOS 5.3 (untethered) & tvOS 6.1.2 (tethered).
  • Apple TV 4Pangu9 jail для версий tvOS 9.0 — tvOS 9.0.1, LiberTV jail для версий tvOS 9.1 — tvOS 10.1, GreenG0blin jail для версий tvOS 10.2.2.
  • Apple TV 4 / 5LiberTV jail для версий tvOS 11.0 and 11.1, Electra jail для версий tvOS 11.2 — tvOS 11.3.

Управление паролем


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

USB анализ


Для ранних моделей, кроме последних двух лет, USB-порт хотя и был формально зарезервирован для служебных целей, но использовался для получения базовой информации об устройстве; официально исчез, начиная с модели 5го поколения Apple 5th Gen (4k). Базовая информация включает информацию о времени устройства, логи, доступ к Media папке, которая не является системной (/private/var/mobile/Media), информацию о мак-адресах Wi-Fi, Bluetooth, Ethernet, имени устройства, Serial ID, модели. В качестве инструментов получения данных могут использоваться Ideviceinfo, idevicesyslog.

Резервные копии


Резервные копии дают доступ к следующим данным, которые пересекаются с данными USB анализа:

  • Лог событий.
  • Данные медиа в базе MediaLibrary.sqlitedb.
  • iCloud данные.
  • Wi-Fi сети.
  • Timeline использования устройства.
  • Базы данных покупок в т.ч. контента.



Анализ ТВ с jailbreak’ом


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

Профилирование


Профилирование является одним из защитных механизмов в некоторых последних версиях tvOS 11.3+ и iOS 11.3+. Механизм позволяет указать список или конкретные устройства, которые будут разрешены; после чего взаимодействие будет ограничено определёнными устройствами, и никакое стороннее устройство не сможет подключиться к вашей ТВ-приставке. Механизм можно использовать как в рамках корпоративного управления устройствами Apple, так и в рамках персональных устройств через установки профиля с необходимыми параметрами (при условии использования Mac OS Server)

Amazon TV




Amazon Fire TV является ТВ-приставкой со схожим набором возможностей. Поставляется в двух редакциях — в виде обычной приставки (Fire TV box) и компактного варианта по типу Chromecast (Fire TV Stick). При этом как и многие Android решения позволяет загрузку приложений через механизм ADB-sideload, что позволяет многим пользователям получать контент без платных подписок.

Ввиду последнего факта root-инструменты не получили широкого распространения для FireOS, и доступные инструменты рутования делятся на классические root-инструменты и рутованные прошивки.

Наиболее известным представителем root-инструментов является KingRoot, который позволяет получить доступ в основном для старых версий типа 5.0.5, хотя и не ограничен ими. Особенностью является также то, что большинство инструментов заточено под использование клавиатуры и мыши, а не ТВ-пульта, поэтому важно наличие Bluetooth-соединений для подключения беспроводных клавиатур и мышей.

Из особенностей FireOS стоит отметить sideloading без рута, заблокированный загрузчик (51.1.x.x — не заблокирован, 5.x.x.x — заблокированы, но 5.0.x можно разблокировать, при этом нет информации о более старших версиях), и допустимо выполнять downgrade, чтобы выполнить рут старых версий.

Доступные версии root-инструментов и прошивок:

  • Fire TV 1 — рут для версий 51.1.0.0 — 51.1.6.3, 5.0.3, 5.0.5, нет рута для 5.0.5.1, 5.2.1.0 — 5.2.6.3
  • Fire TV 2 — рут для версий 5.0.0 — 5.2.1.1, нет рута для 5.2.4.0 — 5.2.6.3
  • Fire TV 2 — 5.2.6.6 — pre-rooted ROM
  • Fire TV 3, Fire TV Cube — нет рута или pre-root ROMs
  • Fire TV Stick 1 — рут для версий 5.0.0 — 5.2.1.1 and нет рута для 54.1.2.3 и старших версий, 5.2.1.2 — 5.2.6.3
  • Fire TV Stick 2 — нет программного рута, однако найден способ физического доступа к eMMC накопителю
  • Fire TV Edition television — рут для версий 5.2.5.0 and нет рута для 5.2.5.1 — 5.2.6.3

Официальных инструментов среди криминалистических решений на данный момент неизвестно, однако forensics-методы являются типовыми для Android-решений (использование DD, sideload + ADB, и т.д.)

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

  • Информация браузера — хранится в базе browser.db и включает историю браузера и прочую информацию, сохраняемую Mozilla Firefox.
  • Изображения — хранятся в [root]/data/com.amazon.bueller.photos/files/cmsimages в т.ч. сюда попадают изображения из amazon cloud. Здесь есть особенность: несмотря на оригинальность изображений, изображения на ТВ преобразуются в формате ТВ (в итоге два файла с одинаковым расширением и разными названиями можно найти на устройстве *-full.jpg и *-thumb.jpg).
  • Bluetooth устройства — информация об устройствах, названиях, mac-адресах хранится в [root]/data/com.amazon.device.controllermanager/databases/devices.
  • Логи Amazon — различная информация об активностях устройств с временными метками, которую можно соотносить с активностью пользователя и запуском приложений [root]/data/com.amazon.device.logmanager/files + Log.amazon\main.
  • Amazon appstore — данные, хранимые в com.amazon.venezia.
  • /cache/ = кеш и превью для скачиваемых и просматриваемых приложений + рекомендуемых.
  • /databases/ = sqlite файлы распределённые по папкам.
  • /databases/contentProvider = Таблица «Apps» содержащая названия приложений с указанием на кеш и превью («thumbnailUri»), («previewUri») в папке ../cache.
  • /databases/locker = заказы, вишлист, задачи, приложения, кеш и т.п.
  • /databases/logging = логи событий.

Голосовые помощники (Amazon Echo Dot & Alexa app)


Голосовые помощники Amazon предоставляет в виде физического устройства Echo и программного решения Alexa app. Они предназначаются для одинаковых целей управления умным домом и другими устройствами, которые поддерживают интеграцию с API Amazon для голосовых помощников.



На данный момент аппаратный помощник не имеет способов взаимодействия с ним по кабелю, привычных для Android или других Amazon устройств, как например, FireTablet: взаимодействие по USB ограничивается получением базовой информации через набор MediaTek драйверов и SP Flash Tool инструмента, а загрузчик устройства заблокирован. Amazon позволяет разработчикам использовать свои сертификаты для защиты передаваемых данных (ссылка №1, ссылка №2), однако пользователям не предоставляется никакой возможности устанавливать на устройство дополнительные корневые сертификаты, что исключает возможности MITM. Также устройств защищено от SSL Strip атак. Однако, как и у многих умных вещей, загрузка прошивки выполняется по HTTP без дополнительного шифрования.

GET /obfuscated-otav3-9/…/update-kindle-full_biscuit-XXXX_user_[XXXXXXXXX].bin HTTP/1.1
Host: amzdigitaldownloads.edgesuite.net
Connection: close
User-Agent: AndroidDownloadManager/5.1.1 (Linux; U; Android 5.1.1; AEOBC Build/LVY48F)
ro.build.version.fireos=5.5.0.3
ro.build.version.fireos.sdk=4

Fire OS сделана на основе Android и имеет следующее соответствие

  • ver 5.x — Android 5.1.1 Lollipop. Echo работает версии 5.x
  • ver 6.x — Android 7.1 Nougat

При этом, говоря о программном помощнике, следует отметить широкую поддержку не только Kindle OS, но Android и iOS, а также отсутствие механизмов защиты от MITM. Например, учётные данные можно получить в запросе 'https://www.amazon.com/ap/signin’

  • {"Credentials":{"AccessKeyId":"ASIAXHE6EPSWNVIGFBVP","Expiration":1.538588872E9,"SecretKey":"+8gSx7/H.....U="},"IdentityId":"us-east-1:503e25f6-2302-4dcd-8cb2-64a0e888f76b"}
  • Почта, Пароль из POST запроса ‘https://www.amazon.com/ap/signin’.
  • Токен и информацию об устройстве.
  • Код страны — «RU».

Также в трафике передается информацию о профиле пользователя (или профилях, т.к. поддерживается многопользовательское использование):

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



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

Одним из интересных способов атаки на помощников является подбор пин-кода, который можно выполнять с минимальной задержкой между попытками и без ограничения на количества раз. Этот способ был опубликован в работе в 2017 года Security Analysis of the Amazon Echo с прилагающимся скриптом. Порядок действий следующий:

  1. Компьютер ожидает слово для пробуждения и следующей командой является запрос о совершении покупки.
  2. Alexa предлагает результаты и предлагает сделать заказ.
  3. Компьютер подтверждает заказ и Alexa запрашивает четырёхзначный PIN.
  4. Выполняется первая попытка подбора PIN.
  5. Alexa принимает или не принимает PIN.
  6. Процесс повторяется до нахождения правильного PIN. Каждая итерация на 2 попытки запроса PINs занимает 30 секунд и, исходя из предположения общего пула в 10 000 PIN кодов, требуется 42 часа для подбора верного кода.

Умная кухня / чайники (Redmond)


Redmond является поставщиком умной техники в России. Для работы с набором «умных возможностей» предлагается предложение Ready For Sky, которое выполнено в двух вариантах — приложения для прямого взаимодействия через Bluetooth и приложения-хаба, которое с одной стороны напрямую взаимодействует с устройством, а с другой позволяет управлять техникой через Интернет.



Из локальных данных, которые попадают в резервные копии (R4S.sqlite), найдены только список устройств и моделей, список рецептов и параметров, пользовательские данные без пароля (только username, email), а также устройства пользователя и mac-адреса устройств.



В рамках сетевых данных нет защиты от перехвата данных с сертификатом, поэтому можно получить доступ к версии прошивки и изображению устройства (причём эти данные передаются по http), список рецептов для устройства, список действий

https://content.readyforsky.com/api/program/catalog/id:IN:90,97?locale=en
"id": 90,
"protocol_id": 0,
"value": "BOILING", / HEATING
"value": "40", | "value": "55", | "value": "70", | "value": "85", | "value": "95".

Также учётные данные, токены в т.ч. при запросе на смену пароля

https://content.readyforsky.com/headless/change-password
{"current_password": "1", "plainPassword": "1"}
{ "error": "invalid_grant", "error_description": "The access token provided is invalid."}
{ "access_token": "YjNhYmEwOWM1ZDcwYTk0ODU1ODhmZDZiMDRjNjA5NzUyN2YzM2VhNGUyMjBhYzc0ZjBhYWRhY2IzZmNjMzdiOA",
"expires_in": 86400, "token_type": "bearer", "scope": "r4s", "refresh_token": "YzE4ZGUwN2NkMzdiMDBlYmM5NGQwMGVjYmU4YThkYTVkMGE1ZTc4ODQ2MDRkNjhhZWY4NGIxZjlkODRhZGI3MQ“ }

Пользовательскую информацию (https://content.readyforsky.com/api/user/current) и информацию о внутренней структуре сети (IP адрес), информацию об устройстве (модель, mac-адрес, название хаба)

Client Address | 192.168.1.38:50654 (порт меняется)
Remote Address | content.readyforsky.com/178.62.194.132:443 (фиксированный порт)

https://content.readyforsky.com/api/device/user 
“name": "RK-G200S",
"address": "E7:7F:BC:60:C2:2A",
"name": "Gateway XIAOMI Redmi 4X",
"address": "77d3efcf-f627-402e-bbed-4ee0c8290417",

Освещение


Умное освещение разрабатывалось с целью оптимизации расходов, исходя из автоматизации задач. Оно представлено в статье популярными моделями:

  • Lightify
  • IKEA TRADFRI
  • Philips HUE



Lightify


LIGHTIFY Home это платформа интернет вещей с поддержкой облака и возможностью расширения функциональности. Для работы требуется Lightify-account. Передача данных идёт по протоколу QUIC с шифрованием поверх UDP; для дешифрования QUIC и gQUIC рекомендуется использовать wireshark последних версий 2.9 (v2.9.1rc0-332-ga0b9e8b652, v2.9.1rc0-487-gd486593ce3), а лучше 3.0 и выше, т.к. в различных билдах версии 2.9 были проблемы с поддержкой дешифрования протоколов (а в качестве стабильной версии для скачивания предлагалась по умолчанию версия 2.8.6). Lightify Gateway работает поверх TCP без шифрования (при локальном взаимодействии) и с использованием бинарного протокола, который разобран, и для которого есть поддержка сторонними инструментами. Учётные данные хранятся локально в рамках файлов, попадающих в резервные копии

IKEA TRADFRI


IKEA лампочки также предполагают управление на включение и выключение, но в качестве бонуса идёт смена цветовой гаммы. Новые модели уже подразделяются на оригинальные Ikea и брендированные с Xiaomi. На данный момент не поддерживает удалённое управление. Обновление прошивки традиционно выполняется по http JSON-файлом, который содержит в т.ч. доступные прошивки для всех устройств TRADFRI

http://fw.ota.homesmart.ikea.net/feed/version_info.json

Взаимодействие осуществляется по UDP с использованием DTLS (SSL for UDP) и шифрованием. Pre-shared ключ, используемый для хендшейка при связывании устройств, и является секретным ключом. Для связывания приложения с хабом, пользователю необходимо сосканировать QR код, который содержит “Serial Number” (фактически является MAC адресом) и “Security Code” устройства. Код безопасности хранится локально в рамках keystorage и используется для дальнейшего шифрования по алгоритму AES. Однако в случае, если приложение запущено на старом устройстве Android 4.3 и ниже или была выполнена атака downgrade APK, ключ может быть найден в самом APK в файле “key_file.txt” и будет является захардкоженным “Bar12345Bar12345”. Downgrade-атака является довольно популярной как в рамках криминалистических решений, так и обычных adb-команд по понижению версии apk-приложения, с целью использовать уязвимости предыдущих версий в защите данных. Поддержка и возможность выполнения downgrade-атак зависит от устройства, версии ОС и производителя устройства, а также совместимости баз данных новой и старой версии приложения.



Philips HUE


Philips Hue предлагает широкий спектр умных осветительных приборов для внутреннего и уличного размещения. В 2016 году освещение этого производителя уже было атаковано через ZigBee с расстояния 200 метров ввиду ошибки в протоколе связи. Онлайн взаимодействие между хабом и серверами выполняется в защищённом виде с защитой от перехвата данных. При первом ознакомлении ключ для расширования данных на AES не был найден (есть предположение, что может быть в составе прошивки). Взаимодействие между приложением и сервером работает по SSL с защитой от SSL Strip & MITM атак. Локальное взаимодействие — через HTTP.

PUT
http://192.168.1.38/api/Ds7KfNjjYtC8uN
mU8azGBiOSj-uacXI0q0JKaTs/groups/1/action

как и загрузка прошивки

http://iotworm.eyalro.net/

Советы


Советы по защите умных устройств можно разделить на следующие группы:

Группа «Сетевая безопасность»


  • Маскирование названий. Имена устройства по умолчанию имеют базовые названия, связанные с моделью устройств, производителем, или именем пользователя. По этой причине не рекомендуется давать названия однозначно идентифицирующие пользовательскую информацию.
  • Шифрование. Использование шифрования в домашних сетях и параметров, позволяющих избегать слабого шифрования.
  • Гостевые сети. Предлагается разделение Wi-Fi для использования критичной информации и посетителей/друзей, либо отключение этого режима.
  • Сегментирование сети. Разделение сети на виртуальные сегменты исходя из степени критичности передаваемых данных, например, выделение в одну подсеть ИоТ устройств и хабов, в другую — устройств, которые осуществляют взаимодействие с критичными и банковскими данными, а в третью — тестовых или недоверенных устройств. Если роутер поддерживает режим мульти SSIDs, то этим тоже можно воспользоваться для разделения сетей.
  • Firewall. Firewall является обязательным средством в условиях, когда все больше устройств доступны через интернет и требуется ограничить сценарии их доступности.
  • Ограничение публичного использования. Предлагаю разделять и ограничивать хранение критичных данных на носимых устройствах, которые могут быть утеряны, особенно с учётом того, что в облаке многие данные агрегируются и становятся кросс-доступными. Также для публичных устройств не рекомендуется включать режимы соединений с недоверенными устройствами, а также пользоваться большим количеством приложений, которые не защищают должным образом данные.

Группа «Управление паролями»


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

Группа «Управление ПО»


  • Настройки. Смена настроек по умолчанию и изменение настроек исходя из сценариев использования.
  • Возможности. Отключение или ограничение возможностей, которые не требуются в сценариях. Например, удалённое управление, связывание устройств категории умного дома или авто с Facebook или другими соцсетями.
  • Приложения. Разграничение устройств и приложений с точки зрения критичных данных, вместо смешивания в рамках одного устройстве, а также сокращение количества приложений, которые не защищают хранимые или передаваемые данные.
  • Обновление системы решает проблемы безопасности, однако не всегда новое обновление приносит 100% защиту, как, например, появление возможности делать резервные копии с любым новым паролем для iOS 11+. Также ряд ИоТ-устройств и даже обычных роутеров, чем они старее, тем чаще не предлагают удобных механизмов обновления с точки зрения пользователя, поэтому необходимо самостоятельно отслеживать изменения и обновлять устройства.
  • VPN для защиты сети, сетевых сегментов и отдельных приложений и устройств, особенно в публичных точках.

Группа «Инструменты для взлома»


  • Подозрительные приложения — приложения вне официальных магазинов, мусорные приложения.
  • Взломанные — взломанные приложения «без регистрации и смс» + пиратские, а также инструменты для взлома.
  • Прошивки — прошивки вендоров (хотя известны факты предустановленного вредоносного кода), а также чистые прошивки.

Группа «Облачные и сторонние утилиты и сервисы»


  • IoT облака — анализ отчётов по аудиту облачных решений.
  • Сторонние сервисы для ИоТ — часто решения по автоматизации являются точкой сбора данных в одном месте (в рамках пользовательского аккаунта) и в случае проблем безопасности представляют большой массив критичных пользовательских данных и механизмов управления умными вещами.




К сожалению, не доступен сервер mySQL