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