1 pontos por GN⁺ 2023-12-23 | 1 comentários | Compartilhar no WhatsApp

Processo de descoberta

  • Foi estudada a forma como o WhatsApp realiza requisições HTTP por meio do recurso de prévia de links.
  • Foi confirmado que o link e a prévia são enviados separadamente, e com isso foi possível criar com sucesso mensagens em que a prévia é diferente do link real.

Problema #1 - Incompatibilidade na prévia do link

  • Foram analisados o link e os dados de prévia incluídos nas mensagens do WhatsApp para encontrar uma forma de criar inconsistências.
  • Ao interceptar e modificar a mensagem, foi possível enviar com sucesso mensagens em que a prévia e o link real eram diferentes.

Problema #2 - Disfarce de link (2K2E)

  • Foi testada uma forma de alterar a representação do texto usando caracteres Unicode.
  • Usando o caractere U+202E (Right-To-Left Override), foi desenvolvido um método para exibir o link em ordem inversa e, com isso, fazer uma URL falsa parecer uma URL real.

Resultado final

  • Foi criada uma URL que parecia ser do Instagram, mas que na realidade levava ao blog do atacante.
  • Com isso, foi descoberta uma vulnerabilidade que pode fazer o usuário acreditar que está clicando em um link legítimo.

Cenário de ataque

  • O atacante compra um domínio falso e cria uma mensagem usando a prévia de um domínio legítimo.
  • A mensagem é manipulada removendo a propriedade matchedText e alterando a propriedade text com o caractere U+202E e uma URL falsa.
  • Essa mensagem manipulada é então enviada à vítima.

Reação da Meta

  • A Meta possui um sistema capaz de ajustar dinamicamente a lógica de normalização de URL, já que precisa dar suporte a várias plataformas e ambientes.
  • No entanto, a Meta não parece ter intenção de corrigir esse problema de segurança, respondendo apenas se ele for detectado como spam.

Mitigação

  • Como a Meta não pretende corrigir esse problema, não é possível confiar em links no WhatsApp.
  • Antes de clicar em um link, é preciso copiá-lo e verificar na prévia da área de transferência o endereço já normalizado, para confirmar se há caracteres U+202E.

Atualização

  • Além do WhatsApp, existem outros serviços vulneráveis ao 2K2E por falta de normalização adequada.

Opinião do GN⁺:

  • O ponto mais importante deste texto é a vulnerabilidade de clickjacking encontrada no WhatsApp, com uma explicação detalhada de como o ataque pode levar usuários a clicar em links falsos diferentes do destino real.
  • O texto é interessante porque mostra uma falha de segurança inesperada em uma plataforma de mensagens geralmente considerada confiável, lembrando os usuários de que é sempre necessário ter cuidado antes de clicar em links.
  • Além disso, a reação da Meta mostra pouca disposição para resolver o problema de forma ativa, reforçando a necessidade de os próprios usuários redobrarem a atenção com segurança.

1 comentários

 
GN⁺ 2023-12-23
Comentários do Hacker News
  • É uma combinação inteligente de abuso de funcionalidades, mas o impacto de segurança é considerado baixo, já que seriam necessários ataques adicionais, a menos que o atacante seja a polícia, uma agência de inteligência etc. Em termos de precisão técnica, não acho adequado chamar isso de "clickjacking". Clickjacking se refere a uma técnica específica, na qual frames HTML invisíveis são sobrepostos a outro conteúdo.
  • Clickjacking significa que um elemento diferente daquele em que o usuário pretende clicar captura o evento de clique. O atacante pode detectar o que o usuário clicou. O que o OP encontrou é bacana e, na verdade, descobriu uma forma de alterar a exibição de links em outro sistema que não é clickjacking.
  • Os usuários têm dificuldade para reconhecer domínios ao clicar em links, e muitas pessoas não entendem isso nem conseguem diferenciar. Mesmo quando o link parece rastreável e suspeito, ninguém levanta o problema.
  • A Meta precisa reconhecer e corrigir o problema de a URL da mensagem e a URL da prévia poderem ser diferentes. Isso pode ter sido feito para desfazer encurtadores de URL, mas Meta e WhatsApp deveriam ser capazes de encontrar uma solução inteligente.
  • O problema real não é o WhatsApp nem caracteres Unicode invertidos, e sim o fato de a própria URL ser difícil. Até uma URL simples como visa.securesite.com engana muita gente. Não parece que teremos uma boa solução em um futuro próximo.
  • Estou decepcionado que a Meta não tenha corrigido esse problema nem pago uma recompensa de bug bounty ao pesquisador.
  • É interessante que esse ataque tenha sido classificado como "engenharia reversa".
  • RTL tem sido uma grande fonte de vulnerabilidades de segurança desde que existe. Deveria haver uma configuração no sistema operacional para desativar RTL, para que quem não usa RTL não fique exposto a esse risco.
  • O ataque é muito bacana, e o texto é fácil de ler e entender. Fica a dúvida básica se foi usado um depurador no app web do WhatsApp, se foi aplicado no celular ou se foi usado um emulador.
  • Obrigado por compartilhar essa ideia interessante e essa vulnerabilidade. É um resumo conciso e claro.
  • Foi confirmado que o link e a prévia são enviados separadamente. O maior problema é o design da interface, em que o usuário precisa comparar o link e a prévia para se manter seguro.