TL;DR
- La versión
10.4.3 de KakaoTalk tiene un problema de validación de deep links que permite a un atacante remoto ejecutar JavaScript arbitrario en WebView y filtrar el token de acceso desde los encabezados de solicitudes HTTP.
- Con ese token, es posible secuestrar la cuenta de otro usuario, registrarla en un dispositivo controlado por el atacante y leer mensajes de chat.
- A este bug se le asignó CVE-2023-51219.
Contexto
- KakaoTalk es la app de chat más popular de Corea, con más de 100 millones de descargas.
- KakaoTalk no usa cifrado de extremo a extremo (E2EE) por defecto.
- Existe una función opcional de E2EE llamada "Secure Chat", pero no soporta mensajería grupal ni llamadas de voz.
Entry Point: CommerceBuyActivity
- El WebView de
CommerceBuyActivity es un punto de entrada clave que merece atención por parte de un atacante.
- Puede iniciarse mediante un deep link (
adb shell am start kakaotalk://buy)
- JavaScript está habilitado (
settings.setJavaScriptEnabled(true);)
- Soporta el esquema
intent://, lo que permite enviar datos a otros componentes privados de la app.
- La validación insuficiente de las URI
intent:// permite potencialmente acceder a cualquier componente de la app.
- Filtra el token de acceso en el encabezado HTTP
Authorization.
DOM XSS mediante redirección de URL
Toma de control de cuentas de Kakao Mail mediante deep links
- Un deep link malicioso puede enviar el token de acceso del usuario al servidor del atacante.
- Con el token de acceso, se puede secuestrar la cuenta de Kakao Mail de la víctima o crear una nueva cuenta de correo para sobrescribir la dirección de correo existente.
Restablecimiento de contraseña de KakaoTalk con Burp
- Al acceder a la cuenta de Kakao Mail de la víctima, se puede intentar un restablecimiento de contraseña.
- Para saltarse la autenticación de dos factores (2FA), se usan Burp para interceptar y modificar solicitudes.
PoC
- El atacante prepara un deep link malicioso que, al ser pulsado por la víctima, filtra el token de acceso.
- Con el token filtrado, el atacante restablece la contraseña de la víctima y registra su propio dispositivo en la cuenta de KakaoTalk de la víctima.
Conclusiones
- Siguen existiendo apps de chat populares donde los mensajes de los usuarios pueden ser comprometidos mediante una cadena de ataque no especialmente compleja.
- Si los desarrolladores de la app cometen algunos errores simples, ni el sólido modelo de seguridad de Android ni el cifrado de mensajes sirven de ayuda.
- Las apps de chat asiáticas siguen estando subvaloradas por la comunidad de investigación en seguridad.
Opinión de GN⁺
- La gravedad de la vulnerabilidad: La vulnerabilidad encontrada en una app tan masiva como KakaoTalk vuelve a recordar la importancia de proteger los datos de los usuarios.
- La responsabilidad de los desarrolladores: Los desarrolladores de apps deben realizar validaciones de seguridad rigurosas, especialmente en funciones relacionadas con datos sensibles.
- Educación del usuario: Los usuarios también deben evitar hacer clic en enlaces sospechosos y reforzar su conciencia de seguridad, por ejemplo activando la autenticación de dos factores.
- Necesidad de investigación en seguridad: La investigación de seguridad sobre apps de chat asiáticas debe intensificarse para descubrir y corregir más vulnerabilidades de forma preventiva.
- Alternativas: Además de KakaoTalk, se pueden considerar apps de mensajería centradas en la seguridad como Signal o Telegram.
Aún no hay comentarios.