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
- 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 ·
- US cell carriers selling access to real-time location data ZDNet · zdnet.com
- Senator furious at police's easy ability to get real-time mobile location data Ars Technica · arstechnica.com
- LocationSmart Leaked Location Data for All Major U.S. Carriers in Real Time — Hacker News discussion Hacker News · news.ycombinator.com ·