Uma falha no sistema de rastreamento de contactos criado pela Apple e pela Google, conhecido como GAEN, e específica do sistema operativo Android, permitia que várias aplicações pré-instaladas no smartphone do utilizador pudessem aceder a dados gerados pelas apps oficiais de rastreamento de contactos com infetados por Covid-19 – o que inclui a portuguesa StayAway Covid. Contactado pela Exame Informática, o Instituto de Engenharia de Sistemas e Computadores, Tecnologia e Ciência (INESC TEC), o principal responsável pelo desenvolvimento da StayAway Covid, confirmou que a app estava vulnerável ao problema entretanto revelado e que tomou conhecimento da situação no dia 26 de abril, através do grupo europeu de trabalho DP3T, do qual faz parte. E segundo dados do INESC TEC, a app ainda tem um milhão de utilizadores ativos em Portugal (no Android e iOS).
O problema identificado não existe nas diversas aplicações de rastreamento (como a StayAway Covid), mas sim na tecnologia de base que estas apps usam para funcionar, o sistema GAEN. Mas a emissão e receção de identificadores, e o seu consequente registo acessível a outras apps, só eram feitas se fosse instalada uma app que usasse o GAEN. A falha também só existia em smartphones Android, não afetando a versão iOS. A Google já reconheceu o problema.
“Fomos notificados de um problema no qual os identificadores Bluetooth estavam temporariamente acessíveis a outras aplicações pré-instaladas para propósitos de depuração, e imediatamente começamos a lançar uma resolução para endereçar isto”, explica a Google em resposta enviada à Exame Informática. A Google só não confirmou se Portugal está entre os países nos quais os smartphones dos utilizadores já receberam a atualização que corrige o problema.
O que está em causa?
Para perceber o problema agora revelado, importa recordar o método de funcionamento da StayAway Covid e de outras apps de rastreamento. Todos os dias, a aplicação gera uma chave privada aleatória no smartphone, chave essa que é usada para gerar outros códigos de identificação aleatórios – em média, é criado um destes códigos a cada 15 minutos – que são transmitidos por Bluetooth Low Energy (BLE). São estes códigos que são enviados para os smartphones de outras pessoas que têm a StayAway Covid instalada e com quem o utilizador esteve em contacto (a dois metros ou menos de distância e durante 15 ou mais minutos de duração).
Estes identificadores, conhecidos como RPI, são anotados no registo de sistema (system log) do Android – tanto os emitidos como os recebidos. Acontece que no sistema operativo móvel da Google, várias aplicações pré-instaladas podem aceder a este registo de sistema (estima-se que, ao todo, existam cerca de 400 apps que conseguem fazê-lo e que vêm instaladas nas principais marcas de smartphones). E tendo acesso ao registo de sistema, têm acesso aos RPI gerados pela StayAway Covid e pelas apps semelhantes de outros países.
É aqui que entra Joel Reardon, analista de segurança da empresa App Census. Segundo a análise feita ao GAEN nos smartphones Android, descobriu-se que é possível, a partir da informação extraída, perceber se o utilizador esteve infetado com Covid-19 e até o nome do utilizador, revelou em primeira mão à publicação The Markup.
“O registo acontece nos Serviços Móveis Google (GMS) e não na própria app de rastreamento de contactos, o que significa que a aplicação que usas não deverá ter influência em como os GMS funcionam em segundo plano, já que todas [as apps de rastreamento] estão a usar os mesmos GMS”, disse Joel Reardon em resposta por e-mail à Exame Informática.
Segundo o especialista, a Google cometeu um erro ao registar dados sensíveis, como os gerados pelas apps de rastreamento, no sistema de registo do sistema operativo, por perder controlo dessa informação, já que passa a estar disponível para outras entidades.
Na declaração que enviou por e-mail, a Google sublinha que os “identificadores Bluetooth não revelam a localização do utilizador ou providenciam qualquer outra informação de identificação e não temos indicação de que tenham sido usados de alguma forma nem de que as aplicações estivessem cientes disto”. Mas na análise que faz ao problema, Joel Reardon tem uma perspetiva diferente.
Por norma as apps pré-instaladas nos smartphones também têm acesso a outros dados do utilizador (como nome, e-mail ou número de telefone). Caso o utilizador se indicasse na app como estando infetado com Covid-19, para alertar os outros utilizadores, seria possível inferir a identidade de quem teve a doença.
O investigador explica ainda que se fossem extraídos dados de muitos utilizadores, seria possível construir ‘grafos sociais’ por ser possível encontrar identificadores semelhantes em diferentes smartphones (se a Alice e o Bruno estiveram ao mesmo tempo com o Carlos, ambos teriam o mesmo identificador do Carlos, p.ex.). O elemento da AppCensus reitera mesmo que, combinando os dados extraídos com outras fontes de dados, seria hipoteticamente possível conhecer algumas localizações onde os utilizadores com a app de rastreamento estiveram.
As informações agora reveladas são um claro contraste às promessas feitas pela Google e pela Apple, sobretudo durante o lançamento da GAEN, de que o sistema era totalmente seguro e não permitia a partilha de dados com terceiros. O problema foi reportado à Google em fevereiro pela AppCensus. A tecnológica ainda está a atualizar, de forma gradual, os serviços Google nos smartphones Android de utilizadores de todo o mundo para resolver o problema.