TL;DR
- A versão
10.4.3 do KakaoTalk tem um problema de validação de deep links que permite a um atacante remoto executar JavaScript arbitrário na WebView e vazar o token de acesso nos cabeçalhos de requisições HTTP.
- Com esse token, é possível comprometer a conta de outro usuário, registrá-la em um dispositivo controlado pelo atacante e ler mensagens de chat.
- Esse bug recebeu o identificador CVE-2023-51219.
Contexto
- O KakaoTalk é o app de chat mais popular da Coreia, com mais de 100 milhões de downloads.
- O KakaoTalk não usa criptografia de ponta a ponta (E2EE) por padrão.
- Há um recurso opcional de E2EE chamado "Secure Chat", mas ele não oferece suporte a mensagens em grupo nem a chamadas de voz.
Ponto de entrada: CommerceBuyActivity
- A WebView de
CommerceBuyActivity é um ponto de entrada importante que merece atenção do atacante.
- Pode ser iniciada por deep link (
adb shell am start kakaotalk://buy)
- O JavaScript está habilitado (
settings.setJavaScriptEnabled(true);)
- Suporta o esquema
intent://, permitindo enviar dados para outros componentes privados do app.
- A validação insuficiente de URIs
intent:// potencialmente permite acesso a qualquer componente do app.
- Vaza o token de acesso no cabeçalho HTTP
Authorization.
DOM XSS via redirecionamento de URL
Sequestro de conta de Kakao Mail via deep link
- Um deep link malicioso pode enviar o token de acesso do usuário para o servidor do atacante.
- Com o token de acesso, é possível comprometer a conta de Kakao Mail da vítima ou criar uma nova conta de e-mail e sobrescrever o endereço de e-mail existente.
Redefinição de senha do KakaoTalk com Burp
- É possível acessar a conta de Kakao Mail da vítima e tentar redefinir a senha.
- Para contornar a autenticação em duas etapas (2FA), o Burp é usado para interceptar e modificar as requisições.
PoC
- O atacante prepara um deep link malicioso que, ao ser clicado pela vítima, vaza o token de acesso.
- O token de acesso vazado é então usado para redefinir a senha da vítima e registrar o dispositivo do atacante na conta de KakaoTalk da vítima.
Conclusões
- Ainda existem apps de chat populares em que mensagens de usuários podem ser comprometidas por uma cadeia de ataque não tão complexa.
- Se desenvolvedores de apps cometem alguns erros simples, o forte modelo de segurança do Android e a criptografia de mensagens não ajudam.
- Apps de chat asiáticos ainda são subestimados pela comunidade de pesquisa em segurança.
Opinião do GN⁺
- Gravidade da vulnerabilidade de segurança: A vulnerabilidade encontrada em um app tão popular quanto o KakaoTalk reforça mais uma vez a importância de proteger os dados dos usuários.
- Responsabilidade dos desenvolvedores: Desenvolvedores de apps devem fazer validações de segurança rigorosas, especialmente em recursos ligados a dados sensíveis.
- Educação do usuário: Usuários também devem evitar clicar em links suspeitos e fortalecer sua consciência de segurança, ativando por exemplo a autenticação em duas etapas.
- Necessidade de pesquisa em segurança: A pesquisa em segurança sobre apps de chat asiáticos precisa ser mais ativa, para que mais vulnerabilidades possam ser descobertas e corrigidas com antecedência.
- Sugestão de alternativas: Além do KakaoTalk, vale considerar apps de mensagens focados em segurança, como Signal e Telegram.
Ainda não há comentários.