Punycode e homógrafos: quando um domínio falso parece o verdadeiro
Olhe estes dois endereços: paypal.com e pаypal.com. Idênticos? Para os nossos olhos, sim. Para um computador, de jeito nenhum: no segundo, o segundo “а” é uma letra do alfabeto cirílico, não um “a” latino. São dois domínios diferentes, que podem pertencer a duas pessoas diferentes. Esse é o princípio dos ataques por homógrafos, e para entendê-los é preciso dar uma voltinha pela forma como a internet escreve os nomes.
Unicode, ASCII e Punycode: três palavras, uma ideia simples
Na origem, os nomes de domínio só aceitavam um alfabeto bem pequeno, chamado ASCII: as letras de a a z sem acento, os números e o hífen. Nada de “é”, nada de “ç”, muito menos árabe, chinês ou cirílico.
Só que o mundo escreve em dezenas de alfabetos. O Unicode é o grande catálogo que dá um número a cada caractere de cada escrita: o “a” latino tem o número U+0061, o “а” cirílico, o U+0430. Mesmo desenho, números diferentes.
Para permitir nomes de domínio em todas as línguas sem mudar a rede inteira, inventou-se um tradutor: o Punycode. Ele transforma um nome escrito em Unicode em um nome que só usa o alfabeto ASCII, e o marca com o prefixo xn--. O navegador mostra a versão bonita; a rede só vê a versão traduzida.
Como funciona um domínio em “xn--”
Vamos a um exemplo perfeitamente honesto: o domínio francês société.fr (“sociedade”). A rede não sabe ler o “é”. O Punycode põe de lado as letras especiais, mantém as comuns e acrescenta no fim um pequeno código que diz onde recolocar os acentos:
société.fr → xn--socit-esab.fr
Encontramos “socit” (as letras comuns) e depois “esab”, o código que indica quais caracteres inserir e onde. O prefixo xn-- só avisa: “atenção, este nome foi traduzido”. Milhões de nomes legítimos funcionam assim, em alemão, árabe, chinês, russo, português. Um xn-- não é suspeito por si só. Ele se torna suspeito quando imita uma marca conhecida.
Os ataques por homóglifo: os falsos gêmeos
Um homóglifo é um caractere que se parece demais com outro. E o Unicode tem muitos: o “а”, o “е”, o “о”, o “р” e o “с” cirílicos são sósias perfeitos dos nossos a, e, o, p e c. O “ο” grego imita o “o”.
O golpista compra um domínio em que uma ou mais letras são trocadas pelo seu sósia. Em 2017, um pesquisador demonstrou isso de forma espetacular: registrou xn--80ak6aa92e.com, que se escreve аррӏе.com com letras todas cirílicas, e vários grandes navegadores mostravam então simplesmente “apple.com” na barra de endereço. Desde então, os navegadores corrigiram esse caso.
Por que o endereço pode parecer legítimo
Os navegadores modernos aplicam regras de prudência: quando um nome mistura alfabetos de forma suspeita, ou se parece demais com um domínio conhecido, eles mostram a forma xn-- no lugar da versão bonita. É uma boa proteção, mas tem limites:
- fora da barra de endereço, essas regras nem sempre valem: no texto de um e-mail, de um SMS, de um PDF ou de um aplicativo de mensagens, a versão “disfarçada” aparece como está;
- as regras variam de um navegador, de uma versão e de um app para outro;
- um olhar apressado, em uma tela pequena, não distingue dois caracteres idênticos. E nem sempre é preciso Unicode:
rnimitam,1imital, como explica o guia Phishing: como os golpistas fazem seus e-mails chegarem.
E, como em qualquer domínio armadilha, o site pode ter um certificado HTTPS válido e um cadeado bonito: eles provam que a conexão é criptografada, não que o site é honesto.
Como verificar de verdade um domínio
Na dúvida, não confiamos no que vemos: fazemos o nome verdadeiro falar.
- Não clicamos. Copiamos o link (clique direito, “copiar endereço do link”).
- Colamos em um conversor de Punycode (há muitos, gratuitos, on-line): se aparecer uma forma
xn--para um nome que deveria ser totalmente comum, é armadilha. - Isolamos o domínio: a parte logo antes da primeira “/”. O guia Quishing: quando o phishing se esconde atrás de um QR code detalha essa leitura.
- Usamos um caminho seguro: um favorito salvo por nós mesmos ou o app oficial. Um gerenciador de senhas também ajuda: ele não se deixa enganar por um sósia e não sugere nada em um domínio falso.
O Baitback faz parte desse trabalho automaticamente: quando colamos um e-mail nele, ele aponta os links em Punycode (forma xn--) e os domínios sósias das marcas que conhece, inclusive por homóglifo, e verifica também o destino final depois dos redirecionamentos.
Identificar o registrador e a hospedagem
Para fazer o domínio sumir, procuramos quem o vendeu e quem o hospeda. Nas ferramentas de consulta, usamos sempre a forma xn--: é o nome verdadeiro, o que os registros conhecem.
- Uma consulta RDAP ou WHOIS sobre o domínio mostra o registrador, seu endereço de denúncia (“abuse”) e a data de criação do domínio. Um sósia de marca criado na semana passada deixa pouca dúvida.
- O endereço IP do site permite achar a hospedagem, ou a CDN que fica na frente, que também aceita denúncias e as repassa.
O registrador é aqui o ator mais eficaz: um domínio que imita uma marca por homóglifo é um caso de abuso muito claro, e a suspensão do nome derruba de uma vez o site, os e-mails e todas as páginas associadas.
Denunciar o domínio
Uma boa denúncia cabe em poucas linhas: a forma Unicode e a forma xn-- do domínio, a marca imitada, o endereço completo da página, um print, a data e a hora. Enviamos ao registrador e à hospedagem ou à CDN, e avisamos a marca imitada.
Se o domínio chegou por e-mail, começamos pelo Baitback: colamos o código-fonte completo da mensagem, a ferramenta encontra o servidor de envio e sua hospedagem, identifica os links suspeitos e prepara as mensagens de denúncia. Ela também lembra as plataformas dos navegadores (Google Safe Browsing, Microsoft, Netcraft…), que podem exibir um aviso vermelho a todos os visitantes em poucas horas.
- Duas letras idênticas aos olhos podem ser dois caracteres diferentes para o computador: é o homóglifo.
- O Punycode traduz nomes em Unicode para uma forma ASCII que começa com
xn--. - Um
xn--não é suspeito por si só, mas é em um nome que deveria ser comum ou que imita uma marca. - Verificamos um domínio copiando o link, não olhando para ele, e usamos um favorito ou o app oficial.
- Denunciamos ao registrador com as duas formas do nome: a suspensão derruba tudo de uma vez.