Registros médicos (EHR) en forma de aplicación móvil. ¿Son seguras?

jueves, 4 de octubre de 2018


Registros médicos (EHR) en forma de aplicación móvil. ¿Son seguras? imagen

Muchas personas saben que desde hace tiempo sus “huellas” o rastros médicos han comenzado a ser registrados durante sus visitas al médico por medio de dispositivos tecnológicos. En la industria hospitalaria, estos datos se conocen como EHR/EMR/PHR y si bien difieren en varios aspectos,  no será la finalidad de este post el analizar sus diferencias. Con la transformación digital, datos contables, agrícolas, industriales, financieros, médicos y otros muchos, forman parte de la masa de información que está digitalizada en internet y disponible para que el usuario pueda consultarla cuando sea necesario.


Características de Plataformas EHR EMR PHR imagen
Características de Plataformas EHR EMR PHR

Pero, ¿qué son los EHR o EMR? Por sus siglas en inglés (Electronic Medical Records), básicamente, hablamos de registros médicos de una persona o paciente que se almacenan digitalizados como una colección de datos sobre historiales clínicos, exámenes realizados, enfermedades, alergias, medicinas suministradas, información de facturación.... y cuya variedad, dependerá del software que se utilice. Este tipo de datos se gestionan actualmente tanto por doctores como por pacientes desde un dispositivo móvil a través de una aplicación.

Descripciones de Aplicaciones EMR imagen
Descripciones de Aplicaciones EMR

Hemos revisado aplicaciones en las principales plataformas (Android & iOS) identificando ciertas vulnerabilidades que pondrían poner en riesgo la privacidad de los datos de los pacientes. Dentro de este análisis, observamos que algunas de estas aplicaciones han sido desarrolladas por hospitales y clínicas, las cuales proporcionan acceso a sus usuarios y tienen comunicación directa desde internet con su infraestructura interna. Esto conlleva que aquellas instituciones que utilizan estas aplicaciones, puedan enfrentarse a un ataque que afecte a los datos de estos registros, sin ser plenamente conscientes de ello.

En este análisis seleccionamos la última versión de las 53 aplicaciones EHR más destacadas del sector. Dentro de este muestreo, nos hemos enfocado en analizar únicamente la aplicación móvil, ya que si bien se descubrieron debilidades del lado del servidor (backend), no están incluidas en este articulo. En esta revisión utilizamos un dispositivo Android (rooteado), IPhone 5S (no jailbreak) y nuestra plataforma de análisis de seguridad continuo de aplicaciones móviles mASAPP.

En base a los controles de seguridad del Top 10 Mobile de OWASP se realizaron pruebas a nivel macro, las mismas que solo representan un vistazo general de una cantidad de pruebas en detalle y de manera exhaustiva que se podrían realizar a las aplicaciones.

Como contamos en el post de Aplicaciones PACS/DICOM (que también juega un papel importante en la industria sanitaria), los resultados en esta ocasión también demostraron, desafortunadamente, que para el desarrollo de este tipo de aplicaciones, la seguridad no ha sido una prioridad. Las vulnerabilidades encontradas conforme a los controles evaluados se encuentran en las siguientes secciones. (Los datos y detalles técnicos donde se mencionan a la empresa dueña o detalles del desarrollador de la aplicación han sido censurados)

Estadística General de Resultados del Análisis imagen
Estadística General de Resultados del Análisis

Una de las primeras impresiones sobre este tipo de aplicaciones es que, los datos sensibles como credenciales de usuarios se continúan almacenando en SQLite en texto plano, además de estructuras fácilmente legibles, nos denota otra mala práctica en cuanto almacenamiento local inseguro. En otros casos, encontramos passcode o pins como control de acceso en las aplicaciones, almacenados en archivos XML con cadenas encodificadas (base64), sin utilizar algoritmos de cifrado.

Usando base64 para “cifrar” contraseñas (archivo xml legible) imagen
Usando base64 para “cifrar” contraseñas (archivo xml legible)


Base de datos SQLite con estructuras que almancenan pincode/ contraseñas en texto plano imagen
Base de datos SQLite con estructuras que almancenan pincode/ contraseñas en texto plano

En aplicaciones que hacen uso de APIs hacia diferentes servicios de terceros, encontramos aplicaciones que almacenan este tipo de información de manera incorrecta y legible. En dos aplicaciones observamos el uso parcial de librerías de cifrado de SQLite

Archivo de Certificado/Key Hardcodeado en App iOS imagen
Archivo de Certificado/Key Hardcodeado en App iOS


API Keys almacenada de Servicios Terceros imagen
API Keys almacenada de Servicios Terceros


Treinta de las aplicaciones establecen canales HTTP no cifrados en varias de sus comunicaciones, mientras otra parte de aplicaciones usan comunicación HTTPS con certificados autofirmados y no verifican la autenticidad del certificado digital (Métodos Certificate Pinning), lo que facilitaría a un atacante generar ataques MiTM (Main-in-the-Middle) por ejemplo.

Comunicación de Autenticación con Webservices en HTTP imagen
Comunicación de Autenticación con Webservices en HTTP

Entre los principales hallazgos de este tipo de fallos, seguimos encontrando grandes posibilidades de explotación de Inyección SQL y XSS (Cross Site Scripting) sobre la App y en 10 aplicaciones encontramos cómo utilizando “Webviews” se podía ejecutar código JavaScript o agregar librerías HTML.

Las 23 aplicaciones Android se podrían descargar y manipular de manera arbitraria, con lo cual se puede obtener de manera legible las clases de java de las aplicaciones ya que no mantienen ninguna característica de ofuscación de código (despersonalización) para dificultar el proceso de reversing.

Archivos de certificados hardcodeados dentro del App imagen
Archivos de certificados hardcodeados dentro del App


Revisión de clases java luego de proceso de reversing imagen
Revisión de clases java luego de proceso de reversing
Archivos JKS & Credenciales AWS imagen
Archivos JKS & Credenciales AWS



Contraseñas de certificados almacenados en texto plano imagen
Contraseñas de certificados almacenados en texto plano

Desde ElevenPaths, contemplamos con preocupación como este tipo de tecnología (cada vez más utilizada), continúe implementándose sin los controles necesarios y sin asegurar unos mínimos de seguridad, ya que, a diferencia de otros sectores en los que la pérdida económica supone el principal problema, en el sector sanitario, la privacidad de los datos médicos de los pacientes debería controlarse por encima de todo.

La comunidad lleva a cabo muchos esfuerzos en explorar estas nuevas implementaciones y buscar fallos de seguridad que sirvan como retroalimentación para las empresas propietarias de las aplicaciones con el objetivo de seguir despertando la conciencia del sector sanitario para que adopten las soluciones integrales necesarias para que sus usuarios sientan mayor seguridad de sus datos. Desde nuestra parte, esperamos que estos aportes sigan sensibilizando a la comunidad y que los errores no sigan conllevando incidentes de seguridad o  fugas de datos  como hemos contemplado recientemente.


Carlos Avila
Chief Security Ambassador

No hay comentarios:

Publicar un comentario