Divulgação de número de telefone e geolocalização por vulnerabilidade no Telegram

imagem

Recentemente, o Telegram tem discutido cada vez mais o tópico de romper pessoas e vazar dados pessoais. Fiquei imaginando o quanto o próprio ecossistema do Telegram é resistente a esses vazamentos.

Sob o corte está a história de como encontrei um bug no Telegram. O bug permite enganar o usuário e pressioná-lo a compartilhar seus dados sem saber - geolocalização e número de telefone.

Veja como funciona:


A complexidade do sistema sempre foi um inimigo da segurança.

O telegrama cresceu, deixou de ser apenas um mensageiro e tornou-se uma grande plataforma de mídia com funcionalidade rica. A API do Telegram Bot se destaca como uma casa separada, permitindo criar aplicativos inteiros dentro do messenger - os chamados bots.

Provavelmente, todos que tentaram criar seu próprio bot já sabem que o usuário pode receber uma solicitação de seu número de telefone usando um botão especial.

O texto neste botão pode ser definido como qualquer um. Além disso, o bot pode usar os mesmos botões para outras interações:

imagem

Após clicar no botão, o usuário receberá um aviso de que seu contato será enviado ao bot:

imagem

Esta mensagem fala claramente sobre o risco de desanonimização e alerta o usuário atencioso sobre ações perigosas para ele.

Passando pelas atualizações da API, lembrei que, em algum momento, o Telegram deu aos usuários a oportunidade de fazer sua própria localização do messenger. Houve exemplos em que a localização foi usada para alterações em quadrinhos da interface. Nesse momento, ocorreu-me o mesmo pensamento que você poderia fazer agora:

Mas e se você tentar "traduzir comicamente" uma caixa de diálogo avisando o usuário sobre a transferência do número de telefone para o bot, substituindo o texto?

imagem imagem

Inicialmente, pensei que conseguir que um usuário instalasse uma localização de arquivo xml estranha no aplicativo seria muito mais difícil do que convencer a clicar em Compartilhar contato. De fato, assim, usando um arquivo xml, o Telegram se ofereceu para distribuir suas localizações entre interlocutores.

Então pensei: até me deparar com o manipulador de links setlanguage no código-fonte do aplicativo Android .

imagem

Exatamente o que é necessário!

Aconteceu que o Telegram havia muito tempo tornara uma plataforma de tradução, translation.telegram.org, acessível a todos os usuários do Telegram, e agora não há necessidade de transferir nenhum arquivo xml.

imagem

Basta clicar no link t.me/setlanguage/%lang%, após o qual o usuário verá uma caixa de diálogo solicitando a instalação de um novo idioma. E essa janela é muito menos intimidadora do que uma mensagem sobre uma solicitação de número de telefone:

imagem

Como funciona?


Registre-se em traduções.telegram.org .

Adicione seu idioma, traduza os elementos de interface necessários e mais alguns outros .

Na localização, você pode escrever o que quiser. Escreveremos um texto inofensivo em vez de um aviso terrível sobre o compartilhamento de geolocalização e número de telefone. Fazemos o mesmo para as outras plataformas.

Nossa linguagem venenosa está pronta. Resta deslizá-lo para o usuário.

imagem

Ainda não consegui encontrar uma maneira de descobrir se o usuário instalou a localização oferecida a ele. Não havia estatísticas de idioma no traduções.telegram.org, nem alterações no perfil do usuário. A API do bot permite descobrir o idioma do usuário através do parâmetro language_code, mas seu valor é obtido das configurações do sistema. Alterar o idioma no aplicativo não afeta o parâmetro.

Bem, basta adicionar um pequeno atraso após a mensagem com um link para o idioma. Depois de escolher um idioma, sugerimos que o usuário se familiarize com o menu bot. Quando você clica em OK nesta caixa de diálogo, o número vaza para o bot com uma mensagem e o bot exclui essa mensagem imediatamente. Se o bot usa o webhook para receber atualizações, a mensagem é excluída mais rapidamente e o usuário pode não entender que acabou de enviar seu contato.

A propósito, da mesma forma que uma solicitação de contato, um bot pode solicitar que um usuário compartilhe sua localização geográfica. Sim, e esta caixa de diálogo também pode ser "traduzida".

Como consertar


Obviamente, você não deve permitir que os usuários traduzam absolutamente toda a interface sem moderação. A propósito, a moderação da tradução está ativada para, por exemplo, esta caixa de diálogo translator.telegram.org/rutech/ios/unsorted/AuthCode.Alert . A necessidade de moderação é relatada a nós pelo rótulo Crítico.

imagem

Acontece que uma omissão tão pequena como a falta de um rótulo Crítico para diálogos sobre compartilhamento de números e geolocalização leva a um vazamento. Um vazamento de dados muito sensíveis, como um mensageiro construindo seu marketing em torno de privacidade / segurança.

Um mensageiro vinculado ao seu número de telefone pessoal, por definição, não pode ser particular. Isso só pode aumentar o custo de revelar sua identidade.

Essa vulnerabilidade caiu no programa de telegrama de recompensas por bugs e foi avaliada em 100 €.

PS

Venha para o Telegram chat @secinfosec . Lá, compartilhamos nossa experiência e discutimos tudo relacionado à segurança da informação: um bug de recompensa, protestos, segurança prática e em papel, novas ameaças e métodos para lidar com eles.

All Articles