Estudante da Universidade do Porto encontra falha no “motor” da app de rastreio à Covid-19

André Cirne, aluno do mestrado de Segurança Informática, descobriu uma falha num sistema que serve de base às aplicações de "contact tracing", incluindo da portuguesa STAYAWAY. Problema foi corrigido.

Um estudante da Universidade do Porto encontrou uma falha no sistema que serve de base a várias apps de rastreio à Covid-19, incluindo a portuguesa STAYAWAY. O erro, que já foi corrigido, permitia a uma pessoa mal-intencionada marcar-se como infetada na aplicação, emitindo um falso alerta para os telemóveis de outras pessoas com que se tivesse cruzado nos últimos dias.

A falha foi encontrada por André Cirne, estudante do mestrado em Segurança Informática da Faculdade de Ciências. O problema estava numa componente de um sistema chamado DP-3T, que “implementa o funcionamento de toda a aplicação”, usando o Bluetooth dos telemóveis para detetar possíveis casos de contágio. Segundo André Cirne, a falha técnica permitia a qualquer pessoa, sem a validação de um médico, marcar-se como tendo sido diagnosticada com Covid-19, possibilitando o envio de falsos positivos.

O ECO confirmou junto do INESC TEC que a vulnerabilidade também afetou a aplicação portuguesa STAYAWAY, que recorre ao mesmo sistema DP-3T onde foi detetado o erro. Contudo, a aplicação ainda só está disponível para um grupo restrito de utilizadores no país, uma vez que ainda não foi lançada a nível nacional, pelo que não há motivos para acreditar que tenha sido explorada para emitir alertas maliciosos. “Era uma vulnerabilidade que tínhamos também num dos servidores. Foi corrigida no mesmo dia”, confirmou fonte do instituto.

“Foi no ponto de como anunciar que estou infetado que apareceu a vulnerabilidade”, explica André Cirne. Quando um doente testar positivo à Covid-19, um médico dar-lhe-á um código de 12 dígitos para que possa marcar-se como infetado na STAYAWAY. “Esse código vai ter um tempo limitado para ser usado, mas tem de ser autenticado pela autoridade de saúde. A autoridade vai confirmar se o código é válido ou não” e, depois, passa uma espécie de “assinatura” digital que permite ao doente carregar para um servidor a informação que permite alertar quem esteve próximo dele nos últimos dias.

Essa informação é composta por códigos aleatórios gerados e emitidos pelos telemóveis que têm a aplicação. À medida que um telemóvel vai emitindo o seu próprio código (que muda periodicamente), regista também os códigos dos telemóveis nas redondezas. “O problema estava no servidor que recebe esses códigos. A forma como estava implementada a verificação da assinatura da autoridade de saúde estava mal feita e não precisava do código dado pela autoridade de saúde”, continua André Cirne. Contas feitas, permitiria a qualquer pessoa baralhar o sistema e, potencialmente, espalhar o pânico ou gerar constrangimentos aos médicos, levando pessoas saudáveis a contactarem as autoridades de saúde.

Não há sistemas infalíveis, mas…

Em informática, é comum dizer-se que todos os sistemas são infalíveis até deixarem de o ser. Há sempre uma vulnerabilidade desconhecida à espera de ser encontrada. Pode ser descoberta por alguém com más intenções, ou por pessoas como André Cirne, que a reportam aos programadores responsáveis e tentam ajudar a corrigir os problemas.

O aluno de mestrado da Universidade do Porto conta ao ECO que, inicialmente, reportar o problema veio a revelar-se… bem… um problema. “Não tinham indicações concretas do que fazer caso alguém encontrasse uma vulnerabilidade”, diz. Sem querer, acabaria por abrir um precedente. Se fosse hoje, tudo seria mais simples: “Comentei isso com quem estava na organização e disseram que vão ter canais abertos.” Assim, a próxima pessoa a detetar problemas terá uma via de contacto aberta para o fazer junto dos responsáveis do DP-3T. E também do próprio INESC TEC, que já terá também uma linha aberta para quem detete eventuais problemas de segurança, assegura André Cirne.

Questionado sobre se considera que esta falha cria problemas de confiança na aplicação STAYAWAY, André Cirne responde que ainda não decidiu se a vai usar. A falha “não está na aplicação em si, verdade”, reconhece. “Agora, é um ponto crítico para toda a aplicação. Sem este serviço, a aplicação passa a não funcionar. O objetivo é conseguirmos ter uma informação fidedigna, de saber se estivemos em contacto ou não” com pessoas infetadas, justifica. Assegura, contudo, que o sistema DP-3T “está muito bem construído” e que o protocolo “garante privacidade”. “Isso não está posto em causa”, reforça.

Tudo isto só foi possível porque tanto o DP-3T como a STAYAWAY têm código aberto, o que permite que qualquer pessoa com alguns conhecimentos técnicos possa descarregar, escrutinar e analisar o que esta aplicação de contact tracing funcionar. No entanto, mesmo no caso da STAYAWAY, estas aplicações recorrem, em última instância, a um sistema que foi desenhado pela Google e pela Apple. Esse sistema, chamado GAEN, não tem código aberto (a Google publicou “partes” do mesmo, mas não o código todo, explica André Cirne).

“Tive oportunidade de olhar para a aplicação da Suíça, como implementaram [os sistemas]. Posso pegar no repositório, compilar e comparar com o que está na App Store [loja de aplicações da Apple]. Com o GAEN nunca vou poder fazer isso”, desabafa o estudante, criticando, deste modo, a opacidade da plataforma que foi desenhada pelas duas multinacionais.

De resto, este receio também já tinha sido levantado pela Comissão Nacional de Proteção de Dados (CNPD), que se mostrou reticente com o uso do GAEN por parte da aplicação de contact tracing portuguesa. Na visão da entidade liderada por Filipa Calvão, as duas gigantes tecnológicas detêm o controlo do sistema e podem mudar as regras do jogo a qualquer momento.

Neste momento, com a vulnerabilidade já corrigida, o INESC TEC planeia lançar a STAYAWAY ao público dentro de dias. A aplicação já foi aprovada pela Google e já está na Play Store, ainda que de forma oculta, visível apenas para os participantes do piloto que está a ser realizado em Portugal. A primeira atualização chegou esta quinta-feira à noite aos telemóveis com a aplicação, corrigindo ou aperfeiçoando algumas coisas, confirmou ao ECO fonte do instituto. Mas ainda falta a inclusão da STAYAWAY na App Store, numa altura em que o enquadramento legal da aplicação já foi promulgado pelo Presidente da República.

Quanto vale uma notícia? Contribua para o jornalismo económico independente

Quanto vale uma notícia para si? E várias? O ECO foi citado em meios internacionais como o New York Times e a Reuters por causa da notícia da suspensão de António Mexia e João Manso Neto na EDP, mas também foi o ECO a revelar a demissão de Mário Centeno e o acordo entre o Governo e os privados na TAP. E foi no ECO que leu, em primeira mão, a proposta de plano de recuperação económica de António Costa Silva.

O jornalismo faz-se, em primeiro lugar, de notícias. Isso exige investimento de capital dos acionistas, investimento comercial dos anunciantes, mas também de si, caro leitor. A sua contribuição individual é relevante.

De que forma pode contribuir para a sustentabilidade do ECO? Na homepage do ECO, em desktop, tem um botão de acesso à página de contribuições no canto superior direito. Se aceder ao site em mobile, abra a 'bolacha' e tem acesso imediato ao botão 'Contribua'. Ou no fim de cada notícia tem uma caixa com os passos a seguir. Contribuições de 5€, 10€, 20€ ou 50€ ou um valor à sua escolha a partir de 100 euros. É seguro, é simples e é rápido. A sua contribuição é bem-vinda.

António Costa
Publisher do ECO

5€
10€
20€
50€

Comentários ({{ total }})

Estudante da Universidade do Porto encontra falha no “motor” da app de rastreio à Covid-19

Respostas a {{ screenParentAuthor }} ({{ totalReplies }})

{{ noCommentsLabel }}

Ainda ninguém comentou este artigo.

Promova a discussão dando a sua opinião