TL;DR
- La version
10.4.3 de KakaoTalk présente un problème de validation des liens profonds qui permet à un attaquant distant d’exécuter du JavaScript arbitraire dans une WebView et d’exfiltrer le jeton d’accès dans les en-têtes de requêtes HTTP.
- Ce jeton peut ensuite être utilisé pour compromettre le compte d’un autre utilisateur, l’enregistrer sur un appareil contrôlé par l’attaquant et lire ses messages.
- Ce bug a reçu l’identifiant CVE-2023-51219.
Contexte
- KakaoTalk est l’application de chat la plus populaire de Corée, avec plus de 100 millions de téléchargements.
- KakaoTalk n’utilise pas le chiffrement de bout en bout (E2EE) par défaut.
- Il existe une fonctionnalité E2EE optionnelle appelée "Secure Chat", mais elle ne prend pas en charge la messagerie de groupe ni les appels vocaux.
Point d’entrée : CommerceBuyActivity
- La WebView de
CommerceBuyActivity constitue un point d’entrée clé auquel un attaquant peut s’intéresser.
- Elle peut être lancée via un lien profond (
adb shell am start kakaotalk://buy)
- JavaScript y est activé (
settings.setJavaScriptEnabled(true);)
- Le schéma
intent:// est pris en charge, ce qui permet de transmettre des données à d’autres composants privés de l’application.
- La validation insuffisante des URI
intent:// permet potentiellement d’accéder à n’importe quel composant de l’application.
- Le jeton d’accès fuit dans l’en-tête HTTP
Authorization.
DOM XSS via redirection d’URL
Compromission d’un compte Kakao Mail via un lien profond
- Un lien profond malveillant peut envoyer le jeton d’accès de l’utilisateur vers un serveur contrôlé par l’attaquant.
- Ce jeton permet soit de compromettre le compte Kakao Mail de la victime, soit de créer un nouveau compte mail pour écraser l’adresse e-mail existante.
Réinitialisation du mot de passe KakaoTalk avec Burp
- Une fois l’accès obtenu au compte Kakao Mail de la victime, il est possible de lancer une réinitialisation du mot de passe.
- Pour contourner l’authentification à deux facteurs (2FA), Burp est utilisé afin d’intercepter et de modifier les requêtes.
PoC
- L’attaquant prépare un lien profond malveillant qui, une fois cliqué par la victime, exfiltre le jeton d’accès.
- Le jeton d’accès exfiltré est ensuite utilisé pour réinitialiser le mot de passe de la victime et enregistrer l’appareil de l’attaquant sur le compte KakaoTalk de celle-ci.
Enseignements à retenir
- Il existe encore des applications de chat populaires dont les messages peuvent être compromis via une chaîne d’attaque relativement simple.
- Si les développeurs d’applications commettent quelques erreurs élémentaires, le modèle de sécurité robuste d’Android et le chiffrement des messages ne suffisent plus.
- Les applications de chat asiatiques restent sous-étudiées par la communauté de la recherche en sécurité.
L’avis de GN⁺
- Gravité de la faille de sécurité : la vulnérabilité découverte dans une application aussi grand public que KakaoTalk rappelle une fois de plus l’importance de la protection des données des utilisateurs.
- Responsabilité des développeurs : les développeurs d’applications doivent appliquer des validations de sécurité rigoureuses, en particulier pour les fonctionnalités liées à des données sensibles.
- Sensibilisation des utilisateurs : les utilisateurs doivent aussi éviter de cliquer sur des liens suspects et renforcer leur hygiène de sécurité, notamment en activant l’authentification à deux facteurs.
- Nécessité de la recherche en sécurité : la recherche en sécurité sur les applications de chat asiatiques doit être plus active afin d’identifier et de corriger davantage de vulnérabilités en amont.
- Proposer des alternatives : au-delà de KakaoTalk, il peut être utile d’envisager des applications de messagerie axées sur la sécurité comme Signal ou Telegram.
Aucun commentaire pour le moment.