Безопасность IoT. Выпуск 2. Умный дом +8
Информационная безопасность, Разработка мобильных приложений, Интернет вещей, Блог компании Перспективный мониторинг
Рекомендация: подборка платных и бесплатных курсов Smm - https://katalog-kursov.ru/
Умный дом представлен широком набором устройством. Во второй части цикла публикаций о безопасности IoT будут рассмотрены умные ТВ приставки, умная кухня, голосовые помощники и освещение. Ссылка на 1 часть.
Безопасность умного дома
Smart TV — Apple TV
Apple TV представляет собой цифровой медиа плеер с широком набором возможностей в рамках отдельной ОС, управляемый телефоном, Siri, пультом и расширяемый программно за счёт сторонних приложений. Apple TV имеет несколько поколений:
- I поколение — Y’07, MacOS X, traditional HDD & USB Port
- II поколение — Y’10, iOS + MicroUSB
- III поколение — Y’12, iOS + MicroUSB
- IV поколение — Y’15, tvOS (iOS) + USB-C & Bluetooth
- V поколение (4K) — Y’17, tvOS (iOS) + Bluetooth, без USB
- 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 2 — Seas0npass jail для версий tvOS 4.3 — tvOS 5.3 (untethered) & tvOS 6.1.2 (tethered).
- Apple TV 4 — Pangu9 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 / 5 — LiberTV 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 с прилагающимся скриптом. Порядок действий следующий:
- Компьютер ожидает слово для пробуждения и следующей командой является запрос о совершении покупки.
- Alexa предлагает результаты и предлагает сделать заказ.
- Компьютер подтверждает заказ и Alexa запрашивает четырёхзначный PIN.
- Выполняется первая попытка подбора PIN.
- Alexa принимает или не принимает PIN.
- Процесс повторяется до нахождения правильного 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