Análisis de Seguridad Delta Chat
- 23/08/2024
- 554
Contexto:
El 11 de Julio del presente año 2024, aprovechado un aniversario más de los disturbios que acontecieron en el 2021, la Congresista Republicana por el Distrito Federal 27 de la Florida, María Elvira Salazar exhortó a los cubanos que se encuentran en la Isla a descargar y usar la aplicación móvil de mensajería Delta Chat para mantener la comunicación libre, aunque ocurran cortes o caídas en el servicio de internet.
Generalidades:
Delta Chat se presenta como una aplicación de mensajería confiable, descentralizada y segura, disponible para plataformas móviles y de escritorio. Según sus desarrolladores, se siente como WhatsApp o Telegram, pero también puede considerarse como una aplicación de correo electrónico. Reconocida como una aplicación de mensajería que utiliza la red de servidores de correo electrónico existente para permitir a los usuarios chatear con sus contactos de correo electrónico, posee una alta puntuación en Google Play Store y más de 100 000 descargas hasta el momento.
Análisis Técnico:
La División de Ciberseguridad de ETI con su Centro de Operaciones y Equipo de Respuesta a Incidentes de Seguridad (CSIRT- Biocubafarma), investigó sobre el tema a fin de alertar a la comunidad sobre la explotación de dicha aplicación. El análisis de seguridad estuvo basado en:
- Comentarios políticos sobre su uso
- Declaraciones oficiales de Merlinux y Google Play
- Informes de seguridad sobre la aplicación y pruebas de concepto ejecutadas, vista como información accionable por Cure53
- Publicación oficial de la aplicación en Github Android App
- Informe Técnico Seguridad en Aplicaciones móviles APK Delta Chat por Div. Ciberseguridad ETI.
Actividades Ejecutadas:
1. Análisis de la información anunciada por la contrarrevolución sobre la disponibilidad de la aplicación Delta Chat (video de YouTube).
- https://www.youtube.com/watch?v=B1lQCy4bCCY
- https://www.youtube.com/watch?v=zO2undw9glk
- https://www.cuballama.com/noticias/delta-chat-la-aplicacion-promovida-por-la-congresista-maria-elvira-para-burlar-la-censura-a-internet-en-la-isla/
- https://noticias.cubitanow.com/delta-chat-la-nueva-herramienta-para-evadir-la-censura-de-internet-en-cuba
2. Descarga de la aplicación del Google Play Store, para analizar su instalación y modos de operación. Se tiene un manual de funcionamiento público emitido por diferentes fuentes de información.
- https://www.cubatramite.com/aplicacion-delta-chat/
- https://tutoriales.cubatramite.com/como-descargar-y-configurar-delta-chat-en-cuba/
- https://www.periodicocubano.com/que-es-y-como-funciona-delta-chat-para-burlar-la-censura-de-etecsa/
- https://diariodecuba.com/cuba/1720730331_55959.html
3. Análisis del informe de Cure53 que ofrece pruebas de penetración de caja blanca y auditorías de código, enfocadas en discutir errores, vulnerabilidades y correcciones.
Pentest- & Review-Report Delta Chat Webxdc 02.-03.2023: prueba de penetración de Caja Blanca que detalla el alcance, los resultados y los resúmenes concluyentes de una prueba de penetración y auditoría de fugas de privacidad contra las implementaciones Webxdc de Delta Chat para Android, iOS, y escritorio, así como una revisión de las especificaciones de Webxdc.
Se identificaron numerosas fallas, debilidades generales descubiertas y recomendaciones de mejores prácticas destacadas referenciadas como oportunidades de mejoras en la seguridad, visualizándose además la descripción técnica y prueba de conceptos (PoC) para las vulnerabilidades detectadas.
https://www.opentech.fund/wp-content/uploads/2023/05/XDC-01-report-2-1.pdf
4. Análisis de los ficheros relevantes y específicos de la aplicación en
https://github.com/deltachat/deltachat-android. Para verificar la robustez de la aplicación Delta Chat Android, se analizan los siguientes ficheros relevantes:
- AndroidManifest.xml: contiene información sobre la configuración de la aplicación, incluyendo permisos, componentes y servicios. Se verificaron que los permisos sean adecuados y que no se estén solicitando permisos innecesarios.
- build.gradle: contiene información sobre la configuración del proyecto, incluyendo dependencias y configuraciones de seguridad. Se verificaron que las dependencias sean actualizadas y que se estén utilizando versiones seguras.
- src/main/java/com/deltachat/deltachat/activities/: este directorio contiene las clases que implementan la lógica de la aplicación. Se analiza el código para verificar que se estén utilizando prácticas de seguridad adecuadas, como la validación de entrada de datos y la gestión de errores.
- src/main/java/com/deltachat/deltachat/services/: este directorio contiene las clases que implementan los servicios de la aplicación, como el servicio de mensajería. Se analiza el código para verificar que se estén utilizando prácticas de seguridad adecuadas, como la autenticación y la autorización.
- src/main/java/com/deltachat/deltachat/utils/: este directorio contiene las clases que implementan utilidades y herramientas para la aplicación. Se analiza el código para verificar que se estén utilizando prácticas de seguridad adecuadas, como la gestión de claves y la criptografía.
- res/xml/: este directorio contiene ficheros XML que definen la interfaz de usuario de la aplicación. Se analiza el código para verificar que se estén utilizando prácticas de seguridad adecuadas, como la validación de entrada de datos y la gestión de errores.
- assets/: este directorio contiene ficheros que se utilizan en la aplicación, como imágenes y sonidos. Se analiza el contenido de este directorio para verificar que no se estén almacenando datos sensibles.
Algunos ficheros específicos vistos fueron:
- DeltaChatApplication.java
- LoginActivity.java
- MessageService.java
- CryptoUtils.java
5. Desarrollo de Informe Técnico Seguridad en Aplicaciones móviles APK Delta Chat por Div. Ciberseguridad ETI.
El objetivo del escaneo de la APK Delta Chat se centra en identificar vulnerabilidades en la aplicación, teniendo en cuenta que la mayoría de las amenazas a la seguridad y las debilidades de privacidad conocidas de la aplicación móvil (por ejemplo, las de iOS o Android están cubiertas exhaustivamente por la lista OWASP Mobile Top 10) requieren algunas condiciones específicas para ser explotadas (por ejemplo, presencia de un atacante en la misma red que la víctima, robo de un dispositivo o una aplicación de malware preinstalada en el dispositivo de la víctima) y, por lo tanto, pocas de ellas pueden considerarse problemas críticos.
El objetivo final de las pruebas de seguridad móvil es garantizar que el ecosistema móvil sea seguro, privado y responda a los estándares regulatorios promulgados, como PCI DSS o GDPR. Las pruebas de seguridad móvil pueden ser tanto manuales (pruebas de penetración móvil) como automatizadas (escaneo de vulnerabilidad móvil).
Sobre la APK:
- Información del Archivo APK
- Información de la APK
- Información de Certificación
Análisis de la APK:
- Permisos de la aplicación categorizados en permisos en el momento de instalación, tiempo de ejecución y especiales. Vale destacar que cada tipo de permiso indica el alcance de los datos restringidos a los que puede acceder la app, así como el alcance de las acciones restringidas que puede realizar, cuando el sistema le otorga ese permiso. El nivel de protección de cada permiso se basa en su tipo. Los resultados arrojados trabajan sobre la severidad. Aunque los permisos definidos constituyen permisos, que por lo general solicitan estas aplicaciones de mensajería punto a punto, entre los permisos que solicita la aplicación existen varios casos que podrían constituir riesgos para los usuarios. Estas son características que solicitan aplicaciones maliciosas para enviar sus datos a otras personas y determinar aproximadamente dónde se encuentra el usuario. Se realizó un análisis de la APK WhatsApp versión 2.22.17.76 para comparar los permisos de ambas APK y se encontró que los permisos: android.permission.READ_MEDIA_IMAGES, android.permission.READ_MEDIA_VIDEO y android.permission.POST_NOTIFICATIONS están presentes en esta APK pero no son solicitados por WhatsApp, por lo que se debe prestar atención a estos permisos.
- Chequeo de certificación: Android requiere que todas las APK estén firmadas digitalmente con un certificado antes de instalarlos o ejecutarlos. La firma digital se utiliza para verificar la identidad del propietario para las actualizaciones de la aplicación. Este proceso puede evitar que una aplicación sea manipulada o modificada para incluir código malicioso. Existen cuatro esquemas de certificación JAR v1., APK v2., APK v3.y APK v4. En el análisis de la certificación de la aplicación se encontraron algunos aspectos que son necesarios detallar. Uno de estos es que la aplicación utiliza firma digital v1, la cual puede introducir la vulnerabilidad Janus (CVE-2017–13156), si es la única opción de firma que se tiene disponible. En este caso también se utiliza la versión v2, pero es necesario tenerlo en cuenta para no depender de solo de esta versión de firma, ni utilizarla como forma principal de validación de la apk.
- Análisis del fichero AndroidManifest.xml: ubicado en el directorio raíz de su jerarquía de proyecto. Se encontró una gran cantidad de elementos del propio funcionamiento de la APK que están abiertos o compartidos con otras aplicaciones del dispositivo, por lo que quedan accesibles a cualquier otra aplicación en el dispositivo.
Análisis de código:
- La aplicación utiliza un PRNG que no se anuncia como criptográficamente seguro (RandomCompat.java), entonces es probable que sea un PRNG estadístico y no se debe utilizar en contextos sensibles a la seguridad. Los generadores de números pseudoaleatorios pueden producir números predecibles si se conoce el generador y se puede adivinar la semilla. Puede ser trivial escribir una prueba de concepto para generar el siguiente valor aleatorio en función de los observados previamente, como se hizo para Java Random. En el caso de generadores aleatorios personalizados muy débiles, puede ser posible observar el patrón estadísticamente.
- La depuración remota de WebView está habilitada. (org/thoughtcrime/securesms/WebxdcActivity.java). Cualquiera que se haga con el teléfono desbloqueado puede acceder a los datos de la aplicación. Al conectar el teléfono móvil desbloqueado de un usuario a una computadora portátil, se pueden extraer, por ejemplo, los tokens de autenticación de la APK. Estos tokens de autenticación se pueden copiar y utilizar para obtener acceso permanente a la cuenta del usuario.
- so de un algoritmo criptográfico defectuoso o riesgoso (SHA-1) (org/thoughtcrime/securesms/crypto/PRNGFixes.java , org/thoughtcrime/securesms/mms/Slide.java) : Una aplicación que utiliza un algoritmo que produce un hash que no cumple con las expectativas de seguridad (CWE-328: Use of Weak Hash) para una función hash que permite a un adversario determinar razonablemente la entrada original (ataque de preimagen), encontrar otra entrada que pueda producir el mismo hash (ataque de 2.º preimagen) o encontrar múltiples entradas que evalúen el mismo hash (ataque de cumpleaños).
Ninguno de estos elementos se encontró en el análisis de la APK Whatsapp.
Indicaciones
Se prevé el uso de proxys anónimos para el uso de la aplicación y aplicaciones VPN. La implementación de las siguientes medidas permite minimizar el riesgo de violaciones de seguridad y proteger la privacidad de los usuarios al utilizar proxys anónimos y aplicaciones VPN.
- Establecimiento de una política clara sobre el uso de VPN y proxys anónimos en la organización, incluyendo los casos en que se permiten y los riesgos asociados.
- La selección de proxys anónimos confiables y seguros, que no comprometan la seguridad de la organización ni la privacidad de los usuarios.
- Monitoreo y registro del uso de proxys anónimos y aplicaciones VPN para detectar posibles actividades malintencionadas o violaciones de seguridad.
- Revisión y actualización de las políticas y medidas de seguridad para asegurarse de que se ajusten a los últimos estándares y amenazas de seguridad.