A LocationSmart vendia a empresas a localização de telefones em tempo real fornecida pelas operadoras, em parceria com Verizon, AT&T, T-Mobile, Sprint e as operadoras canadenses Bell, Rogers e Telus. Sua página pública de teste permitia que qualquer pessoa inserisse um número de telefone e, depois que o dono do aparelho respondesse a uma mensagem SMS ou de retorno de chamada de consentimento, visse aquele telefone ao vivo em um mapa. A etapa de consentimento era o ponto central da demonstração.

Em 16 de maio de 2018, o pesquisador Robert Xiao descobriu que a etapa de consentimento podia ser contornada. A API de demonstração respondia à mesma operação em dois formatos, XML e JSON; solicitar a localização com requesttype=locreq.json em vez do XML padrão suprimia completamente a verificação de assinatura. Duas requisições POST não autenticadas — uma para obter um token, outra para solicitar a localização — retornavam o endereço da rua do alvo e um círculo no mapa para qualquer número de celular nos EUA, incluindo telefones que nunca haviam dado consentimento.

Como o posicionamento era feito por triangulação do lado da operadora, funcionava em qualquer telefone, independentemente do sistema operacional ou das configurações de privacidade, e não havia como recusar. Xiao não reteve a descoberta nem a divulgou de forma irresponsável: ele a reportou ao US-CERT e trabalhou com Brian Krebs, que publicou a história depois que a LocationSmart corrigiu a falha na manhã de 17 de maio; Xiao só divulgou seu relato técnico após verificar a correção.

A divulgação ocorreu enquanto o setor já estava sob escrutínio por vender dados de localização: o relato cita reportagens de que as operadoras forneciam dados à Securus, que os divulgou indevidamente a um ex-agente da lei. A página de Xiao alcançou 1.209 pontos e 270 comentários no Hacker News no dia em que a correção foi aplicada e foi repercutida em dezenas de sites.

O formato de resposta alternativo contornava a verificação de consentimento

O tipo de requisição JSON desviava do caminho de código que aplicava o consentimento, de modo que uma mudança de uma palavra no formato produzia dados completos de localização sem qualquer consentimento.

Uma prova de conceito curta que imprimia um endereço de rua tornou a falha concreta e crível, o que fez com que fosse corrigida em cerca de um dia.

A divulgação coordenada por meio do US-CERT e de um jornalista de confiança fez com que a história viesse a público com a correção já aplicada, e não como um alarme de zero-day.

A localização do lado da operadora afetava todos os assinantes das quatro principais operadoras dos EUA, sem possibilidade de recusa, de modo que o bug da demonstração era uma exposição nacional de privacidade, não um caso isolado.

Trate todo formato de resposta como superfície de ataque: uma verificação de consentimento em um manipulador pode estar ausente em outro. Comprove a gravidade com uma demonstração funcional, divulgue via CERT e publique somente após a correção.

A LocationSmart corrigiu a vulnerabilidade na manhã de 17 de maio de 2018, e Brian Krebs publicou a história no mesmo dia; Xiao então divulgou seu relato técnico e sua prova de conceito. A página alcançou 1.209 pontos e 270 comentários no Hacker News e foi sindicada por dezenas de veículos. O episódio manteve os holofotes sobre a prática das operadoras de vender dados de localização em tempo real, que já havia colocado a LocationSmart e a Securus nas notícias dias antes.

CONFIRA AS EVIDÊNCIAS

As fontes

  1. Tracking Firm LocationSmart Leaked Location Data for Customers of All Major U.S. Mobile Carriers in Real Time via Its Web Site KrebsOnSecurity · krebsonsecurity.com ·
  2. US cell carriers selling access to real-time location data ZDNet · zdnet.com
  3. Senator furious at police's easy ability to get real-time mobile location data Ars Technica · arstechnica.com
  4. LocationSmart Leaked Location Data for All Major U.S. Carriers in Real Time — Hacker News discussion Hacker News · news.ycombinator.com ·