Brecha de segurança permite localizar usuários do Grindr facilmente

A história de um aplicativo de empoderamento de minorias que se torna uma arma contra seus usuários

O Grindr é um aplicativo de encontros voltado para o público gay e bissexual lançado em 2009. No ano passado, em seu aniversário de 5 anos, a empresa anunciou que o app havia sido instalado mais de 10 milhões de vezes e possuía mais de 5 milhões de usuários ativos todo mês. O aplicativo está disponível para dispositivos iOS (iPhone, iPad, iPod Touch), Android e Blackberry em 192 países ao redor do mundo. Em média, a qualquer instante, cerca de 300 mil usuários estão online no serviço.

Com todos esses números aumentando a cada ano, o aplicativo tem estado cada vez mais em evidência tanto na cultura pop - em séries de TV, jornais e talk-shows - quanto para potenciais ataques. Por isso, a Synack - uma empresa especializada em segurança da informação - vem fazendo desde fevereiro de 2014 um estudo de caso sobre a segurança do app.

Segundo as análises, praticamente todos os usuários do serviços estão vulneráveis a uma brecha que permite descobrir suas localizações ao longo do dia. Em março de 2014, a equipe do Grindr foi notificada sobre as vulnerabilidades existentes no aplicativo: através dele é possível ver a sua distância até outros usuários próximos, em conjunto com apps que ajudam o usuário a mudar a localização do GPS do telefone ou - com um pouco mais de conhecimento técnico - realizando requisições direto para os servidores do Grindr sem passar pelo aplicativo, é possível usar a distância dos usuários até três pontos distintos para triangular a localização de qualquer um. O Tecmundo tem um ótimo artigo explicando como funciona a triangulação, se você não conhece a técnica.

É possível localizar usuários do Grindr através de uma simples triangulação.
É possível localizar usuários do Grindr através de uma simples triangulação.

Duas coisas são muito estranhas nessa história: o nível de precisão utilizado pelo Grindr para calcular a distância entre duas pessoas pode chegar na casa dos centímetros(!) e a falta de preocupação da empresa em corrigir o problema.

A alguns centímetros de distância

Eu entendo perfeitamente que a localização do usuário seja um dado tão importante para o total funcionamento do sistema: ele ordena a lista de pessoas da mais próxima para a mais distante. O que não é fácil de justificar é a enorme precisão que o aplicativo pega dos dados do GPS. Em um dos testes realizados pela Synack, estes foram os dados recebidos para um determinado usuário:

{
    "status": 1,
    "distance": 0.861290174942267,
    "relationshipStatus": 1,
    "displayName": "John Doe",
    "isFavorite": false,
    "weight": 83914.5859375,
    "bodyType": 4,
    "showDistance": false,
    "height": 187.960006713867,
    "headlineDate": 1387233218000,
    "version": 1387233224,
    "seen": 1391205348000,
    "profileId": 12345678,
    "showAge": true,
    "ethnicity": 7,
    "profileImageMediaHash": "abcdef1234567890fedcba0987654321abcdefgh"
}

Se você não é da área de tecnologia e ficou perdido com todas essas letras e número, calma. Esses são os dados de cada usuário que o aplicativo utiliza pra montar a lista de quem está próximo. A parte importante pra nossa discussão é "distance": 0.861290174942267. Sabe em que unidade está esse valor de distância? Quilômetros, mas a precisão é incrível (0.861290174942267 km são 861,29 metros de distância).

Mude a posição do seu GPS, veja a distância pra posição nova, faça isso 3 vezes e você sabe exatamente onde essa pessoa está. Com acesso a esses dados, a empresa de segurança conseguiu inclusive criar um sistema que mapeia todos os usuários do Grindr em uma determinada região.

Sistema é capaz de mapear onde estão todos os usuários do Grindr em São Francisco.
Sistema é capaz de mapear onde estão todos os usuários do Grindr em São Francisco.

Provavelmente, não é algo que você faria pra descobrir onde está aquele cara que não responde suas mensagens às 3 da manhã, mas com motivo suficiente para ir atrás de alguém, esse mapa pode ser bem perigoso. O que nos leva ao nosso próximo ponto.

"It's not a bug! It's a feature!"

"It's not a bug, it's a feature!" (Não é um erro, é uma funcionalidade!, em tradução literal) é uma frase que é muito familiar a qualquer um envolvido com desenvolvimento de sistemas. Normalmente, usamos essa expressão quando algo não planejado acontece em um programa, mas às vezes essa funcionalidade pode ser até boa, engraçada ou só estamos tentando enrolar o cliente (mentira, a gente nunca enrola o cliente!). O problema é que essa frase foi praticamente a resposta dada pela equipe de desenvolvedores do Grindr para a brecha em questão:

Não vemos isso como uma falha de segurança. Como parte do serviço oferecido pelo Grindr, os usuários dependem do compartilhamento de sua localização com outros usuários como a função principal do aplicativo e os usuários do Grindr podem controlar como essa informação é exibida.

Eu entendo o que o Relações Públicas que divulgou essa nota tinha na cabeça quando o fez. O Grindr realmente pergunta se o usuário quer exibir a informação de distância para outras pessoas, mas lembram daquela sopa de letrinhas ali de cima com os dados de usuários? Uma outra parte importante dela é essa aqui: "showDistance": false. Essa opção faz o aplicativo esconder o valor da distância de outras pessoas, o que realmente resolve a questão de um usuário sem conhecimentos técnicos descobrir onde você está. Mas, mesmo assim, os dados de distância continuam sendo recebidos, só não são exibidos. Qualquer um com conhecimento o suficiente pode pegar esses dados independente de você permitir ou não.

Por isso, o sistema dos nossos amigos da Synack consegue mapear inclusive os usuários que escolheram não compartilhar sua distância com outras pessoas. Legal, né? Não.

Para não dizer que nada foi feito, quando começaram a surgir reportagens apontando que forças policiais estavam usando esses dados para "caçar" gays em países onde a homossexualidade ainda é vista como crime, a equipe do Grindr ocultou todos os dados por padrão nesses mesmos países. Ponto pros meninos.

Aviso enviado aos usuários do Grindr em Setembro de 2014 alerta sobre melhores políticas de segurança em alguns países.
Aviso enviado aos usuários do Grindr em Setembro de 2014 alerta sobre melhores políticas de segurança em alguns países.

Mesmo assim, esses dados ainda podem ser vistos até hoje em todos os outros países, como os EUA e o Brasil. A solução para o problema não é complicada, a equipe de desenvolvimento pode diminuir a precisão que o app usa do GPS. Também é possível trocar a informação de distância por um número de ordenação que indica em qual posição o usuário que não deseja compartilhar sua distância deve aparecer. E também podem limitar a quantidade de vezes que uma pessoa pode mudar a posição do GPS em um curto espaço de tempo, dificultando a triangulação.

São soluções simples que podem evitar que esses dados caiam em mãos erradas. Mesmo a homossexualidade não sendo um crime por aqui, isso não quer dizer que estamos livres de crimes de ódio contra gays e, se tornando um grande catálogo de onde estão os gays da cidade, o Grindr acaba se tornando uma arma na mão de entidades ou pessoas potencialmente perigosas e criminosas.

De uma maneira um tanto quanto exagerada, o diretor Frank Fox já tinha imaginado no mundo da ficção o que pode acontecer quando uma arma dessas cai em mãos erradas no curta "0 Feet Away", que você pode conferir aqui em baixo.

0 FEET AWAY - um filme de Frank Fox

Foto de Vinícius Ribeiro

Vinícius Ribeiro

Apaixonado por tecnologia e inovação, trabalha com desenvolvimento de sistemas e aplicativos há alguns anos.