Seguridad de IoT. Número 1. Relojes inteligentes, rastreadores de ejercicios y escalas


En mi último artículo, hablé sobre cómo fui a DefCamp . El artículo de hoy es la primera parte de una publicación sobre mi investigación sobre la seguridad de Internet de las cosas, que formó la base de mi presentación en la conferencia.

IoT se está desarrollando rápidamente: ahora hay más de 260 compañías , incluidas ciudades inteligentes, fábricas, minas, compañías petroleras, minoristas, atención médica, educación y más. El ciclo de publicación cubrirá solo áreas de tecnología portátil, medicina inteligente y hogar inteligente, incluidas las aplicaciones móviles.

Hoy en día, la tecnología inteligente está comenzando a tener más sentido que conectar un auricular Bluetooth a un teléfono, y se está volviendo común, lo que indica una comprensión de para qué se utiliza la tecnología inteligente y para qué escenarios se puede automatizar.

La mala noticia es que muchos de estos nuevos dispositivos son blanco de ataques. Al mismo tiempo, los problemas de seguridad se resolvieron retroactivamente o no se resolvieron en absoluto debido a la falta de soporte para dispositivos antiguos. Dichos dispositivos representan un grave riesgo para la infraestructura (hogar o empresa) si no se gestionan adecuadamente. Por lo tanto, a continuación consideramos una serie de cuestiones relacionadas con la seguridad de las cosas inteligentes, los métodos y herramientas de piratería disponibles, así como el procesamiento de datos y las características de protección. El propósito de la investigación no es implementar o describir los métodos de "pirateo llave en mano", sino revisar los enfoques que, bajo ciertas condiciones, pueden conducir al acceso a los datos, así como también revisar situaciones en las que los desarrolladores por alguna razón deciden no proteger los datos del usuario. Los materiales se presentan de manera general (se puede encontrar información completa en el sitio web oficial.

Tecnología ponible: relojes inteligentes


Reloj de Apple




MITM


El reloj interactúa a través de Bluetooth o, si este canal no está disponible, a través de Wi-Fi para comunicarse con el teléfono y los servidores de Apple. La transferencia de datos de red entre la nube y las aplicaciones de teléfono / reloj está encriptada con TLS1.2 y protección contra ataques MITM y fijación de SSL. Al mismo tiempo, los relojes, a diferencia de los teléfonos, no tienen una interfaz para instalar certificados SSL raíz personalizados. No se detectaron flujos de datos sin cifrar.

Desbloqueo de pantalla bloqueada


El uso de un código de acceso en un reloj inteligente a menudo es un elemento opcional, pero puede estar incluido. Apple le permite restablecer el código de acceso de varias maneras , pero solo uno puede evitar condicionalmente la eliminación de datos.

El último método se basa en el mecanismo de volver a vincular el reloj al dispositivo con la recuperación de datos con un cambio del código de acceso. Tal escenario se usa cuando se supone que debe dar horas para reparar o vender, porque Es necesario desconectar el modo de bloqueo de activación. Su significado es que al eliminar el enlace del reloj al teléfono, se eliminan los datos del reloj, sin embargo, el teléfono realiza una copia de seguridad de los datos del reloj para restaurar posteriormente los datos en el reloj . Y dado que la copia de seguridad no guarda solo las tarjetas bancarias, la contraseña y la configuración del reloj Bluetooth, puede acceder a los datos y también establecer una nueva contraseña.

Para realizar el método, debe realizar los siguientes pasos:

  • El reloj y el teléfono deben estar cerca; La aplicación Apple Watch debe estar ejecutándose en el teléfono.
  • En la pestaña "Mi reloj", se seleccionan las horas necesarias y la acción se confirma mediante "Desvincular Apple Watch".
  • A continuación, debe ingresar la contraseña de su cuenta de Apple (en caso de que se olvide la contraseña, se propone restablecerla ).
  • Confirmación final de la acción.

Dado que este método interactúa con las credenciales de Apple, es posible acceder a ellas restableciendo la contraseña utilizando soluciones forenses , lo que finalmente le permite eliminar el código de acceso en el reloj de Apple.

Jailbreak


Jailbreak para la plataforma iOS siempre ha servido como una forma de aumentar los privilegios para varios sistemas operativos (iOS, tvOS y watchOS). A pesar de su popularidad, hay bastantes relojes jailbreak conocidos para relojes Apple (disponibles a continuación):

Jailbreaks para usb


Conexión a la cárcel y Bluetooth a través de SSH


Copias de seguridad


Dado que los relojes Apple funcionan principalmente como un dispositivo auxiliar, las aplicaciones instaladas en el reloj son widgets y toda la información se almacena en las aplicaciones del teléfono. Sin embargo, las aplicaciones de reloj aún almacenan una cierta parte por sí mismas, lo que le permite considerar opciones para acceder a los datos a través de copias de seguridad (cuando interactúa con un reloj que ya existe en una PC / Mac en la nube). Debe tenerse en cuenta que en los productos de Apple, muchos datos son multiplataforma y están sincronizados entre todos los dispositivos.

Para el acceso a los datos, son adecuadas tanto las soluciones forenses como las aplicaciones comunes para trabajar con archivos de respaldo (en el caso de una copia de seguridad en la nube o escenarios de derivación de acceso, solo soluciones forenses o cercanas a ellos); Vale la pena señalar que muchas aplicaciones en este momento pueden no tener acceso para ver el contenido de los archivos de respaldo, por lo tanto, una de las herramientas posibles es el extractor de respaldo de iPhone (en la versión básica de la suscripción permite el acceso a los datos del reloj, y las versiones completa y comercial todavía tienen soporte 2FA acceso a los datos).

La información necesaria sobre el dispositivo se encuentra en el archivo /mobile/Library/DeviceRegistry.state/properties.bin y cubre los siguientes parámetros:

  • Ver datos, incluyendo nombre, fabricante, modelo, sistema operativo, GUID.
  • Número de serie, UDID, dirección MAC de Wi-Fi, SEID (ID de elemento seguro), dirección MAC de Bluetooth.

La lista de aplicaciones instaladas se puede encontrar en dos lugares:

  • En el archivo "com.apple.Carousel", ubicado a lo largo de la ruta /mobile/Library/DeviceRegistry/GUID/NanoPreferencesSync/NanoDomains/com.apple.Carousel
  • En subcarpetas de la carpeta " / mobile / Library / DeviceRegistry / GUID "

Dependiendo de las aplicaciones instaladas, el acceso, por ejemplo, se puede obtener a la libreta de direcciones, que está sincronizada con el teléfono y es un tipo de datos multiplataforma (los datos se colocan en el archivo / mobile / Library / DeviceRegistry / GUID / AddressBook / ) o en el repositorio de libretas que almacena la banca tarjetas o tarjetas de programas de fidelización, varios tickets de libreta (los datos se colocan en el archivo /mobile/Library/DeviceRegistry/GUID/NanoPasses/nanopasses.sqlite3 ). La base de datos de este último en la tabla "Tabla de pases" contiene datos en tres partes (la imagen a continuación se toma desde el teléfono, no desde el reloj, para su comodidad):

  • ID_unico
  • Tipo_ID (boleto, tarjeta de fidelidad, etc.)
  • Contenido codificado de un "pase" separado (en formato de valor / datos)



Además, Apple Watch proporciona acceso a los datos de la aplicación Apple Health y llena los datos de esta aplicación desde varias fuentes, incluidas entre los que el usuario ingresa manualmente. Como regla general, los datos de esta aplicación están encriptados, por lo tanto, acceden a la copia de seguridad solo si se establece una contraseña (es decir, los archivos de copia de seguridad están encriptados). Sin embargo, esta aplicación tiene la opción de exportar datos en forma clara y sin cifrado (en el archivo zip). Al exportar datos, es importante tener en cuenta que el archivo se puede exportar a cualquier aplicación: archivos de Apple, almacenamiento en la nube, mensajería instantánea, etc., donde no hay cifrado adicional. La aplicación se analiza por separado a continuación en la sección Salud de Apple.

Relojes Android


Samsung Gear



Reloj lg



Los relojes Android son producidos por varios fabricantes (Asus, Samsung, LG, etc.). A diferencia de los relojes Apple, a menudo ofrecen un conjunto completo con un módulo 3G-4G para instalar una tarjeta SIM, en lugar de eSIM, de lo contrario, la funcionalidad no difiere.

Entre los enfoques para el acceso a datos, se distinguen los siguientes:

  • Investigación forense (física, lógica y de red)
  • Desbloqueo de pantalla bloqueada
  • Uso de herramientas de análisis de datos raíz

Solo la primera opción se considerará en el artículo como parte de la copia de imágenes, secciones y herramientas raíz. La investigación lógica (incluso como parte de las copias de seguridad) no difiere de los métodos conocidos. La versión en línea del estudio está ganando popularidad y no está ampliamente representada incluso en el marco de soluciones forenses preparadas. Consiste en la reproducción de mecanismos de interacción para el intercambio de datos a través de Wi-Fi, Bluetooth, incluidos MITM-métodos, pero requiere consideración en un artículo separado.

Copiar imagen del dispositivo


Al analizar los dispositivos Android, el enfoque no cambia, solo las herramientas difieren (se proporcionará un ejemplo de la herramienta en la sección para Samsung / LG). Para copiar el contenido del dispositivo, se puede utilizar la copia bit a bit de todo el dispositivo o particiones individuales. Para estos fines utiliza el modo desarrollador. La opción más simple es utilizar los comandos adb shell y adb pull para acceder a los datos. Según el fabricante, el modelo del dispositivo y la versión del sistema operativo, se pueden usar los kits de herramientas ADB, SDB o MTK. Muy a menudo, la sección de usuario " / dev / block / mmcblk0p12 / data " se copia para el análisis, pero se pueden copiar otras secciones si es necesario:

  • 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

Desbloqueo de pantalla bloqueada


Para Wear OS, el uso de códigos pin es opcional, por lo que a menudo el reloj no está protegido por un código pin. Hay más formas de evitar el bloqueo para los relojes Android que para Apple.

  • Gestión de contraseñas basada en cuentas.
  • Gesture.key y settings.db (Interacción con archivos de bloqueo).
  • Teclas ADB

Gestión de contraseñas basada en cuentas

La forma menos invasiva de evitar un bloqueo es utilizar una cuenta de Google y las credenciales obtenidas de alguna manera. Los métodos pueden ser diferentes, incluido el acceso a la cuenta a través de soluciones forenses. Después de obtener acceso, es posible desbloquear el dispositivo de forma remota o ingresar un nuevo código PIN, que en ambos casos le permite evitar el bloqueo del código PIN.

Gesture.key y settings.db

ADB o sus análogos son parte de las herramientas de desarrollo y funcionan independientemente de ellas. Estas utilidades se pueden usar para modificar archivos del sistema y eliminarlos: el archivo gest.key responsable de bloquear el código PIN y el archivo settings.db responsable de desbloquear el dispositivo bloqueado. En ambos casos, se requiere acceso físico al dispositivo; para el primer archivo, un conjunto de comandos para eliminar " shell adb.exe; cd / datos / sistema; rm gest.key "y el modo de depuración activado 'Modo de depuración' o la ejecución de comandos a través de recuperación personalizada como ClockworkMod o Team Win Recovery Project (TWRP).

Del mismo modo, para settings.key, debe ejecutar el comando " actualizar el valor establecido del sistema = 0 ", lo que conducirá a la sustitución de los valores de los parámetros lock_pattern_autolock y lockscreen.lockedoutpermenently y desbloquear el dispositivo sin conocer el código PIN.

También vale la pena señalar que un gestor de arranque bloqueado y la falta de herramientas de desbloqueo no permiten el acceso a los datos, en otros casos, especialmente si ya se ha instalado una recuperación personalizada, no hay dificultades de acceso.

Teclas Adb

Muy a menudo, el uso de dispositivos para diversos escenarios conduce a configuraciones y estados de dispositivos inseguros. En particular, cuando se usa un dispositivo para el desarrollo, forzará a habilitar el modo de depuración USB , y las claves de desarrollo adbkey y adbkey.pub ubicadas en el directorio //. Android / de los usuarios se colocarán en las PC sincronizadas con los dispositivos. En consecuencia, el modo en sí mismo le permite instalar software de terceros, omitir el bloqueo de pantalla y las teclas se pueden usar para transferir el estado de "sincronización" a una nueva ubicación.

Use OS y Root


Para los relojes Android, el sistema operativo Android se utiliza adaptado a las necesidades físicas de los dispositivos. En la línea de relojes Asus Zenwatch, Huawei Watch, LG Watch y muchos otros, se utiliza el sistema operativo Android, en el caso de los relojes Samsung - Tizen OS.

Android Wear comienza con 4.4W1, 4.4W2, 1.0 y termina con la versión 2.9, que corresponde al Android habitual, comenzando con 4.4. 4.4, versiones 5.0.1 y terminando con 7.1.1 / 8.0.0 (febrero de 2018). Las nuevas versiones después de cambiar la marca en Wear OS comienzan con 1.0 (Android 7.1.1 / 8.0.0 - marzo de 2018 y la versión 2.1 (7.1.1 / 9.0.0 - septiembre de 2018) y en adelante. El kit de herramientas raíz se presenta ampliamente para Android Use la versión 2.0.

Raíz:


Recuperación: para buscar las versiones necesarias, puede usar la búsqueda :

  • TWRP
  • Para la versión 5.1.1, twrp-3.1.0-0.img es adecuado
  • Para la versión 6.0.1 y Wear 2.0, twrp-3.0.0-0.img es adecuado
  • Para Samsung Gear y LG Watch, la versión 2.8.4 y superior es adecuada

Por ejemplo, Samsung Gear Watch y LG Watch


Al omitir los parámetros técnicos del Samsung Gear, puede considerar la opción de investigar dispositivos como parte de un estudio forense físico. El reloj no es compatible con la conexión Wi-Fi, solo están disponibles la conexión Bluetooth y USB, así como la protección opcional con código PIN. En el caso de Samsung, se requiere un SDB (puente de desarrollo inteligente), que forma parte del Tizen-SDK. En el caso de LG, se requiere el kit de herramientas tradicional de Android, ADB.

La extracción de datos se puede describir en tres pasos.

Etapa número 1. Conseguir Root para Samsung

Para obtenerlo, debe encontrar la imagen personalizada adecuada, la utilidad universal para dispositivos Samsung: Odin 3.0, poner el dispositivo en modo de desarrollo (activando SDB), ponerlo en modo "modo de descarga" y ejecutar el comando " Sdb shell, raíz sdb "

Etapa número 1. Conseguir Root para LG

Antes de obtener acceso de root, debe habilitar el modo de depuración ADB. Después de eso, use LG Watch Restore Tools, reinicie en el gestor de arranque y actualice la imagen:

  • adb reboot-bootloader
  • Desbloqueo OEM fastboot
  • adb push SuperSU.zip / sdcard / download
  • adb reboot-bootloader
  • arranque fastboot twrp.img
  • Instale SuperSu.zip y espere el reinicio

Etapa número 2. Obteniendo una imagen del dispositivo

Entre las diversas herramientas de desarrollo de Android, está el popular Toybox , que le permite crear una imagen del dispositivo para una mayor extracción y estudio de datos. Toybox se encuentra en una unidad externa o en la carpeta de descarga de la memoria principal. Se cambian los derechos de acceso para la ejecución de toybox, se realiza la búsqueda de secciones adecuadas para copiar (ejecutando los comandos " cd / dev / block / platform / msm_sdcc.1; ls -al by-name ). Como regla general, se copia la sección de usuario (userdata) ubicada en / dev / block / mmcblk0p21 . Después de eso, usando toybox, dd y netcat, se copia la imagen de la sección correspondiente:

  • adb push toybox / sdcard / descargar
  • adb shell; su
  • mv / sdcard / download / toybox / dev /
  • raíz conocida: toybox raíz;
  • caja de juguetes chmod 755
  • cd / dev / block / platform / msm_sdcc; ls -al por nombre
  • / * partición de imagen con dd y pipe a netcat, -L pone a netcat en modo de escucha * /
  • dd if = / dev / block / mmcblk0p21 | ./toybox nc -L
  • / * Número de puerto que se escucha en el reloj que se muestra para el usuario * /
  • 44477 / * puerto mostrado * /
  • adb adelante tcp: 44867 tcp: 44867
  • / * Enviar solicitud para ver el número de puerto 44867 y enviarlo al archivo de imagen * /
  • nc 127.0.0.1 44867> Samsung.IMG



Etapa número 3. Extracción de datos

Los datos más útiles, que se almacenan de forma independiente en el reloj en el caso de Samsung, se colocan en las siguientes bases de datos:

  • Mensajes: apps.com.samsung.message.data.dbspace / msg-consumer-server.db
  • Datos de salud / estado físico - apps.com.samsung.shealth / shealth.db
  • Correo electrónico: apps.com.samsung.wemail.data.dbspace / wemail.db
  • Contactos / Libreta de direcciones - dbspace / Contacts-svc.db

En el caso de los relojes LG —— en la siguiente base de datos:

  • Eventos / Notificaciones - data.com.android.providers.calendar.databases / calendar.db
  • Contactos / Libreta de direcciones - data.com.android.providers.contacts.databases / Contacts2.db
  • Datos de salud / estado físico: data.com.google.android.apps.fitness.databases / pedometer.db

Rastreador de ejercicios - Xiaomi Band




El rastreador de actividad física es un dispositivo auxiliar, y todos los datos se recopilan en la aplicación Mi-Fit, que siempre interactúa a través de una conexión cifrada con TLS1.2 con servidores Amazon AWS, ubicados principalmente en la UE. Varias solicitudes sin referencia a acciones van a servidores de EE. UU. En el caso de Mi Fit, el cifrado no evita completamente los ataques MITM debido a la falta de fijación de SSL y la capacidad de instalar un certificado raíz en el dispositivo. En este caso, se produce el acceso a todos los datos transmitidos a través de la red. A nivel local, la carpeta de la aplicación contiene un registro detallado de eventos e indicadores de aptitud del usuario del que se obtuvieron estos datos como parte de los escenarios del usuario, por ejemplo

Solicitud del servidor 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 

La respuesta

 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" } ] } 

Rastreador de ejercicios - Huawei Honor Band




Huawei Honor Band, como Xiaomi Band, no es un dispositivo independiente y la aplicación instalada en el teléfono recopila todos los datos. La aplicación también se basa en una conexión TLS, sin embargo, a diferencia de Xiaomi, tiene una pequeña cantidad de conexiones. Todos ellos están suficientemente protegidos, incluidos de ataques MITM y ataques SSL Strip.

Al mismo tiempo, se reciben muchos datos localmente como parte de las copias de seguridad, obtenidas de los sensores del rastreador, que se pueden dividir en datos de servicio, usuario y estado físico, que, a su vez, se dividen en bruto y agregado. La lista de datos es para iOS, pero no difiere de la versión de Android.

  • Los datos y registros del dispositivo se encuentran en la carpeta / hms / oclog / crash, / hms / oclog / log.
  • Los valores actuales y más recientes del rastreador cubren información sobre el sueño, los datos de despertar, las distancias (distancia, kilometraje, etc.), la frecuencia cardíaca y las calorías. Se encuentran en los archivos /Documents/*.archiver.
  • El firmware incluye todos los datos, la ubicación, la URL desde donde se descarga, el tamaño, el registro de cambios, el indicador de actualización forzada y el archivo de firmware en sí, que se descarga a través de HTTP como parte de la actualización segura de DFU , excepto las primeras versiones.
  • Los datos geográficos incluyen información de ubicación con referencia al tiempo y la separación por días y tipos de actividades, así como datos sobre la velocidad y la dirección del movimiento, si corresponde. También se encuentran en la carpeta /*.archiver.
  • Los datos del usuario incluyen información básica: foto de perfil, nombre, fecha de nacimiento, altura, peso, sexo, edad y datos generales de pasos y kilometraje. También se encuentra en la carpeta /*.archiver.
  • Los detalles de la cuenta incluyen UDID, Token, UserID, SessionID, Mac Device Address y Bluetooth Keys.



Aplicaciones de fitness: bicicleta de carretera, bicicleta de montaña




Como ejemplo de aplicaciones de fitness, se consideraron las versiones RoadBike y MountainBike PRO, que no son diferentes en su implementación.

Estas aplicaciones rastrean los logros de los usuarios, los indicadores de velocidad, las distancias de paso y tienen la capacidad de integrarse con algunos rastreadores físicos, y tampoco implican actividad en Internet. Almacenar localmente todos los datos grabados:

  • Datos GPS: geolocalización, distancia, altitud y elevación, marcas de tiempo locales y con referencia a valores gps.
  • Datos de la sesión: marcas de tiempo, distancia, duración de la pista, indicadores promedio y mínimo, indicadores cardíacos de diferencia de altitud (si hay un rastreador especial).
  • Datos de velocidad: marcas de tiempo, tiempo de conducción, distancia (si tiene sensores adicionales, puede corregir el cálculo de velocidad correcto).
  • Datos del usuario: credenciales (incluida la contraseña en texto claro), altura, peso, sexo, nombre y fecha de nacimiento.

Todos los datos se colocan en database.sqlite3 y, adicionalmente, la base de datos MapOpenCycleMap.SQLite contiene información sobre la pista, incluida la geolocalización y una instantánea de geolocalización y ruta.





Medicina inteligente


La medicina inteligente implica la convergencia de la tecnología digital con problemas de salud dentro de la sociedad para aumentar la efectividad de la atención médica. Estas tecnologías incluyen soluciones y servicios de hardware y software, que incluyen telemedicina, teléfonos móviles y aplicaciones, dispositivos portátiles y dispositivos fijos, sensores clínicos o monitoreo remoto.



La mayoría de las aplicaciones de salud se dividen en dos categorías: aplicaciones de origen (medición de indicadores de salud humana) y aplicaciones de agregación de datos (recopilan datos en un lugar de diferentes fuentes).

Salud de la manzana


La aplicación Apple recopila datos de salud de una variedad de fuentes de software y hardware (iPhone, Apple Watch y aplicaciones de terceros) que admiten el protocolo HealthKit.

Los datos se dividen en 4 categorías: actividad, sueño, atención plena y nutrición (actividad resumida, indicadores de sueño y vigilia, una categoría indefinida para iOS 11-12, un diario de alimentos). Si se utiliza el código de acceso, Touch ID o Face ID, todos los datos en esta aplicación se cifran tanto en el dispositivo como en la nube, incluso cuando se transmiten datos a través de la red. Por separado, sobre la comparación de la protección de datos Apple Health y Google Fit se puede encontrar en el artículo de Elcomsoft .



Globalmente, todos los datos de Apple Health se pueden dividir en dos categorías desde un punto de vista de seguridad: guardados automáticamente por la aplicación desde diferentes fuentes y datos exportados.

En el primer caso, la mayoría de los datos están encriptados y una cierta parte en claro, desde el punto de vista de Apple, no es crítico encriptarlos.

En el segundo caso, todos los datos estarán en texto claro en formato CDA (Clinical Document Architecture), típico para el intercambio de datos médicos; y en una forma más familiar, este es un archivo con archivos xml. Cabe señalar que la protección de datos por parte de Apple no significa que los datos en las aplicaciones de origen también estén protegidos (se puede ver en los ejemplos anteriores con rastreadores y a continuación con pesos). Tampoco garantiza que las aplicaciones no utilicen datos de otras aplicaciones de origen a través de Apple Healthkit y no guarden datos en su nube.

Vale la pena señalar que el modelo de permiso en Apple fue originalmente un poco diferente. Todas las solicitudes de acceso a los datos de la aplicación se solicitaron al inicio o según sea necesario (al finalizar las acciones que requieren permisos), a diferencia de las versiones anteriores de Android. Pero para la aplicación Apple Health, no se muestra una lista detallada de permisos para leer y escribir indicadores del corazón, presión, masa, etc., con una descripción detallada de qué y por qué se requiere (como de costumbre, todo se solicita de inmediato).

Esto último lleva al hecho de que la idea inicial de un sandbox de datos con el advenimiento de aplicaciones como Apple Health no es obvia para el usuario, lo que llevó a Apple a crear otro sandbox para datos médicos. Por ejemplo, una aplicación pidió algo para leer y escribir, y no tiene nada de criminal, aunque básicamente la mayoría de las aplicaciones que trabajan con Apple Health solo escriben datos que los leen, con la excepción de los datos básicos. Si la aplicación está diseñada explícitamente para leer datos para el trabajo, esto requiere una notificación explícita al usuario, lo que le permite prohibir solicitudes de lectura individuales sin consecuencias para la aplicación. En otras palabras, leer y escribir los datos médicos de cada aplicación como en un llavero o caja de arena debe aislarse de otras aplicaciones, a pesar de que Apple Health pueda agregar todos los datos en sí mismo. De lo contrario, desde el lado de desarrolladores sin escrúpulos es posible acceder a los datos de otras aplicaciones con su posterior bombeo desde el dispositivo. Por cierto, Apple Health por separado en las fuentes le permite administrar de forma transparente los permisos, pero la cuestión del funcionamiento correcto de la aplicación cuando se deniega el acceso permanece abierta (como solía estar en Android para los permisos de la aplicación).

Apple también ha abordado la cuestión de emitir datos grabados por otras aplicaciones a una aplicación que solicita datos. La aplicación (en caso de falta de acceso) recibirá datos solo previamente guardados por la misma aplicación. Sin embargo, esto requiere a) desactivar los derechos de acceso innecesarios y verificarlos; b) no hay garantía del correcto funcionamiento de la aplicación, porque no se sabe si realmente se necesitaban permisos para leer datos. Muchas aplicaciones no responden a las verificaciones de permisos. Entonces, por ejemplo, la aplicación de báscula inteligente PICOOC ni siquiera tiene una sección con permisos de lectura, solo datos de escritura.

Un hecho interesante, en el próximo lanzamiento de Android, se espera permiso para leer en el portapapeles .

Los datos de Apple Health se distribuyen entre los siguientes archivos de base de datos:

  • HealthDomain \ MedicalID \ MedicalIDData.archive : almacena datos en la información ingresada manualmente por el usuario (nombre, altura, peso, implantes médicos).
  • HealthDomain \ Health \ healthdb.sqlite : una lista de aplicaciones de origen que le permite recuperar datos en su forma original y sin protección adicional; también contiene información sobre el dispositivo fuente (nombre, modelo / fabricante, marcas de tiempo, información general sobre la parte / entorno del software).
  • HealthDomain \ Health \ healthdb_secure.sqlite : contiene información adicional (UDID del dispositivo, nombre del dispositivo, marcas de tiempo, altura, sexo, tipo de sangre, fecha de nacimiento, limitaciones físicas, peso corporal total, zona horaria y versión del sistema operativo del dispositivo del teléfono).
  • HealthDomain \ Health \ healthdb_secure.hfd es una base de datos cifrada que incluye información de las aplicaciones de origen.



Al trabajar con un archivo de datos exportado (es decir, sin cifrado), debe entenderse que la exportación del archivo se puede realizar en cualquier lugar del dispositivo, se puede transferir al almacenamiento en la nube o al archivo a cualquier otra aplicación, lo que en sí mismo puede ser un riesgo porque contiene información detallada, que incluye pero no se limita a:

  • Nombre de usuario, foto de perfil, altura, peso corporal.
  • Geo-tracking (país anfitrión / ciudad, versión del sistema operativo).
  • UDID del dispositivo, nombre del dispositivo, última fecha de actualización de datos en la aplicación Apple Health.
  • Cumpleaños, género, tipo de sangre, color de piel, altura, peso, miel. implantes
  • Indicadores y mediciones diarias, por ejemplo, frecuencia cardíaca, peso, presión, varios indicadores adicionales de dispositivos y aplicaciones, datos del diario de calorías y nutrición, datos de entrenamiento y distancia, registro de actividad con marcas de tiempo, etc.
  • Analizador XML gratuito

Básculas inteligentes Picooc


PICOOC integra soluciones de hardware con aplicaciones y servicios de Internet. En particular, se monitorean 13 mediciones en escalas inteligentes, como peso, porcentaje de grasa corporal e índice de grasa, masa corporal, huesos, músculos, agua en el cuerpo, edad metabólica y cambios en los indicadores.





Los siguientes datos se publican localmente:

  • Los registros de Bluetooth se producen como resultado del escaneo de dispositivos cercanos y para todos los dispositivos se guardan el nombre del dispositivo y su dirección MAC.
  • Los valores de medición del cuerpo se almacenan en la base de datos picooc.sqlite en la tabla `body_indexs` y se mencionaron anteriormente en la descripción de la aplicación.
  • La información sobre el dispositivo incluye información sobre la dirección mac del dispositivo, el nombre del modelo, la identificación del usuario, la imagen del dispositivo y también se almacena en el archivo en el archivo picooc.sqlite.
  • La lista de amigos incluye información sobre el nombre, teléfono, user_id, campo, siempre que los amigos usen la misma aplicación, es decir La aplicación forma una red social.
  • La información del usuario incluye apodo, ID de usuario, altura, edad, sexo, raza y consta de dos partes en el ejemplo de iOS
  • Los datos del sensor incluyen información sobre tiempo, edad, sistema operativo, altura, configuración de pantalla, modelo de dispositivo, configuración de idioma, entorno, etc. y se almacenan en el archivo "\ messagesanalytics-message-v2.plist.db"
  • La configuración incluye información sobre la contraseña local, el método de desbloqueo y la actividad reciente; almacenado en el archivo "picooc \ Library \ Preferences \ com.picooc.international.plist" en el ejemplo de iOS.



Desde el punto de vista de la transferencia de datos, existe la posibilidad de intercepción con un certificado raíz. Los datos más interesantes pueden considerarse los siguientes:

  • La URL de la imagen de perfil, que está disponible públicamente a través del enlace constantemente y en realidad tiene 2 URL:
  • Información sobre el dispositivo y el medio ambiente.
  • Información del usuario, incluyendo nombre de usuario, fecha de nacimiento, altura, peso, marcas de tiempo, sistema operativo y zona horaria.
  • Credenciales, incluida la contraseña, incluso cuando se cambia la contraseña de antigua a nueva.



Aquí es donde termina el primer artículo. La segunda parte será sobre el hogar conectado: televisión inteligente, asistentes de voz, cocina inteligente e iluminación.

Source: https://habr.com/ru/post/440288/


All Articles