Introducción
Las aplicaciones de diagnóstico del COVID19 desarrolladas por gobiernos y entidades privadas, han permitido mantener un monitoreo sobre las infecciones de COVID19 de individuos potencialmente portadores.
Sin embargo, muchas de estas aplicaciones de distintos países fueron desarrolladas en tiempo récord, pero no consideraron dentro de su ciclo de desarrollo pruebas seguridad que permitan identificar vulnerabilidades que puedan poner en riesgo la información que los usuarios introducen en ellas.
El exponer información sensible como lo es, información de salud, puede derivar en factores como la discriminación de las personas infectadas en sus lugares de trabajo, zonas en las que habitan, acceso a servicios o incluso acciones de violencia contra ellos.
Esta investigación tardó varias semanas en ser publicada, ya que el principal problema fue el reportar las vulnerabilidades identificadas a los estados correspondientes. Tras una serie de correos electrónicos, notificaciones vía twitter y en uno de los casos llamadas telefónicas, no recibimos respuesta alguna. Reportar vulnerabilidades de sistemas gubernamentales es difícil, ya que no existe una vía directa para notificarlas a los responsables directos. El problema no radica en si se cuentan con leyes enfocadas a la ciberseguridad, sino el punto medular es que algunos gobiernos no cuentan con procedimientos para recibir reportes de seguridad y que sean atendidos inmediata y prontamente.
Pero ¿Por qué es necesario notificar a los responsables directos? Debido a la criticidad de las vulnerabilidades, es importante hacer llegar los reportes a las personas adecuadas para que no se haga mal uso de las vulnerabilidades contenidas en los reportes.
Con la finalidad de revisar la seguridad de la información de los ciudadanos en las aplicaciones COVID desarrolladas por distintos estados del gobierno de México, detectamos vulnerabilidades que pueden permitir a un actor malicioso, extraer los registros almacenados en las bases de datos de las aplicaciones.
A continuación, se muestran los resultados de la aplicación del gobierno de Puebla y la del gobierno de Chihuahua, de las cuales el equipo de Seekurity no recibió respuesta a las notificaciones enviadas. Los resultados de las pruebas realizadas a otras aplicaciones de otros estados serán publicados en un futuro, 30 días después de la fecha de notificación a los responsables si no se recibe respuesta alguna o tras la notificación del cierre de las vulnerabilidades.
Aplicación COVID Puebla
Información general
- Versión: covid-puebla_1.0.1ª
- Última actualización registrada: 2 April 2020
- Versión analizada: 1.0.1a – No disponible en Google Play hasta el día de la publicación de este post.
- Instalaciones registradas por Google Play: +10,000.
- Hash SHA256: f6fe7d2875291ab73a9224d826025de5fdf8a53d10cf112e235cafcfad62c842
Aplicación no encontrada en Google Play:
Vulnerabilidades:
1. Credenciales dentro del código fuente.
Durante la revisión encontramos que dentro del código fuente de la aplicación, se encuentran hardcodeado un usuario y una contraseña, lo que podría permitir a un atacante autenticarse al servicio que soporta la aplicación.
2. Captura de información en tránsito.
Al iniciar la aplicación en un dispositivo Android, es posible interceptar la información que envía la aplicación a los servidores donde se almacena la información. Lo que indica que la aplicación no cuenta con las medidas de seguridad para proteger la información enviada y recibida. Hay dos factores principales en una conexión HTTPS, un certificado válido que presenta el servidor durante el protocolo de enlace y el cifrado que se utilizará para proteger los datos durante la transmisión. El certificado es el componente esencial y sirve como prueba de identidad del servidor. El cliente sólo confiará en el servidor si el servidor puede proporcionar un certificado válido que esté firmado por una de las Autoridades de certificación confiables que vienen preinstaladas en el cliente; de lo contrario, la conexión se cancelará. Un atacante puede abusar de este mecanismo instalando un certificado de CA raíz malicioso en los dispositivos del usuario para que el cliente confíe en todos los certificados firmados por el atacante o, lo que es peor, comprometió completamente a una CA. Por lo tanto, depender únicamente de los certificados recibidos de los servidores no puede garantizar la autenticidad del servidor y es vulnerable a un posible ataque MiTM. La forma de proteger a las aplicaciones contra ataques Man in the Middle es la implementación de controles de seguridad como SSL Pinning, para validar la identidad del servidor. La falta de la implementación de SSL Pinning nos permitió analizar las peticiones de la aplicación al servidor.
3. Acceso a los registros de usuarios.
Al enviar una petición especialmente diseñada a los servidores de la aplicación, el servidor responde inmediatamente con 266 registros de los usuarios que han realizado el test en la aplicación. La información que un atacante puede obtener es:
- Fecha de registro.
- Resultado del diagnóstico.
- Nombre
- Fecha de nacimiento
- Si cuenta con seguro social y entidad a la que pertenece.
- Número telefónico
- Municipio
- Código postal
- Ubicación geográfica: Latitud, Longitud y altitud.
- Síntomas.
- Entre otra información.
Aplicación COVID Chihuahua
Información general
- Nombre: salud-digital-chihuahua_4.3
- Hash SHA256: 472d20929bd4871a88784066d294ac59ad8f694de87447c29afb516674d2ecdd
- Versión auditada: 4.3 (La versión 4.4 emitida el 5 de octubre sigue siendo vulnerable a la consulta de registros).
- URL: https://play.google.com/store/apps/details?id=com.ssch.saluddigital
Vulnerabilidades
1. La aplicación en Android permite el envío de información en texto plano.
Inicialmente, se analizó el archivo Manifest, en el cual se observó que la aplicación permite enviar el tráfico en texto plano, es decir, sin cifrar. Esto se soluciona cambiando el Flag a False.
2. Captura de Token para iniciar con el registro.
La aplicación le solicita al usuario un Token para iniciar con el formulario de evaluación. Al colocar un número de teléfono, la aplicación enviará al usuario el Token para ingresar, sin embargo no es necesario contar con el número de teléfono válido o esperar el Token, ya que el Token no se genera en el backend, sino es generado por la misma aplicación en el cliente, el cual puede ser capturado por un atacante y utilizarlo para ingresar a la aplicación sin necesidad de recibir el token.
3. Extracción de registros.
Un actor malicioso puede enviar una petición especialmente diseñada a los servidores solicitando la información de otros usuarios, al no contar con restricciones por usuario de solo permitir acceder a la información del usuario autenticado, cualquier usuario puede consultar la información de más de 65,000 registros almacenados en los servidores de la aplicación.
Aplicación COVID Sonora
Información general
- Nombre: Sonora COVID-19
- Versión auditada: 2.0.0
- URL: https://play.google.com/store/apps/details?id=com.seguritech.appcovid.son&hl=en&gl=US
Vulnerabilidades
Se ha enviado la solicitud de cotacto al correo electrónico de contacto colocado en la sección de “Información adicional” en la página de descarga de Google Play.
Una vez que el equipo encargado de desarrollar la aplicación móvil reporte a Seekurity el cierre de las vulnerabilidades que ponen en riesgos la información de 3,790 registros de ciudadanos potencionales infectados, actualizaremos con los detalles técnicos este post.
Historial de notificaciones
A la fecha de la publicación de este post, no se recibieron respuestas a las notificaciones enviadas por Seekurity por parte del gobierno de Chihuahua y la aplicación de Puebla fue dada de baja del sistema de Google Play. Esto implica que mientras la aplicación estuvo disponible públicamente, un atacante pudo tener acceso a los registros de los ciudadanos que se registraron en las aplicaciones.
Puebla:
- Sept 15 – Primer correo de notificación (Sin respuesta).
- Sept 28 – Notificación via Twitter: https://skty.cc/l9
- Sept 28 – Repuesta por parte de Secretaría de Salud via Twitter @SaludGobPue
- Sept 29 – Repuesta vía correo electrónico de Servicios de Salud del Estado de Puebla.
- Sept 29 – Redirección a la Secretaría de Administración
- Sept 29 – Correo electrónico de notificación a la Secretaría de Administración.
- Sept 29 – Repuesta de la Secretaría de Administración.
- Sept 30 – Envío de reporte.
- Sept 30 – Acuse de reporte recibido.
- Oct 21 – Se identificó que la aplicación fue dada de baja de Google Play Store.
- Oct 22 – Solicitud de estatus a la Secretaría de Administración (sin respuesta).
Chihuahua:
- Sept 15 – Primer correo de notificación a la dirección especificada en la aplicación, la dirección no existe: Your message wasn’t delivered to [email protected] because the address couldn’t be found, or is unable to receive mail.).
- Sept 15 – Segundo al correo segegochih.
- Sept 28 – Notificación vía Twitter a @SsaludChih (Sin respuesta). https://skty.cc/l7.
- Sept 30 – Notificación vía Twitter a @SsaludChih (Sin respuesta): https://skty.cc/l6.
- Oct 10 – Tercer contacto vía llamada y whatsapp.
- Oct 22 – Cuarto contacto sin respuesta.
Previous Next