Afinal, o quão fácil é manipular mensagens do Telegram após uma invasão? Dá para auditar?

Prof. Dr. Marcos A. Simplicio Jr., 10/Jul/2019

Em poucas palavras: é muito fácil manipular mensagens, e muito difícil fazer uma auditoria capaz de identificar tal alteração. Se quiser entender o porquê, continue lendo.

Identificar manipulações de mensagens em aplicativos de comunicação instantânea, incluindo Telegram, WhatsApp e Signal, é difícil porque os mecanismos de criptografia usados protegem a confidencialidade das mensagens enquanto elas trafegam pela Internet, mas não protegem a integridade das mensagens nos dispositivos dos usuários.  Qual a consequência disso? Por exemplo, em uma conversa direta entre dois usuários A e B, qualquer um deles pode acessar os dados na memória do seu dispositivo e modificar a (e.g., reescrever, adicionar ou remover mensagens). Como não existem mecanismos para detectar onde ocorreram modificações, na melhor das hipóteses se pode identificar diferenças entre o conteúdo nos dispositivos de A e de B, mas não se foi A ou B (ou mesmo ambos!) que fizeram alterações. Isso é uma decisão de projeto desses aplicativos, não uma "falha". Na realidade, o objetivo disso é exatamente garantir que, no caso de vazamentos de dados, o conteúdo não possa ser usado contra a vítima da invasão. Essa propriedade é comumente conhecida na área de segurança da informação como "negação plausível" (do inglês, plausible deniability), "retratabilidade" (do inglês, repudiation) ou "cifração negável" (do inglês, deniable encryption)

Mas como daria para fazer essa manipulação? E a tal auditoria?

No Telegram, existem três pontos relevantes que influenciam a retratabilidade de mensagens: (1) a presença de um servidor para backup em nuvem; (2) a capacidade que usuários têm de apagar mensagens enviadas ou recebidas, localmente e no servidor; e (3) a possibilidade de o aplicativo exportar conversas inteiras em um formato facilmente manipulável. Discutimos esses pontos a seguir:

  1. Servidor de backup em nuvem: quando o Telegram não é usado no modo “Chat Secreto”, a proteção dada às conversas é do tipo “cliente-servidor”. Isso significa que, quando uma mensagem é enviada pelo usuário A para o usuário B, essa mensagem é (1) criptografada por A, (2) enviada via Internet para o servidor do Telegram, (3) decriptografada por esse servidor, (4) criptografada novamente pelo servidor, (5) enviada para B, e finalmente (6) decriptografada por B. Perceba que, nesse processo, o servidor do Telegram consegue ler todas as mensagem, e acaba armazenando uma cópia delas para fins de backup. Assim, ao acessar o Telegram a partir de qualquer dispositivo, pode-se obter todas as mensagens que ainda estiverem no servidor. Além disso, as mensagens no servidor não podem ser editadas pelos usuários após 48h do seu envio! Portanto, em teoria daria para anular a “retratabilidade” do Telegram simplesmente lendo as mensagens, íntegras, obtidas diretamente do servidor. Um detalhe importante, porém, é que as mensagens no servidor podem ser facilmente apagadas, o que nos leva ao nosso 2º ponto.
  2. Apagamento de mensagens: desde Março/2019, o Telegram permite que usuários apaguem, a qualquer momento, mensagens que tenham sido enviadas ou recebidas. Mais do que isso: ao apagar uma mensagem, o usuário pode removê-la não apenas de seu dispositivo, mas de todos os outros dispositivos onde ela esteja armazenada, incluindo o servidor. Enquanto alguns aplicativos marcam que essa remoção ocorreu (e.g., o WhatsApp substitui a mensagem original por "Essa mensagem foi apagada"), no Telegram isso não acontece: a mensagem simplesmente some, como se nunca tivesse existido. Por si só, isso permite tirar completamente uma conversa de contexto (se duvida, veja a piada adulta "Carta romântica ou não?", de Ary Toledo). E isso não é tudo: ao eliminar mensagens usando essa função "remover para todos", o método fácil de auditoria já mencionado, de acessar o backup confiável no servidor, acaba ficando inviável. Assim, se um invasor editar mensagens, salvá-las fora do Telegram, e depois deletar as mensagens originais do servidor, adeus possibilidade de verificar a legitimidade dos dados... Agora, falta só um jeito fácil de editar as mensagens da conta invadida, o que nos leva ao nosso 3º ponto.
  3. Exportação de mensagens via Telegram Desktop: embora seja possível extrair mensagens do Telegram para celular, a forma mais fácil de fazê-lo é via Telegram Desktop, que tem uma função específica para esse fim. Especificamente, a função "Exportar dados do Telegram" do Telegram Deskop gera um arquivo no formato HTML com todas as mensagens do usuário. Acontece que arquivos HTML são facilmente editáveis com qualquer editor de texto (e.g., Notepad) e, sem uma fonte confiável para comparação (2º ponto), não restaria qualquer mecanismo para detectar as modificações feitas.

Prove!

Para provar o quão fácil é manipular mensagens obtidas via invasão do Telegram, e que é difícil para qualquer pessoa (técnica ou não) diferenciar mensagens originais das versões alteradas, fizemos um pequeno experimento prático. Com a ajuda de voluntários, incluindo alunos de pós-graduação da Escola Politécnica da USP, criamos alguns diálogos legítimos no Telegram. Em seguida, as contas dos voluntários foram "invadidas": com a autorização deles, foi inserida no Telegram Desktop a mensagem de SMS que dá acesso a suas contas e a suas conversas. As mensagens foram então exportadas no formato HTML, e parte delas foi manipulada. Isso gerou 8 conversas, divididas em 3 grupos: ao menos 2 delas não sofreram alteração; ao menos 2 delas tiveram seu sentido alterado somente pela deleção de algumas mensagens, tirando-as de contexto; e ao menos 2 delas foram alteradas mais profundamente, com troca de nomes, do horário de envio das mensagens, do conteúdo em si, e/ou com a adição ou remoção de mensagens. O desafio que se coloca a você, leitor, é identificar a qual grupo pertence cada uma das conversas. Caso acredite que faça alguma diferença (sinceramente, não faz, embora algumas reportagens [1][2] deem a entender que faz): em todos os casos, suponha que outras 6.495.510 mensagens obtidas via invasão, distintas das aqui apresentadas, tenham sido verificadas por seus colegas e que, palavra por palavra, as conversas examinadas sejam verdadeiras. Ao final, lhe é fornecida a mensagem original, em formato HTML e em formato PDF, e uma explicação do que foi alterado.

Curiosamente, acredita-se que esse pequeno experimento replica com boa fidelidade o vazamento no caso do Intercept, se não for idêntico (exceto pela "invasão autorizada", obviamente). A razão dessa conjectura é simples: o Telegram, seja para celular ou para Desktop, mostra apenas a hora e o minuto das mensagens; já os dados exportados em HTML dão os instantes de tempo em segundos, a mesma informação "extra" presente em reportagens feitas com o material obtido pelo Intercept.

Daí, você pode tirar suas próprias conclusões sobre o quão tecnicamente difícil é identificar manipulações em conversas obtidas via invasão do Telegram...

Faça a auditoria de mensagens vazadas do Telegram... se puder!

Clique aqui para respoder as perguntas!

Seja você o invasor que manipula conversas do Telegram com este tutorial!

Para fins didáticos, preparamos um pequeno tutorial que mostra como você conseguiria manipular conversas após invadir uma conta no Telegram (no caso, a sua própria!). Acesse o tutorial em PDF aqui.

Perguntas e comentários frequentes

  • Então quer dizer que houve manipulação das mensagens no caso do Intercept? É tudo armação?

Não. É perfeitamente possível que as mensagens vazadas sejam exatamente aquelas trocadas entre os usuários que tiveram suas contas invadidas. Assim como é perfeitamente possível que as mensagens tenham sido alvo de manipulações diversas, como: alteração dos nomes das pessoas que se comunicavam; alteração de datas; alteração de conteúdo; inserção ou deleção de mensagens; etc. Sem uma perícia forense, que parece ser impossível no caso em questão devido à deleção das mensagens pelas vítimas da invasão (e/ou pelo invasor), nada se pode concluir em qualquer dos dois sentidos. Infelizmente, até o momento todas as conclusões de indivíduos ou órgãos de imprensa sobre "as mensagens são autênticas" ou sobre "as mensagens são falsas" não passam de "achismo", pois carecem de qualquer fundamentação técnica ou científica.

  • Então quer dizer que as mensagens que o Intercept recebeu estavam íntegras, sem qualquer manipulação?

Não. É perfeitamente possível que as mensagens vazadas tenham sido alvo de manipulações diversas, como: alteração dos nomes das pessoas que se comunicavam; alteração de datas; alteração de conteúdo; inserção ou deleção de mensagens; etc. Assim como é perfeitamente possível que as mensagens vazadas sejam exatamente aquelas trocadas entre os usuários que tiveram suas contas invadidas. Sem uma perícia forense, que parece ser impossível no caso em questão devido à deleção das mensagens pelas vítimas da invasão (e/ou pelo invasor), nada se pode concluir em qualquer dos dois sentidos. Infelizmente, até o momento todas as conclusões de indivíduos ou órgãos de imprensa sobre "as mensagens são autênticas" ou sobre "as mensagens são falsas" não passam de "achismo", pois carecem de qualquer fundamentação técnica ou científica.

  • Então, o que se pode concluir sobre as informações vazadas?

Rigorosamente nada... Isso não impede que qualquer cidadão tenha opiniões sobre a veracidade das informações de texto vazadas, mas é preciso estar ciente que, tecnicamente, é tão fácil invadir a conta do Telegram de alguém quanto manipular as mensagens que forem lá encontradas antes de encaminhá-las para um jornalista... O Telegram foi projetado dessa forma, então acaba sendo inerente ao aplicativo essa dificuldade de provar a integridade das mensagens, ou usá-las para culpar ou inocentar alguém. Se fosse a Polícia Federal que tivesse encontrado provas diretamente no celular dos suspeitos, sem alertá-los de tal ação (para evitar manipulação ou destruição de provas), ou se fosse possível recuperar mensagens diretamente dos servidores do Telegram, então seria possível verificar sua autenticidade. Entretanto, esse não parece ser o caso: o Intercept se limitou a relatar que os conteúdos foram "enviados por uma fonte anônima"; já as vítimas da invasão afirmam não ter mais as mensagens ou mesmo as contas ativas. Logo, qualquer conclusão sobre as mensagens serem autênticas ou falsas só podem ser consideradas mero "achismo". Talvez possa haver conclusões após serem reveladas mensagens de áudio e vídeo, esses sim passíveis de análise independente usando técnicas diversas. Porém, nenhuma dessas técnicas se aplicam a textos, que é o material aqui sob análise.

  • Ah, mas no caso do Intercept eles verificaram a autenticidade das mensagens recebidas. Eles até disseram que "É um material tão vasto que seria impossível alguém falsificar", então essa história de manipulação não pode ser verdade.

Infelizmente, e por mais que não se duvide que a equipe do Intercept tenha tentado verificar a autenticidade das mensagens, as dificuldades técnicas para fazê-lo com algum grau de confiança é imensa, mesmo para especialistas em segurança da informação. A razão é simples: é tão fácil invadir a conta do Telegram de alguém quanto manipular as mensagens lá encontradas para criar uma conversa que pareça perfeitamente crível. Em particular, a invasão dá ao criminoso a capacidade de deletar quaisquer conjuntos de mensagens que deseje, tanto do servidor do Telegram como dos próprios celulares das vítimas; por si só, isso já permitiria criar conversas fora de contexto. Além disso, ao exportar as mensagens via Telegram Desktop, o conteúdo criado é facilmente manipulável, tanto no sentido de criar ou alterar diálogos. Portanto, ao invadir a conta, o que o invasor consegue na prática é invalidar a credibilidade de todas as mensagens encontradas, impedindo tal verificação de autenticidade. Não é uma questão sobre a idoneidade de jornalistas, ou se eles cometeram ou não algum crime ao obter mensagens privadas. É, isso sim, uma questão sobre a idoneidade da fonte anônima que obteve os dados, e sua potencial motivação para modificar parte do "material tão vasto" obtido. Afinal, nossa experiência mostra que modificar uma mensagem leva alguns segundos, exigindo apenas alguma criatividade e saber usar um editor de texto. Portanto, modificar algumas centenas ou milhares de conversas específicas está muito longe de ser “impossível”, pouco importando o quão “vasto” é o material original.

  • Ah, mas o Intercept colaborou com a Veja e a Folha, e estas últimas verificaram que as mensagens não foram alteradas.

Bem, o que foi verificado por Veja e Folha é se mensagens trocadas com seus jornalistas foram alteradas, comparando-as com as mensagens presentes nos celulares desses jornalistas. Isso de fato permite verificar a integridade das mensagens trocadas com os jornalistas, porém nada mais do que isso... Afinal, nada no Telegram impede que a alteração de mensagens seja feita de forma seletiva, i.e., afetando as mensagens trocadas entre um pequeno grupo de usuários, sem que isso afete outras mensagens. Portanto, não faz sentido usar um conjunto de mensagens X para validar um conjunto de mensagens Y em um cenário em que (1) não parece haver qualquer motivação para alterar X, mas (2) pode haver motivações para alterar Y (e.g., interesses políticos).

A seguinte analogia talvez ajude a entender esse ponto, bastante básico na área de segurança. Suponha que um bandido invada fisicamente uma agência de correios, o que lhe dá acesso a todas as cartas e pacotes de uma cidade. Para verificar se houve alguma malfeitoria, você verificaria se as cartas com contas de telefone foram violadas? Ou talvez as cobranças de água, luz, gás, ou aluguel? Ou então as malas diretas, aquelas com promoções para adquirir algum produto ou serviço? Quem sabe cartas de fãs para seus ídolos? Obviamente, o fato dessas cartas não terem sido violadas nada diz sobre pacotes que de fato são de interesse por bandidos, como caixas contendo produtos ou remessas de cartão de crédito. Em outras palavras, fazer a verificação de milhares de cartas que não teriam interesse para o bandido e com isso concluir algo sobre produtos de valor seria, no mínimo, ingênuo. Agora, perceba que, na discussão acima, as cartas irrelevantes para o atacante correspondem ao conjunto X (i.e., as "mensagens para jornalistas"), e o material com algum interesse financeiro corresponde ao conjunto Y (i.e., as "mensagens trocadas entre os alvos da invasão").

  • Se houve alteração nas mensagens vazadas, por que os alvos da invasão não mostram simplesmente as mensagens originais? O que têm a esconder?!

Esta pergunta ignora completamente o ponto 2 mencionado neste texto... O que impede o invasor de, após a edição, apagar qualquer rastro das mensagens originais das vítimas, e ainda dizer que a vítima quem apagou? Nada. O que impede a vítima de apagar completamente as mensagens comprometedoras, e ainda culpar o invasor por tê-las apagado? Também nada. A partir do momento em que a função “apagar para todos” for utilizada por alguém, essa pergunta deixa de fazer sentido: no máximo, ela serve para desviar a atenção dos problemas técnicos envolvidos ao se tentar “mostrar as mensagens originais”...

  • Mas nesse caso todo, pouco importa a forma, mas sim o conteúdo!

A frase costuma ensejar que "não importa que as mensagens foram obtidas por meio de invasão, mas sim o conteúdo que elas revelam". De fato, do ponto de vista técnico o comentário seria perfeitamente válido em uma condição: se a forma não alterasse o conteúdo... Porém, não é o caso, pois ao invadir a conta de alguém, o invasor consegue todas as informações necessárias para alterar o conteúdo. Logo, no caso em questão a forma com certeza importa, já que nada e absolutamente nada impede o invasor de ter alterado o conteúdo. Apenas para ilustrar a razão para essa frase nem sempre se aplicar, podemos fazer uma analogia simples: pegue uma daquelas garrafas plásticas de água sanitária (=forma) e reutilize-a para transportar um peixe fresco, perfeitamente bom (=conteúdo); você de fato confiaria na qualidade do peixe após o transporte...?

  • Você está inventando essa história de "possibilidade de manipulação" em aplicativos de mensagens só porque quer colocar em dúvida a autenticidade de mensagens vazadas no caso da Lava Jato?

Não é o caso, e posso provar. Como pesquisador na área de segurança, acabo me interessando por análises de diversas soluções que envolvem criptografia e proteção de dados, incluindo aplicativos de comunicação instantânea seguros. Tais análises às vezes são motivadas por pura curiosidade, enquanto em outras ocasiões são feitas em função de demandas externas. Uma dessas análises, com foco no WhatsApp, resultou em uma apresentação em 02/Outubro/2019 para mais de 40 pessoas (ou, se preferir, "testemunhas"), nas dependências de uma empresa privada interessada em usar o WhatsApp Business em seus negócios. Nessa apresentação, foram apresentados diversos potenciais riscos de segurança que precisariam ser considerados ao se utilizar o aplicativo para fins comerciais, bem como formas de mitigação. Dentre os riscos discutidos, estava exatamente a possibilidade de manipulação de mensagens por usuários finais. Esse risco poderia ser mitigado por meio assinaturas digitais, mas propositalmente elas são ausentes no WhatsApp, no Telegram, no Signal, e em aplicativos similares. Isso *não* é uma falha: esses aplicativos foram projetados exatamente para prevenir a verificação da autenticidade das mensagens trocadas, para que eventuais vazamentos de mensagens não possam ser usados contra o usuário que as enviou. Essa conclusão não é puro "achismo", mas baseada em análises de terceiros, como por exemplo: (1) a apresentação "Modifying WhatssApp Messages for Dummies", feita em Março/2016 por Abraham Pasamar, da empresa INCIDE, no Congresso de Segurança FAQin (); (2) o trabalho de pesquisa da Check Point Software Technologies, intitulado "FakesApp: A Vulnerability in WhatsApp", de Agosto/2018; e (3) a discussão feita por Kelby Ludwig, intitulada "An Opinionated Series on Why Signal Protocol is Well-Designed: Deniability" e publicada em Maio/2016, sobre a capacidade de um usuário negar o envio de mensagens mesmo que de fato as tenha enviado.

  • Qual é o objetivo desse material? Ele é de esquerda ou de direita?

Nem de direita, nem de esquerda. É simplesmente um material técnico-científico, contendo exclusivamente alegações que podem ser provadas e verificadas pelos próprios leitores. O objetivo não é "polemizar", nem defender ou atacar quem quer que seja, mas simplesmente conscientizar os interessados no assunto "vazamentos de dados de aplicativos de comunicação instantânea". Mesmo que minimamente, espera-se que este texto ajude a aumentar o nível técnico da discussão, que cada vez mais tem sido politizada para os mais diversos propósitos... Como docente da USP, também tenho esperança que esta análise os experimentos apresentados mostrem a importância da ciência e de conhecimento técnico para se poder avaliar questões do nosso cotidiano. Por mais que cada um tenha o direito de acreditar no que bem entender sobre o caso específico dos vazamentos envolvendo a Operação Lava Jato, eu pessoalmente prefiro acreditar no lema “Scientia Vinces”!

"Posso discordar do que você diz, mas defenderei até a morte o seu direito de dizê-lo"

Evelyn Beatrice Hall