Blog do André

Blog com opiniões esporádicas sobre temas do meu interesse

Mais umas brincadeiras de engenharia social com Punycode

Foi descoberta recentemente mais uma forma de enganar utilizadores na web usando Punycode. A técnica per se não é nova, como se pode comprovar pelo artigo da Wikipedia sobre ataques recorrendo a homografia: consiste em colocar na barra de localização um endereço o mais semelhante possível ao qual se pretende fazer passar. A novidade é o uso de certificados por parte do site do atacante. Ao utilizar um certificado válido, o utilizador vê o endereço que supostamente pretendia aceder, acompanhado do cadeado verde. Ou seja, o navegador acaba por induzir ainda mais o utilizador em erro, dando-lhe o falso feedback de que aquele site é o que pretendia visitar.

Exemplo de análise do certificado no Google Chrome

Na figura pode-se ver o endereço que é, aparentemente, do site da Apple, quando na verdade de trata de um domínio registado com carateres muito semelhantes. Podem ver aqui a prova de conceito: https://www.xn--80ak6aa92e.com. Neste caso, o site do atacante tem um certificado. Ao obter os detalhes do certificado, o nome também aparece convertido. À data de visualização da prova de conceito, o site utilizava um certficado da Let's Encrypt, que é relativamente fácil de obter e instalar, sem burocracia nem pagamentos.

No Firefox, no entanto, um utilizador mais curioso daria com a diferença. No popup que aparece ao clicar no cadeado verde aparece o domínio forjado, no entanto, ao abrir a janela que permite ver os detalhes do certificado, pode-se verificar que o domínio não corresponde.

No Firefox, tem de se ir à janela de análise do certificado para se perceber que o domínio não corresponde ao esperado

Entretanto, os browsers estão a ser atualizados, e este "truque" deixará de ter efeito (no mínimo, espero que o certificado seja apresentado com o nome de domínio real). Mas tenho a certeza que este não será o último episódio de engenharia social envolvendo Punycode.

Via ARSTechnica