QRLJacking e o sequestro de Whatsapp

 

Neste vídeo além do QRLJacking, apresento as técnicas de Engenharia Social, MITM, DNS Spoofing e Session Hijacking.

“O QRLJacking ou o código de resposta rápida, é um vetor de ataque de engenharia social simples capaz de sequestrar sessões afetando todos os aplicativos que dependem do recurso “Login com código QR” como uma maneira segura de acessar contas.”

 

 

O que é o QRLJacking Attack?

Em 2016 Mohamed Abd Elbaset demonstrou como é possível acessar uma conta do WhatsApp na versão web.

O QRLJacking ou o código de resposta rápida, o Login Jacking é um vetor de ataque de engenharia social simples capaz de sequestrar sessões afetando todos os aplicativos que dependem do recurso “Login com código QR” como uma maneira segura de acessar contas. De maneira simples, em poucas palavras, a vítima “lê” os resultados do código QR do invasor do sequestro de sessão.

QRLJacking Attack Flow

Veja como o ataque QRLJacking funciona nos bastidores:

  1. O invasor inicializa uma sessão QR do lado do cliente e clona o QR Code de login em um site de phishing “Agora, uma página de phishing bem elaborada com um QR Code válido e atualizado regularmente está pronta para ser enviada a uma vítima.”
  2. O atacante envia a página de phishing para a vítima. (muitos vetores de ataque eficientes serão esclarecidos mais adiante neste artigo)
  3. A vítima digitaliza o código QR com um aplicativo móvel direcionado específico.
  4. O atacante ganha controle sobre a conta da vítima.
  5. O serviço está trocando todos os dados da vítima com a sessão do atacante.

Figura (1) Como funciona o QRLJacking Attack

Implicações de QRLJacking

Sequestro de contas

O ataque QRLJacking oferece aos invasores a capacidade de aplicar um cenário completo de sequestro de contas no recurso vulnerável de Login com QR Code, resultando em roubo de contas e afetação de reputação.

Divulgação de informação

Quando a vítima digitaliza o código QR, ele está fornecendo muito mais informações ao invasor, por exemplo (sua localização atual precisa do GPS, tipo de dispositivo, IMEI, informações do cartão SIM e outras informações confidenciais que o aplicativo cliente apresenta no processo de login)

Manipulação de dados de retorno de chamada

Quando o invasor recebe os dados que esclarecemos no ponto “Divulgação de informações”, alguns desses dados são usados ​​para se comunicar com os servidores de serviço para esclarecer algumas informações sobre o usuário que podem ser usadas posteriormente no aplicativo do usuário. Infelizmente, às vezes esses dados são trocados por uma conexão de rede insegura, o que facilita o controle pelo invasor, permitindo a alteração ou até a remoção deles.

Como exemplo, o WhatsApp envia de volta a versão do navegador, a versão do SO e o local atual do navegador. Graças ao ataque QRLJacking, agora esses dados estão do lado do atacante, o Attacker pode interceptar e alterar esses dados para envenenar a data de logon de login no lado da vítima. veja figura (2) e figura (3)

Figura (2) Os dados de registro do aplicativo WhatsApp foram manipulados no lado da vítima. Isenção de responsabilidade: este problema foi relatado em 28 de setembro de 2015 no site de suporte e não obtivemos resposta (números de relatório: 22730155, 22808794 e 24029036)

Figura (3) Proxy Burpsuite que intercepta os dados de retorno de chamada no lado do atacante enquanto o QR é gerado Isenção de responsabilidade: este problema foi relatado em 28 de setembro de 2015 no site de suporte e não obtivemos resposta (números de relatório: 22730155, 22808794 e 24029036)

QRLJacking e vetores avançados de ataque na vida real

Como todos sabemos, se combinarmos alguns vetores de ataque, podemos obter um resultado maior. O ataque QRLJacking pode ser combinado com outros poderosos vetores e técnicas de ataque para torná-lo mais confiável e confiável. aqui estão alguns exemplos:

Técnicas de engenharia social (ataques direcionados)

Um invasor qualificado de engenheiro social achará fácil convencer a vítima a escanear o QR Code clonando toda a página de login do aplicativo da Web com uma exata, mas com seu próprio QR Code do atacante.

Sites e serviços altamente confiáveis ​​hackeados

Os sites invadidos são propensos a serem injetados com um script que exibe um anúncio ou uma seção recém-adicionada exibe uma oferta interessante, se o usuário digitalizar esse código QR com um aplicativo móvel direcionado específico, sua conta será invadida.

Stripping SSL

A remoção de SSL é um vetor de ataque que consiste em remover a criptografia SSL de um site e forçá-lo a funcionar em uma versão não segura. Os sites sem a “Política HSTS” ativada são propensos a serem removidos, o que oferece ao invasor várias opções para manipular o conteúdo das páginas do site, por exemplo, “alterando as seções de login do QR Code”.

Redes de entrega de conteúdo inseguras (rebaixamento de CDNs)

Um recurso de Login por QR Code bem implementado usa uma imagem de código QR base64 gerada e bem posicionada em uma página segura, o que dificulta sua manipulação se este site estiver trabalhando com HTTPS e forçando HSTS, mas infelizmente muitos aplicativos e services usa um processo de geração de imagem QR baseado em CDN. Às vezes, esses CDNs são armazenados em servidores vulneráveis ​​a ataques de downgrade de HTTPS. Os invasores encontrarão uma maneira de fazer o downgrade dessas conexões seguras, redirecionar os URLs da CDN para seu próprio QR Code e, como o QR Code é uma imagem, isso resultará em um “conteúdo misto passivo”, portanto, o navegador não encontrará nenhum problema para visualizá-lo. a página de login do aplicativo Web em vez da página original.

Tráfego não seguro pela LAN

Este é o vetor de ataque mais interessante para atacar os usuários locais que exploram sites não protegidos pelas redes de área local. O atacante aqui está executando o MITM (ataque do homem no meio) contra sua rede de área local, envenenando o tráfego em tempo real, injetando um arquivo JS em todas as páginas da web não protegidas, resultando no que é claramente mostrado na figura (4) abaixo. 

Figura (4) – Uma caixa de luz simples injetada no site http da Amazon solicitando ao usuário que escaneie o QR Code para obter um ano como um serviço gratuito do WhatsApp.

Isenção de responsabilidade: este problema foi relatado em 18 de fevereiro de 2016 no site de suporte e não obtivemos resposta (números de relatório: 24058882 e 24058883)

Má implementação / lógica

Uma lógica de implementação incorreta dos logins do código QR pode resultar em cenários mais fáceis de aquisição de contas. Durante nossa pesquisa, encontramos um exemplo específico: um aplicativo de bate-papo solicita que você escaneie o código QR de outras pessoas para adicioná-los como amigos, até que aqui seja normal e não haja problemas, mas quando se trata do processo de login, é um grande problema. Infelizmente, o aplicativo implementou o recurso “login pelo QR code” na mesma tela que você está usando para adicionar um amigo. Imagine que alguém clonou o código QR de login e disse: “Ei, este é o meu QR Code, digitalize-o para ser meu amigo, você digitalizou, Boom ”, você perdeu sua conta.

Recomendações e Mitigações

Nossa principal recomendação é parar de usar o Login com código QR, exceto quando for necessário, também existem várias maneiras de atenuar esse problema e aqui estão algumas maneiras de serem usadas juntas ou autônomas:

  1. Confirmação da sessão, recomendamos a implementação de uma mensagem / notificação de confirmação exibindo informações características sobre a sessão feita pelo cliente / servidor.
  2. Restrições de IP, restringir qualquer processo de autenticação em redes diferentes (WANs) minimizará a janela de ataque.
  3. Restrições com base no local, restringir qualquer processo de autenticação com base em diferentes locais minimizará a janela de ataque.
  4. Autenticação baseada em som, uma das técnicas para mitigar esse tipo de ataque [e manter o mesmo nível de usabilidade para não exigir nenhuma interação adicional do usuário que não seja a digitalização do QR] é adicionar uma etapa de autenticação baseada em som ao processo, vimos esse tipo de tecnologia em que é possível gerar dados exclusivos e convertê-los em áudio que pode ser reconhecido de volta à sua forma original [SlickLogin e Sound-Proof], para que seja possível incluir essa tecnologia no processo.

O objetivo desta etapa adicional é garantir que o código QR digitalizado seja gerado no mesmo local físico do dispositivo móvel que está realizando a verificação e, portanto, eliminando a possibilidade de um invasor remoto enganar o usuário na digitalização de seu código QR.

Figura (5) Ilustração do processo de login [login com código QR + autenticação de som]

O cenário de ataque (com a mitigação):

  1. O atacante visita o site e abre uma sessão.
  2. O site gera código QR que contém uma chave de sessão.
  3. O atacante cria um site de phishing com o QR Code recebido e o envia ao usuário.
  4. O usuário verifica o QR Code do invasor no site de phishing.
  5. O aplicativo móvel gera o som da autenticação e o reproduz no site de phishing.
  6. O site de phishing falha ao processar e capturar o áudio da autenticação, pois requer permissões adicionais do navegador.
  7. Mesmo que o invasor tente gerar o som da autenticação com base no (ID do usuário), ele ainda não possui a chave privada.

Figura (6) Uma ilustração do processo de login [login do código QR + autenticação de som] ataques e atenuação

 

Adaptação e tradução de:

https://github.com/OWASP/QRLJacking/wiki/QRLJacking-Attack

https://github.com/OWASP/QRLJacking/wiki/QRLJacking-and-Advanced-Real-Life-Attack-Vectors

https://github.com/OWASP/QRLJacking/wiki/Recommendations-and-Mitigations