Cláudio André é especialista em segurança informática e está a desenvolver uma ferramenta de análise para aplicações Android. Quando ouviu falar da muito badala aplicação de segurança associada a Edward Snowden, a Haven, decidiu que também seria interessante analisá-la com a sua ferramenta.
A Haven é uma aplicação que utiliza vários elementos de um smartphone – como a câmara, o microfone e o acelerómetro – para criar um sistema de segurança físico. Na prática a aplicação permite usar estes elementos do smartphone para emular um sistema de vigilância em tempo real. Um smartphone com esta aplicação consegue captar imagens, gravar som e até detetar movimentos feitos num quarto, por exemplo.
Siga o Future Behind: Facebook | Twitter | Instagram
A ideia é que esta ferramenta possa ser uma mais valia para pessoas que estejam em situações cuja segurança é uma incerteza, caso de ativistas, jornalistas ou dissidentes. Devido ao mediatismo e à situação particular de Edward Snowden, a aplicação foi tratada quase como um santo graal da proteção física.
Segundo uma reportagem da Wired, o próprio Edward Snowden usou várias vezes esta aplicação para proteger os seus espaços físicos e equipamentos. Acontece que afinal a Haven não era assim tão segura como se disse ser.
Quando olhou para o relatório de análise que a sua ferramenta tinha feito da Haven, Cláudio André encontrou elementos que chamaram a sua atenção, nomeadamente a existência de um servidor web interno.
“Fui tentar perceber exatamente o porquê de estarem a usar um servidor web interno. (…) A aplicação permite que através desse servidor seja configurado um endereço através do TOR e basicamente possibilita ter acesso remoto aos dados que o telemóvel está a registar”, começou por explicar em entrevista ao FUTURE BEHIND.
Esta funcionalidade foi pensada para que o utilizador da aplicação Haven possa saber através de outro dispositivo o que está a acontecer no seu espaço físico. Imaginando que alguém entrou no seu quarto e agarrou no telemóvel, o smartphone vai enviar uma mensagem cifrada para o utilizador com esse alerta. Assim a pessoa saberá que aquela localização ou aqueles dispositivos podem ter sido comprometidos.
Mas o que Cláudio André descobriu foi que quando alguém acedia às definições da aplicação Haven e carregava no botão ‘Salvar’, mesmo que nenhuma configuração tivesse sido alterada, o sistema iniciava o tal servidor web e sem qualquer palavra-passe definida.
“Qual é o impacto disto? Qualquer pessoa que estivesse no mesmo segmento de rede daquele telefone conseguia ligar-se àquele servidor web sem palavra-passe e conseguia ver todos os alertas”.
Na prática isto significa que alguém que estivesse ligado à mesma rede Wi-Fi do dispositivo que tivesse a aplicação Haven, podia ficar a saber que alguém, naquela localização, estava a usar a aplicação de segurança física por algum motivo. Dito assim pode não parecer uma vulnerabilidade de grande importância, até que se percebe o verdadeiro impacto que pode ter.
A aplicação Haven permite definir um relógio em contagem decrescente que dá tempo ao utilizador para sair do local onde deixa o equipamento. Por exemplo, só ao fim de 30 segundos é que a aplicação vai registar todas as alterações de som, imagem e movimento para justamente não captar dados relativos ao utilizador enquanto este está a abandonar o espaço.
“Obviamente não tens um time out para desligar. O que é que acontece? Quando entras novamente dentro do quarto, vais pegar no telefone e se por acaso olhas para o telefone e vais carregar para desligar, essas fotografias da tua cara vão ficar registadas no teu servidor web e, se por acaso, naquele momento alguém estivesse ligado ao web server, sabia quem era a pessoa que estava a utilizar o telefone”, salienta Cláudio André.
Ou seja, além de ser possível saber que alguém estava a usar a aplicação Haven num determinado local e de ser possível aceder aos registos de atividade da aplicação pela falta de password, também era possível saber quem estava a utilizá-la.
A cronologia de uma falha
A aplicação foi lançada oficialmente, ainda em beta, no dia 22 de dezembro no Google Play, a loja de aplicações do sistema operativo Android. Mas pelos vários artigos que foram elaborados sobre a aplicação é possível perceber que a mesma foi utilizada antes desta data por várias pessoas que quiseram ser utilizadores de teste, incluindo o grupo colombiano de ativistas Movilizatorio
Cláudio André reportou a falha no dia 26 de dezembro, através do email de suporte associado à aplicação Haven, um projeto conjunto do The Guardian Project e da Freedom of the Press Foundation, esta última uma organização da qual Edward Snowden é presidente.
O perito português não recebeu um feedback imediato, mas também não estranhou por ser época de festividades. Estranhou sim quando viu um anúncio no Twitter a dizer que uma nova versão da aplicação estava disponível e descobriu que o erro que tinha reportado fazia parte da lista de correções.
A resposta do The Guardian Project acabaria por chegar pouco tempo depois. Pediram desculpa pelo atraso no feedback, mas a correção que Cláudio tinha sugerido já tinha sido feita por uma outra pessoa na página do GitHub do projeto. Ainda que os detalhes de cada disclosure tenham sido diferentes, o resultado prático final das vulnerabilidades era o mesmo.
Consultando a página do GitHub ficamos a saber que a denúncia que levou à correção da falha foi feita pelo utilizador kevinwallace no dia 24 de dezembro – dois dias antes de Cláudio André – e que foi fechada no dia 29, o dia que corresponde à última atualização de software da aplicação.
Segunda a conta de Twitter da aplicação Haven ficamos a saber que desde o dia do lançamento oficial, perto de 255 mil utilizadores já tinham descarregado a aplicação. Ou seja, durante uma semana vários milhares de utilizadores, provavelmente alguns dos quais em situações delicadas, estavam afinal desprotegidos.
Sim, a aplicação funcionava e cumpria na vertente de proteção – mas ao mesmo tempo permitia que outras pessoas acedessem às informações que a aplicação estava a recolher.
“Acabava por ser um pouco contraproducente ao objetivo da aplicação, ou seja, na prática estava a divulgar que alguém estava a usar a aplicação e conseguia devolver alertas que a aplicação estava a guardar, como a câmara, como o som que é gravado e tudo mais. Imaginemos que dependendo de para onde a câmara está a apontar tipicamente, (…) pode ser possível determinar se há alguma característica daquele quarto através da qual pode perceber-se qual é a localização física onde está aquele telemóvel”, salientou Cláudio André.
O facto de duas pessoas, em tão curto espaço de tempo, terem encontrado a mesma vulnerabilidade, reforça a ideia de que pessoas mal intencionados também podem ter chegado às mesmas conclusões. “Mais gente certamente poderia ter encontrado. Do ponto de vista técnico era uma coisa relativamente simples para alguém que tivesse o mínimo de conhecimento da plataforma Android, conseguia obviamente perceber que aquilo estava a acontecer”.
A exploração da falha em si é que depois podia não ser tão linear. Por exemplo, se a rede Wi-Fi de um hotel contemplasse o isolamento de dados de cada utilizador, seria mais difícil explorar aquela falha da aplicação Haven. Mas tendo em conta que as redes Wi-Fi de acesso público nem sempre têm as melhores configurações de segurança, isso aumentaria a probabilidade de a Haven ser explorada com sucesso.
Uma lição aprendida
Desta vez o facto de a aplicação ser desenvolvida em open source, estando disponível o código-fonte do projeto e sendo possível integrar a contribuição de programadores de todo o mundo, ajudou a resolver num curto espaço de tempo aquela que podia ter sido uma falha muito grave se se tivesse prolongado no tempo.
Também podia ter corrido mal: a denúncia feita por kevinwallace no GitHub foi pública, querendo isto dizer que tanto os ‘bons’ como os ‘maus da fita’ tiveram acesso àquela informação. Imaginando que alguém mal intencionado estava a seguir com atenção a página do GitHub do projeto, podia a partir do dia 24 explorar ativamente a vulnerabilidade.
“O GitHub não acho que seja um ponto seguro para reportar uma vulnerabilidade, porque é público, é para toda a gente”, comentou Cláudio André.
E o facto de haver milhares de programadores a olhar para um determinado sistema não significa automaticamente que esse sistema está totalmente protegido, como alertou o perito em segurança informática. “Isso é um pouco uma falácia, acharmos que o facto de um projeto ser open source tem muita gente a olhar. Um exemplo perfeito disso foi o HeartBleed, é open source, toda a gente acharia que toda a gente estava a olhar para aquilo e no entanto apareceu um HeartBleed e como apareceu o HeartBleed apareceram tantas outras coisas. (…) É obviamente mais fácil quando temos o código-fonte, mas isso não é uma garantia”.
A simples inclusão de uma nova funcionalidade legítima pode fazer com que uma aplicação que era segura passe a ter uma vulnerabilidade, pelo que poderia passar despercebida durante algum tempo perante os olhos da comunidade.
Cláudio André também deixou um alerta mais geral, não especificamente relacionado com a aplicação Haven, mas com a falta de bom senso que por vezes existe em termos de boas práticas de segurança. Como o especialista referiu, não existem soluções definitivas para a segurança informática, mesmo que essa possa ser a mensagem que por vezes determinados projetos tentam passar.
“Do meu ponto de vista, se quero ficar descansado vou levar o equipamento comigo, não vou estar dependente de um telefone, com uma aplicação mobile, com Wi-Fi, dependente para me avisar que alguém está no meu quarto e que pode comprometer o meu portátil. Não faz muito sentido do meu ponto de vista”.