Quishing: quando o phishing se esconde atrás de um QR code
“Escaneie este código para assinar o documento.” A frase parece inofensiva, e o quadradinho preto e branco também. Mas atrás desse QR code muitas vezes se esconde uma página de login falsa. A técnica tem nome: quishing, junção de “QR” e “phishing”. Vamos ver por que ela funciona tão bem e como desmascarar e depois denunciar o site escondido por trás.
O que é quishing?
Um QR code não passa de um texto escrito em quadradinhos. Na maioria das vezes, esse texto é um endereço da web. Quando escaneamos, o celular lê o texto e oferece abrir a página.
O quishing reaproveita os cenários clássicos do phishing, mas troca o link clicável por um QR code:
- um documento “para assinar” ou “compartilhado com você”;
- uma autenticação em dois fatores “que precisa ser reativada ainda hoje”;
- uma encomenda retida, uma multa, um reembolso.
Ele também aparece fora do e-mail: adesivos colados sobre os QR codes verdadeiros de parquímetros, carregadores de carro elétrico ou cardápios de restaurante. O princípio é o mesmo: fazer escanear, depois fazer digitar.
Por que um QR code escapa da rede
Os filtros de e-mail são ótimos em uma coisa: ler o texto de uma mensagem, localizar os links e verificar para onde levam. Só que um QR code não é um link, é uma imagem. Para um filtro que não sabe decodificá-la, o e-mail não contém… link nenhum. Parece até mais limpo que uma mensagem comum.
Alguns filtros já sabem ler QR codes. Os golpistas se adaptam dificultando a leitura:
- o QR code vai em um anexo PDF em vez de no corpo da mensagem;
- ele é desenhado com uma tabela de células coloridas ou com caracteres, e não como imagem;
- ele é cortado em duas imagens coladas uma na outra, ou levemente deformado.
Para o olho humano, nada muda: o celular lê o código sem dificuldade. Para o robô, é mais um enigma. É a mesma lógica de esconde-esconde descrita no guia Phishing: como os golpistas fazem seus e-mails chegarem.
O grande salto: do computador para o celular
A verdadeira força do quishing está em outro lugar: ele nos faz trocar de aparelho. O e-mail chega a um computador muitas vezes protegido pela empresa: filtro web, antivírus, análise de links. Mas, para escanear, pegamos o celular. E aí tudo muda:
- o celular muitas vezes é pessoal, conectado pelo 4G ou 5G, fora da rede e das proteções da empresa;
- a tela é pequena: o endereço da página aparece cortado, ou nem aparece;
- a gente faz login rápido, por hábito, entre duas tarefas.
Ou seja, a armadilha não dispara onde estão os guardas. As páginas de quishing costumam ser pensadas para celular. E muitas são páginas “intermediárias”, capazes de contornar a autenticação em dois fatores: esse é o tema do guia AiTM: quando o phishing rouba sua sessão, não só sua senha.
Ler o endereço escondido… sem abri-lo
Para analisar uma campanha de quishing, o primeiro passo é transformar o QR code em texto, sem nunca visitar a página. Há vários jeitos:
- A câmera do celular em geral mostra o endereço antes de abri-lo. A gente lê, não toca.
- Um app leitor de QR code configurado para mostrar o texto sem abrir o navegador.
- No computador, tiramos um print do código e o passamos por um decodificador offline, por exemplo a ferramenta livre
zbarimg:
$ zbarimg capture.png
QR-Code:https://sho.rt.example/x7Kp
Pronto, temos um endereço como outro qualquer. Guardamos com cuidado: é a prova.
Identificar o domínio e a infraestrutura
Um endereço web se lê um pouco como um endereço postal escrito de trás para a frente. O nome que importa, o domínio, fica logo antes da primeira “/” depois do https://. Tudo o que está à esquerda pode ser escolhido livremente pelo dono.
https://login.docs-m1crosoft.example/auth
Aqui, o domínio é docs-m1crosoft.example, não a Microsoft. A palavra “login” no começo não prova nada. Mesma armadilha com microsoft.com.verification.example: o domínio verdadeiro é verification.example. Alguns domínios vão além e usam letras de outros alfabetos parecidas com as nossas: veja Punycode e homógrafos: quando um domínio falso parece o verdadeiro.
Encontrado o domínio, procuramos quem pode agir. Três atores aparecem o tempo todo:
- O registrador é o cartório do nome de domínio: a empresa onde ele foi comprado. Ele pode suspender o domínio, o que derruba todas as páginas que o usam. Ele é encontrado com uma consulta RDAP ou WHOIS sobre o domínio, que também informa a data de criação: um domínio criado há três dias para um “banco” é péssimo sinal.
- A hospedagem é a dona do prédio: a empresa cujo servidor exibe a página. Ela pode remover a página ou desligar o servidor.
- A CDN (como a Cloudflare) é a recepção na frente do prédio: entrega a página no lugar do servidor e esconde o endereço real dele. Ela aceita denúncias, pode exibir um aviso e repassa a queixa à hospedagem.
O que fazer quando o QR code leva a vários domínios?
É muito comum: o QR code não leva direto à página armadilha, mas a uma cadeia de redirecionamentos. Um encurtador de links, depois um serviço legítimo desviado para redirecionar para outro lugar, às vezes uma verificação “Você é humano?” e, por fim, a página de login falsa.
Cada elo tem seu próprio responsável, e cada elo pode ser denunciado:
- A página final primeiro: seu domínio (ao registrador) e seu servidor (à hospedagem ou à CDN).
- O primeiro elo em seguida, aquele escrito no QR code. É um ponto fraco do golpista: um QR code impresso ou enviado não pode mais ser alterado. Se esse primeiro link cair, todos os códigos já distribuídos perdem a utilidade.
- Os intermediários por último: um encurtador de links costuma bloquear links abusivos muito rápido, e um site legítimo usado como trampolim tem todo interesse em saber disso.
Registramos a cadeia inteira, com data e hora: os golpistas trocam com frequência o destino final, e uma denúncia datada ajuda as equipes que a recebem.
Denunciar a campanha com o Baitback
Um QR code não faz o e-mail desaparecer: a mensagem foi enviada por um servidor, que pertence a uma hospedagem. Colamos o código-fonte completo do e-mail no Baitback: a ferramenta encontra o servidor de envio, sua hospedagem e o endereço de denúncia, verifica SPF, DKIM e DMARC e prepara as mensagens de denúncia prontas para enviar. Para entender o que essas linhas de cabeçalho contam, veja Como um e-mail viaja do remetente ao destinatário.
O endereço decodificado do QR code também é denunciado ao registrador, à hospedagem ou à CDN identificados acima, e às plataformas de proteção dos navegadores que o Baitback lembra (Google Safe Browsing, Microsoft, Netcraft…). Em poucas horas, a página pode ser bloqueada para milhões de usuários.
E se já escaneamos e digitamos a senha?
Sem pânico, mas sem demora. De um aparelho de confiança, trocamos a senha da conta afetada, usamos a opção “sair de todas as sessões” quando existir e avisamos o setor de TI se for uma conta de trabalho. Trocar só a senha nem sempre basta: o guia sobre ataques AiTM explica por quê.
- Um QR code é só um endereço escrito em quadradinhos: merece a mesma desconfiança que um link.
- Ele costuma passar pelos filtros porque parece uma imagem, e não um link.
- Ele nos leva do computador protegido para o celular, menos vigiado e com tela menor.
- Decodificamos para ler o endereço sem abrir e isolamos o domínio verdadeiro, logo antes da primeira “/”.
- Cada elo da cadeia (domínio, servidor, redirecionamentos) pode ser denunciado, e o próprio e-mail também.