Conforme a Suprema Corte dos Estados Unidos julga o caso Carpenter v. EUA, que pode gerar consequências para policiais que rastreiam o telefone de suspeitos sem um mandado, quatro engenheiros da Universidade Princeton revelaram um novo método para identificar a localização de um usuário de smartphone. O resultado desta engenhosidade é tão extraordinário quanto alarmante.

Usando apenas dados que podem ser legalmente coletados sem o consenso do usuário por um desenvolvedor de aplicativos, os pesquisadores produziram um ataque à privacidade que pode precisamente identificar a localização e trajetória de um usuário sem a necessidade de acessar o GPS do aparelho. E embora a possibilidade desta novidade cair nas mãos erradas seja incômoda, a forma como eles a descobriram não é nada menos que genial.

Para proteger a privacidade do usuário de telefone, qualquer aplicativo distribuído por Google Play ou App Store, da Apple, deve explicitamente solicitar a permissão do usuário antes de acessar informações de localização. No entanto, sabemos que, mesmo com essa funcionalidade desativada, oficiais de justiça conseguem rastrear smartphones acessando o histórico de dados celulares (identificando quais foram as torres de que o aparelho esteve mais próximo) ou usar uma série de dispositivos legais conhecidos como Stringrays. Mas conforme o novo método, dados celulares ou de localização não são necessários para rastrear um dono de celular com precisão semelhante à do GPS.

Inclusive, basicamente tudo o que você precisa é da bússola interna do celular, o leitor de pressão atmosférica, alguns apps de mapas gratuitos e a previsão do tempo.

O seu celular tem uma série de sensores compactos que coletam informação sobre o ambiente o tempo todo. Um acelerômetro pode dizer o quão rápido você se movimenta; um magnetômetro pode detectar a sua orientação atual em relação ao norte; e um barômetro pode medir a pressão atmosférica do seu ambiente. O seu celular também fornece facilmente uma série de dados não sensoriais, como o endereço de IP a que o dispositivo se conecta, o fuso horário e o estado da rede (esteja você usando uma rede Wi-Fi ou celular).

Todos estes dados podem ser acessados por qualquer aplicativo sem a necessidade de solicitar permissões, como acontece para dados de contato, fotos ou GPS. Combinando essas informações com dados públicos, como a previsão do tempo, dados específicos de aeroportos e cronogramas de transporte, estes dados são o suficiente para identificar precisamente a sua localização – esteja você andando, viajando de avião, trem ou automóvel.

Tentativas anteriores de rastrear usuários sem a necessidade de dados críticos resultaram em sucessos insignificantes. Elas ou foram prejudicadas por consumo excessivo de energia – o que tornaria os ataques algo fácil de identificar – ou necessitavam de algum conhecimento avançado, como a localização inicial do dono do aparelho ou a potencial rota que ele seguiria. Este novo método não precisa de nada disso.

Primeiro, para este ataque de privacidade funcionar, o dono do celular deve instalar um aplicativo que colete informações. Mas no caso de uma ameaça real, o aplicativo poderia ser disfarçado de qualquer coisa. As duas mil linhas de código necessárias para instalar a função de rastreamento podem ser escondidas em algo tão inofensivo quanto um app de lanterna (por alguma razão, as pessoas continuam a baixar estes aplicativos, mesmo que a grande maioria deles contenha malwares). O app criado pelos pesquisadores para testar o ataque foi nomeado de PinMe.

Para rastrear um usuário, você precisa determinar que tipo de atividade ele executa. É fácil determinar se uma pessoa está andando ou dirigindo um carro, com a velocidade sendo o fator discriminante; mas também, quando você anda, tende a se mover em uma única direção enquanto segura o celular em uma variedade de posições. Agora, em um carro, você faz paradas bruscas (quando freia) e tipos específicos de curvas – de 90 graus, por exemplo – que podem ser detectadas usando o magnetômetro do seu celular. Pessoas viajando de avião mudam de fuso horário rapidamente; a pressão atmosférica de um avião também muda de forma imprevisível, o que pode ser detectado pelo barômetro do celular. Quando você viaja de trem, tende a acelerar em uma direção que não costuma mudar. Em outras palavras, determinar a forma como você se transporta é relativamente simples.

O fato de o seu celular fornecer o seu fuso horário e último endereço de IP ao qual você esteve conectado refina ainda mais a localização – geolocalizar endereços de IP é algo muito fácil de se fazer e pode revelar pelo menos a última cidade em que você esteve –, mas para determinar a sua localização exata, com a precisão de um GPS, é necessário ter acesso a uma série de dados públicos. Para estimar sua elevação – quando você está acima do nível do mar, por exemplo –, o PinMe coleta dados atmosféricos fornecidos de graça pelo Weather Channel e os compara com a leitura do barômetro do seu celular. O Google Maps e dados abertos oferecidos pelo US Geological Survey Maps também providenciam compreensivos dados relacionados a mudanças de elevação por toda a superfície da Terra. E estamos falando de pequenas diferenças de elevação entre uma esquina e outra.

Depois de detectar a atividade do usuário (voando, andando, etc), o app PinMe usa um dentre quatro algoritmos para começar a estimar a localização de um usuário, afunilando as possibilidades até a margem de erro diminuir para zero, de acordo com o estudo. Por exemplo, o app conclui que você está em um carro. Ele sabe a sua elevação, o seu fuso horário, e, caso não tenha deixado a última cidade em que se conectou, você será identificado.

Com acesso a mapas e previsões climáticas públicas, o barômetro e magnetômetro (que providenciam leituras) de um celular, é apenas questão de curvas. Quando o PinMe detectou um dos pesquisadores dirigindo na Filadélfia durante um teste, por exemplo, o pesquisador teve apenas de fazer 12 curvas para que o app soubesse exatamente onde ele estava na cidade. Com cada curva, o número de localizações possíveis do veículo diminuía. “Conforme o número de curvas aumenta, o PinMe coleta mais informações sobre o ambiente do usuário, e como resultado fica mais fácil identificar um caminho único no mapa”, escrevem os pesquisadores.

Os pesquisadores sugerem uma variedade de medidas para prevenir este tipo de rastreamento. É claro, não seria ruim se apps solicitassem permissões antes de acessar dados sensoriais que sabemos que são delicados. Um dos métodos de prevenção é diminuir a taxa de amostras coletadas pelos sensores, quando eles não estão ativados como em atividades como correr, para menos do que o necessário para que apps maliciosos se mantenham indetectáveis (altas taxas de amostragem podem ativar a detecção de malware). Outra sugestão inclui a criação de um botão físico que permitiria aos usuários desativar esses sensores sempre que quisessem. Mas, é claro, empresas como a Apple, sempre obcecadas com o design, jamais permitiriam isso.

O problema, de fato, é que usuários estão efetivamente desamparados contra esse tipo de ataque. Inclusive, o tipo de alvo que os pesquisadores tinham em mente quando desenvolveram a técnica era um usuário muito cauteloso com os apps que solicitam permissões de dados sensíveis – o tipo de pessoa que desliga o GPS quando viaja para que detalhes sobre sua rotina não sejam coletados por ninguém. De novo, seu telefone não considera a leitura de pressão atmosférica ou a direção que você está andando em relação ao norte algo tão sensível assim.

Uma lei que mantém a privacidade de geolocalizações foi introduzida no Congresso americano em 2011, mas não avançou ou recebeu muita atenção desde então. De qualquer forma, ela dificilmente preveniria aplicativos como o PinMe de rastrear pessoas. Talvez seja a hora dos deputados começarem a prestar atenção antes que todo app que baixarmos saiba exatamente onde estamos — sem o nosso conhecimento ou consenso.