Em outubro de 2017 foi descoberta uma vulnerabilidade no cliente Windows do Telegram que estava a ser explorada massivamente pelos hackers. A vulnerabilidade diz respeito a um ataque right-to-left override e que acontece quando um utilizador envia p.ex., um ficheiro.
Ataque right-to-left override
O carater especial right-to-left override (RLO) é usado para inverter a ordem dos carateres que vêm depois desse caratere na sequência de carateres. Na tabela de carateres Unicode, é representado como ‘U + 202E’; uma área de uso legítimo p.ex. ao digitar texto árabe. Durante um ataque, este carater pode ser usado para “enganar” a vítima. Geralmente, é usado ao exibir o nome e a extensão de um arquivo executável: um pedaço de software vulnerável a este tipo de ataque exibirá o nome do arquivo de forma incompleta ou inversa.
New Mac Malware uses Right-to-Left override character (U+202E) to cause OS X to display this… http://t.co/wGxuRK1ReG pic.twitter.com/DWfPOYkZgO
— Mikko Hypponen (@mikko) July 15, 2013
Executar um ataque no Telegram
Abaixo, segue como um atacante pode explorar esta falha:
O atacate prepara o malware para ser enviado em uma mensagem. Por exemplo, um arquivo JS é renomeado da seguinte maneira:
evil.js -> photo_high_re*U+202E*gnp.js
Onde*U+202E* é o carater RLO para fazer com que o Telegram mostre a string gnp.js no sentido inverso. Observe que esta operação não altera o arquivo real – ele ainda possui a extensão * .js.
- O atacante envia a mensagem e – surpresa! – o destinatário vê um arquivo de imagem PNG recebido em vez de um arquivo JS:
- Quando a vítima clica no “ficheiro” aparece a seguinte notificação:
Importante realçar que, esta notificação só é apresentada se não tiver sido desativada nas configurações do sistema. Em contrapartida, se o utilizador clicar em ‘Executar’, o arquivo mal-intencionado é iniciado automaticamente.
Esta descoberta é uma obra Russa. Muitos artefactos descobertos durante a investigação apontam para o envolvimento de hackers Russos.
Ao que parece esta vulnerabilidade já não ocorre nas novas versões do Telegram. Não são conhecidas as versões afetadas, portanto, atualize o seu software!