В своей прошлой статье я рассказывал, как съездил на DefCamp. Сегодняшняя статья — первая часть публикации о моих исследованиях в области безопасности интернета вещей, которые легли в основу выступления на конференции.

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

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

Плохая новость — многие из этих новых устройств являются мишенями для атак. При этом вопросы безопасности или же решались задним числом или не решались вообще из-за отсутствия поддержки старых устройств. Подобные устройства представляют серьёзный риск для инфраструктуры (домашней или предприятия), если ими не управлять должным образом. Поэтому ниже рассмотрим, ряд вопросов, связанных с безопасностью умных вещей, доступными методами и инструментами взлома, а также особенностями обработки и защиты данных. Целью исследований является не выполнение или описание методик «взлома под ключ», а обзор подходов, которые в тех или иных условиях могут привести к доступу к данным, а также обзор ситуаций, где разработчики по какой-то причине решили не защищать пользовательские данные. Материалы представлены обзорно (полную информацию можно найти на официальном сайте.

Носимая техника — умные часы


Apple Watch




MITM


Часы взаимодействуют по Bluetooth, или, если этот канал не доступен, по Wi-Fi для связи с телефоном и серверами Apple. Передача сетевых данных между облаком и приложениями телефона/часами происходит в зашифрованном виде с TLS1.2 и защитой от MITM атак и SSL Pinning. При этом часы, в отличие от телефонов, не имеют интерфейса установки пользовательских корневых SSL-сертификатов. Незашифрованных потоков передаваемых данных не было выявлено.

Обход экрана блокировки


Использование пасскода на умных часах зачастую является необязательным пунктом, однако может быть включено. Apple позволяет сбросить пасскод различными способами, однако только один позволяет условно избежать удаления данных.

В основе последнего способа лежит механизм перепривязки часов к устройству с восстановлением данных со сменой пасскода. Такой сценарий используется всякий раз, когда предполагается отдавать часы в ремонт или продавать, т.к. требуется отключить режим «Activation Lock». Его смысл заключается в том, что удаление привязки часов к телефону приводит к удалению данных с часов, однако телефон при этом создаёт резервную копию данных часов, чтобы в последующем восстановить данных на часах. А так как при резервной копии не сохраняются лишь банковские карты, пасскод и Bluetooth привязка часов, то доступ к данным можно получить и также задать новый пасскод.

Для выполнения способа необходимо выполнить следующие шаги:

  • Часы и телефон должны находиться рядом; приложение Apple Watch должно быть запущено на телефоне.
  • На вкладке «My Watch tab» выбираются необходимые часы и действие подтверждается «Unpair Apple Watch».
  • Далее требуется ввести пароль от учётной записи Apple (в случае если пароль забыт, предлагается его сбросить).
  • Финальное подтверждение действия.

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

Jailbreak


Jailbreak для iOS платформы всегда служил способом повышения привилегий для различных операционных систем (iOS, tvOS, и watchOS). Несмотря на популярность, для Apple часов существует довольно небольшое количество известных jailbreak’ов (ниже перечислены доступные):

Jailbreaks for USB


Jail & Bluetooth Connection over SSH


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


Так как часы Apple преимущественно работают как вспомогательное устройство, то приложения, установленные на часах, являются виджетами, и вся информация хранится в приложениях на телефоне. Тем не менее, приложения часов всё же хранят определённую часть самостоятельно, что позволяет рассматривать варианты доступа к данным через резервные копии (при взаимодействии с часами, к уже существующим на PC/Mac, в облаке). При этом надо учитывать, что в продукции Apple многие данные являются кросс-платформенными, и синхронизируются между всеми устройствами.

Для доступа к данным подходят как криминалистические решения, так и обычные приложения для работы с backup-файлами (в случае облачной резервной копии или сценариев обхода доступа — только криминалистические решения или близкие к ним); стоит отметить, что многие приложения на данный момент могут не иметь доступа для просмотра содержимого бэкап файлов, поэтому одним из возможных инструментов является iphone backup extractor (в базовой версии подписки позволяет получить доступ к данным часов, а полной и бизнес версии ещё имеет поддержку 2FA при доступе к данным).

Необходимая информация об устройстве размещается в файле /mobile/Library/DeviceRegistry.state/properties.bin и покрывает следующие параметры:

  • Данные часов, включая имя, производителя, модель, ОС, GUID.
  • Серийный номер, UDID, Wi-Fi MAC-адрес, SEID (Secure Element ID), Bluetooth MAC-адрес.

Список установленных приложений можно найти в двух местах:

  • В файле «com.apple.Carousel», размещённому по пути /mobile/Library/DeviceRegistry/GUID/NanoPreferencesSync/NanoDomains/com.apple.Carousel
  • В подпапках папки «/mobile/Library/DeviceRegistry/GUID»

В зависимости от установленных приложений, доступ, например, можно получить к адресной книге, которая синхронизируется с телефоном и является кроссплатформенным типом данным (данные размещаются в файле /mobile/Library/DeviceRegistry/GUID/AddressBook/) или к хранилищу passbook, который хранит банковские карты или карты программ лояльности, различные билеты passbook (данные размещаются в файле /mobile/Library/DeviceRegistry/GUID/NanoPasses/nanopasses.sqlite3). База данных последнего в таблице «Pass table» содержит данные в трёх частях (картинка ниже для удобства просмотра взята с телефона, а не часов):

  • Unique_ID
  • Type_ID (билет, карта лояльности и т.д.)
  • Закодированное содержимое отдельного «pass» (в формате value/data)



Также часы Apple предоставляют доступ к данным приложения Apple Health и наполняют данные этого приложения из разных источников, в т.ч. числе тех, что пользователь вносит вручную. Как правило, данные этого приложения зашифрованы, поэтому попадают в резервную копию только если для неё устанавливается пароль (то есть backup-файлы шифруются). Однако, у этого приложения есть опция экспорта данных в открытом виде без шифрования (в zip-архиве). При экспорте данных важно учитывать, что архив может быть экспортирован в любое приложение: apple files, облачные хранилища, IM и т.д., где нет дополнительного шифрования. Приложение отдельно разобрано ниже в секции Apple Health.

Android Watches


Samsung Gear



LG Watch



Android часы выпускаются различными производителями (Asus, Samsung, LG и т.д.). В отличие от Apple часов чаще предлагают комплектацию с 3G-4G модулем для установки симкарты, а не eSIM, в остальном функциональные возможности не отличаются.

Среди подходов к доступу к данным выделяют следующие:

  • Криминалистическое исследование (физическое, логическое и сетевое)
  • Обход экрана блокировки
  • Применение Root инструментов для анализа данных

В статье будет рассмотрен только первый вариант в рамках копирования образов, разделов и рут инструментов. Логическое исследование (в т. ч. в рамках резервных копий) не отличается от известных способов. Сетевой вариант исследования набирает популярность и не представлен широко даже в рамках готовых криминалистических решений. Он заключается в воспроизводстве механизмов взаимодействия для обмена данными через Wi-Fi, Bluetooth, в т.ч. MITM-методов, но требует рассмотрения в рамках отдельной статьи.

Копирование образа устройства


При анализе устройств на базе Android подход не меняется, отличаются лишь инструменты (пример инструмента будет приведён в разделе для Samsung/LG). Для копирования содержимого устройства может использоваться побитовое копирование устройства целиком или отдельных разделов. Для этих целей использует режим разработчика. Простейший вариант — это использование команд adb shell и adb pull для доступа к данным. В зависимости от производителя, модели устройства и версии ОС могут использоваться наборы инструментов ADB, SDB или MTK. Чаще всего для анализа копируется пользовательский раздел «/dev/block/mmcblk0p12/data», однако при необходимости можно скопировать и другие разделы:

  • DD if = /dev/block/mmcblk0p12/data of = /storage/extSdCard/data.dd
  • DD if = /dev/block/mmcblk0p8/cache of = /storage/extSdCard/cache.dd
  • DD if = /dev/block/mmcblk0p3/efs of = /storage/extSdCard/efs.dd
  • DD if = /dev/block/mmcblk0p09/system of = /storage/extSdCard/system.dd

Обход экрана блокировки


Для Wear OS использование пинкодов не является обязательным, поэтому часто часы не защищены пинкодом. Для Android часов известно больше способов обхода блокировки, нежели для Apple.

  • Account-based password management (Доступ через Google-аккаунт).
  • Gesture.key and settings.db (Взаимодействие с файлами блокировки).
  • ADB keys (Ключи разработчика).

Account-based password management

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

Gesture.key and settings.db

ADB или его аналоги является частью инструментов разработки и работают независимо от них. Эти утилиты можно использовать для модификации системных файлов и их удаления: файла gesture.key отвечающего за блокировку пинкодом и файла settings.db отвечающего за разблокировку заблокированного устройства. В обоих случаях требуется физический доступ к устройству; для первого файла набор команд на удаление «adb.exe shell; cd /data/system; rm gesture.key» и активированный режим отладки ‘Debugging mode’ либо же выполнение команд через кастомный recovery типа ClockworkMod или Team Win Recovery Project (TWRP).

Аналогично для settings.key следует выполнить команду «update system set value =0», что приведёт к замене значений параметров lock_pattern_autolock и lockscreen.lockedoutpermenently и разблокировке устройства без знания пинкода.

Также стоит отметить, что заблокированный загрузчик и отсутствие инструментов для разблокировки не позволяют получить доступ к данным, в остальных случаях, особенно если уже установлен кастомный recovery, сложностей с доступом не возникает.

ADB keys

Довольно часто использование устройств для различных сценариев приводит к появлению небезопасных настроек и состояний устройства. В частности, при использовании устройства для разработки у него принудительно будет включен режим USB debugging, а на PC, синхронизованных с устройствами, будут размещены ключи разработки adbkey и adbkey.pub, размещённые в каталоге users//.android/. Соответственно, сам режим позволяет устанавливать стороннее ПО, обходить блокировку экрана, а ключи могут использоваться для переноса состояния «синхронизации» на новое место.

Wear OS и Root


Для Android часов используется Android OS адаптированная под физические нужды устройств. В линейках часов Asus Zenwatch, Huawei Watch, LG Watch и многих других используется Android OS, в случае Samsung Watches — Tizen OS.

Android Wear начинается с 4.4W1, 4.4W2, 1.0 и заканчивается 2.9 версией, что соответствует обычному Android, начиная с 4.4. 4.4, 5.0.1 версии и заканчивая 7.1.1/8.0.0 (Feb 2018). Новые версии после смены бренда на Wear OS начинаются с 1.0 (Android 7.1.1/8.0.0 — Mar 2018 и по версию 2.1 (7.1.1/9.0.0 — Sept 2018) и далее. Набор инструментов для рута широко представлен для Android Wear по версию 2.0.

Root:


Recovery — Для поиска нужных версий можно воспользоваться поиском:

  • TWRP
  • Для версии 5.1.1 подходит twrp-3.1.0-0.img
  • Для версии 6.0.1 и Wear 2.0 подходит twrp-3.0.0-0.img
  • Для Samsung Gear & LG Watch подходят версии 2.8.4 и выше

На примере Samsung Gear Watch & LG Watch


Опуская технические параметры часов Samsung Gear, можно рассмотреть вариант исследования устройств в рамках физического криминалистического исследования. Часы не поддерживают Wi-Fi connection, в наличии есть только Bluetooth и USB соединение, а также опциональная защита пинкодом. В случае Samsung требуется SDB (smart development bridge), который является частью Tizen-SDK. В случае LG требуется традиционный набор инструмент для Android — ADB.

Извлечение данных можно описать в три этапа.

Этап №1. Получение Root для Samsung

Для получения необходимо найти сооветствующий кастомный образ, универсальную утилиту для устройств Samsung — Odin 3.0, перевести устройство в режим разработки (включив SDB), перевести в режим «download mode» и выполнить команду «Sdb shell, sdb root»

Этап №1. Получение Root для LG

Перед получением рут-доступа, необходимо включить ADB Debug mode. После этого воспользоваться LG Watch Restore Tools, перезагрузиться в загрузчик и обновить образ:

  • adb reboot-bootloader
  • fastboot OEM unlock
  • adb push SuperSU.zip /sdcard/download
  • adb reboot-bootloader
  • fastboot boot twrp.img
  • Установить SuperSu.zip, и дождаться перезагрузки

Этап №2. Получение образа устройства

Среди различных инструментов разработки Android есть популярный Toybox, который позволяет делать образ устройства для дальнейшего извлечения и изучения данных. Пакет Toybox размещается на внешнем накопителе или папке download основной памяти. Изменяются права доступа для исполнения toybox, выполняется поиск подходящих разделов для копирования (путем выполнения команд «cd/dev/block/platform/msm_sdcc.1; ls -al by-name ). Как правило, копируется пользовательский раздел (userdata) размещённый в /dev/block/mmcblk0p21. После этого с использованием toybox, dd и netcat копируется образ соответствующего раздела:

  • adb push toybox /sdcard/download
  • adb shell; su
  • mv /sdcard/download/toybox /dev/
  • chown root:root toybox;
  • chmod 755 toybox
  • cd /dev/block/platform/msm_sdcc; ls -al by-name
  • /* image partition with dd and pipe to netcat, -L puts netcat in listening mode */
  • dd if=/dev/block/mmcblk0p21 | ./toybox nc -L
  • /* Port number being listened to on the watch displayed for user */
  • 44477 /* port displayed*/
  • adb forward tcp:44867 tcp:44867
  • /* Send request to watch on port number 44867 and send it to image file */
  • nc 127.0.0.1 44867 > Samsung.IMG



Этап №3. Извлечение данных

Наиболее полезные данные, которые самостоятельно хранятся в самих часах в случае Samsung, размещаются в следующих базах данных:

  • Messages — apps.com.samsung.message.data.dbspace/msg-consumer-server.db
  • Health/Fitness Data — apps.com.samsung.shealth/shealth.db
  • Email — apps.com.samsung.wemail.data.dbspace/wemail.db
  • Contacts/Address book — dbspace/contacts-svc.db

В случае LG часов —— в следующих база данных:

  • Events/Notifications — data.com.android.providers.calendar.databases/calendar.db
  • Contacts/Address book — data.com.android.providers.contacts.databases/contacts2.db
  • Health/Fitness Data — data.com.google.android.apps.fitness.databases/pedometer.db

Фитнес-трекер — Xiaomi Band




Фитнес-трекер является вспомогательным устройством, и все данные собираются в приложении Mi-Fit app, которое всегда взаимодействует по шифрованному соединению с TLS1.2 с серверами Amazon AWS, преимущественно расположенными в EU. Ряд запросов без привязки к действиям идёт к US-серверам. В случае Mi Fit шифрование не в полной мере предотвращает MITM-атаками ввиду отсутствия SSL Pinning и возможности установить корневой сертификат на устройство. В этом случае возникает доступ ко всем данным, передаваемым по сети. Локально в папке приложения содержится детальный лог событий и фитнес-показатели пользователя с которых эти данные были получены в рамках пользовательских сценариев, например

Запрос на сервер api-mifit.huawei.com

GET /users/-/sports?startDate=YYYY-MM-DD&endDate=YYYY-MM-DD&sportCategory=run&timezone=GMT-3%3A00 HTTP/1.1
Content-Type: application/json

Ответ

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 716

{
  "items" : [ {
    "trackId" : "1496744715",
    "startTime" : 1496744715,
    "endTime" : 1496748315,
    "sportTime" : 1800,
    "distance" : 3600,
    "calories" : 3.5,
    "averagePace" : 2.0,
    "averageStepFrequency" : 39,
    "averageStrideLength" : 68,
    "timestamp" : 1496744715,
    "averageHeartRate" : 90,
    "altitudeAscend" : 20,
    "altitudeDescend" : 10,
    "secondHalfStartTime" : 600,
    "strokeCount" : 30,
    "foreHandCount" : 15,
    "backHandCount" : 15,
    "serveCount" : 30,
    "type" : "OUTDOOR_RUN"
  } ]
}

Фитнес-трекер — Huawei Honor Band




Huawei Honor Band, аналогично Xiaomi Band, не является самостоятельным устройством, и все данные собираются приложением, установленным на телефоне. Приложение также полагается на TLS-соединение, однако, в отличие от Xiaomi, имеет малое количество соединений. Все они достаточно защищены, в т.ч. от MITM-атак и SSL Strip-атак.

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

  • Данные устройства и логи располагаются в папке /hms/oclog/crash, /hms/oclog/log.
  • Актуальные и последние значения трекера покрывают информацию о данных сна, пробуждения, дистанциях (прохождения, пробега, и т.д.), пульсе и калориях. Располагаются в файлах /Documents/*.archiver.
  • Прошивка включает в себя полностью все данные, путь размещения, URL откуда скачивается, размер, лог изменений, флаг принудительного обновления и сам файл прошивки, который скачивается по HTTP в рамках DFU secure update, за исключением самых ранних версий.
  • Гео данные включают информацию о местоположении с привязкой по времени и разделению по дням и типам активностей, а также данные скорости и направления движения, если такие предполагаются. Размещаются также в папке /*.archiver.
  • Пользовательские данные включают базовую информацию — картинка профиля, имя, дата рождения, рост, вес, пол, возраст, и общие данные шагов и пробега. Также размещаются в папке /*.archiver.
  • Данные аккаунта включают UDID, токен, UserID, SessionID, Mac адрес устройства и ключи синхронизации Bluetooth Keys.



Фитнес приложения — Road Bike, Mountain bike




В качестве примера фитнес-приложений были рассмотрены RoadBike & MountainBike PRO версий, которые по реализации ничем не отличаются между собой.

Данные приложения отслеживают пользовательские достижения, скоростные показатели, прохождения дистанции и имеют возможность интеграции с некоторыми физическими трекерами, а также не предполагают интернет-активности. Локально хранят все записываемые данные:

  • GPS данные — геолокация, дистанция, высота и перепад высоты, временные метки локальные и с привязкой к gps значениям.
  • Сессионные данные — временные метки, дистанция, продолжительность трека, средние и минимаксные показатели, перепад высоты сердечные показатели (при наличии специального трекера).
  • Данные о скорости — временные метки, продолжительность движения, дистанция (при наличии доп. датчиков можно корректировать правильный расчёт скорости).
  • Пользовательские данные — учётные данные (в т. ч. пароль в открытом виде), рост, вес, пол, имя и дата рождения.

Все данные размещаются в database.sqlite3 и дополнительно в базе MapOpenCycleMap.SQLite размещаются данные о треке, включая геолоакцию и снимок геолокации и маршрута.





Умная медицина


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



Большинство приложений для здоровья делятся на две категории: приложения-источники (измерение показателей здоровья человека) и приложения агрегаторы данных (собирают данные в одном месте из разных источников).

Apple Health


Приложении Apple собираются данные о здоровье с разных программных и аппаратных источников (iPhone, Apple Watch и сторонних приложений), поддерживающих протокол HealthKit.

Данные разделяются по 4 категориям: Activity, Sleep, Mindfulness, и Nutrition (сводная активность, показатели сна и пробуждения, неопределённая категория для iOS 11-12, дневник питания). Если используется passcode, Touch ID, или Face ID, все данные в этом приложении шифруются как на устройстве, так и в облаке, в т. ч. при передаче данных по сети. Отдельно про сравнение защищённости данных Apple Health & Google Fit можно почитать в статье Elcomsoft.



Глобально все данные Apple Health можно разделить на две категории с точки зрения безопасности: автоматически сохраняемые приложением из разных источников и экспортируемые данные.

В первом случае большинство данных находятся в зашифрованном виде и определённая часть в открытом виде, с точки зрения Apple не критичная, чтобы шифровать её.

Во втором случае все данные будут в открытом виде в формате CDA (Clinical Document Architecture) — типовом для обмена медицинскими данными; а в более привычном виде это архив с xml файлами. При этом следует отметить, что защита данных со стороны Apple не говорит о том, что данные в приложениях-источниках тоже защищены (можно увидеть на примерах выше с трекерами и ниже с весами). Также это не гарантирует, что приложения не воспользуются данными от других приложений-источников через Apple Healthkit и не сохранят данные в своём облаке.

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

Последнее приводит к тому, что изначальная идеи песочницы данных с появлением приложений типа Apple Health работает неочевидно для пользователя, что привело Apple к необходимости создания ещё одной песочницы для медицинских данных. Например, приложение запросило что-то на чтение и запись и в этом ничего криминального нет, хотя в основном большинство приложений, работающих с Apple Health, только пишут данные, нежели читают их, за исключением базовых данных. Если приложение явно проектируется с целью чтения данных для работы, то для этого требуется явно уведомлять пользователя, позволяя ему без последствий для работы со стороны приложения запрещать отдельные запросы на чтение. Другими словами, чтение и запись медицинских данных каждого приложения как в keychain или песочнице должно быть изолировано от других приложений, несмотря на возможность Apple Health агрегировать все данные в себе. Иначе со стороны недобросовестных разработчиков возможен доступ к данным остальных приложений с последующим выкачиванием их из устройства. К слову, Apple Health отдельно в источниках позволяет прозрачно управлять разрешениями, однако вопрос корректности работы приложения при запрещении доступа остаётся открытым (как когда-то давно в Android для разрешений приложений).

Также Apple своеобразно подошла к вопросу выдачи данных, записанных другими приложениями, приложению, запрашивающему данные. Приложение (в случае отсутствия доступа) получит данные только ранее сохранённые этим же приложением. Однако, это требует, а) выключения лишних прав доступа и их проверки; б) нет гарантии корректной работы приложения, т.к. неизвестно, действительно ли требовались разрешения на чтение каких-то данных. Многие приложения никак не реагируют на проверки разрешений. Так, например, приложение умных весов PICOOC даже не имеет раздела с правами на чтение — только на запись данных.

Интересный факт, в предстоящем релизе Android ожидается разрешение на доступ на чтение к буферу обмена.

Данные Apple Health распределены между следующими файлами баз данных:

  • HealthDomain\MedicalID\MedicalIDData.archive — хранит данные к вручную введенной пользователем информации (имя, рост, вес, медицинские импланты).
  • HealthDomain\Health\healthdb.sqlite — список приложений-источников, что позволяет извлекать данные в оригинальном виде и без дополнительной защиты; также содержит информацию об устройстве-источнике (название, модель/производитель, временные метки, общая информация о программной части/окружении).
  • HealthDomain\Health\healthdb_secure.sqlite — содержит дополнительную информацию (UDID устройства, имя устройства, временные метки, рост, пол, тип крови, день рождения, физические ограничения, общие показатели массы тела, timezone и версию ОС устройства-телефона).
  • HealthDomain\Health\healthdb_secure.hfd — зашифрованная база данных, в которую входит информация с приложений источников.



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

  • Имя пользователя, картинка профиля, рост, масса тела.
  • Гео-отслеживание (страна/город пребывания, версия ОС).
  • UDID устройства, имя устройства, последняя дата обновления данных в приложении Apple Health.
  • День рождения, пол, група крови, цвет кожи, рост, вес, мед. импланты.
  • Каждодневные показатели и замеры, например, пульс, вес, давление, различные дополнительные показатели приборов и приложений, калории и данные дневников питания, данные тренировок и дистанций, лог активностей с временными метками и т. п.
  • Бесплатный XML парсер

Умные весы Picooc


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





Локально размещены следующие данные:

  • Bluetooth логи возникают в результате сканирования устройств поблизости и для всех устройств сохраняется имя устройства и его mac-адрес.
  • Значения измерения тела сохраняются в базе picooc.sqlite в таблице `body_indexs` и были упомянуты выше в описании приложения.
  • Информация об устройстве включает информацию о mac-адресе устройства, названии модели, user ID, картинку устройства и хранится в файле также в файле picooc.sqlite.
  • Список друзей включает информацию об имени, телефоне, user_id, поле — при условии, что друзья пользуются этим же приложением — т.е. приложение формирует соцсеть.
  • Пользовательская информация включает никнейм, user ID, рост, возраст, пол, расу и состоит из двух частей на примере iOS
  • Данные сенсоров включают информацию о времени, возрасте, ОС, росте, параметрах экрана, модели устройства, языковых настройках, окружении, и т.п. и хранятся в файле “ \sensorsanalytics-message-v2.plist.db”
  • Настройки включают информацию о локальном пароле, методе разблокировки и последней активности; хранятся в файле “picooc\Library\Preferences\ com.picooc.international.plist” на примере iOS.



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

  • URL картинки профиля, которые доступен публично по ссылке постоянно и фактически имеет 2 URL:
  • Информация об устройстве и окружении.
  • Пользовательская информация, включая имя пользователя, день рождения, рост, вес, временные метки, ОС и timezone.
  • Учётные данные, включая пароль в т. ч. при смене пароля со старого на новый.



На этом первая статья заканчивается. Во второй части будет про Connected home: cмарт ТВ, голосовые помощники, умную кухню и освещение.

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


  1. igruh
    21.02.2019 12:50

    Смотрю я на табличку с результатами 13 высокотехнологичных исследований умных весов и ощущаю в них такую же острую потребность, как и в тестере нитратов или минерализации воды. Например костная масса 3.8кг, при том, что беглый поиск даёт при массе тела 83кг вес костей 14кг.