LocationSmart vendía a empresas ubicaciones de teléfonos en tiempo real basadas en la red de los operadores, en asociación con Verizon, AT&T, T-Mobile, Sprint y los operadores canadienses Bell, Rogers y Telus. Su página de prueba pública permitía a cualquiera introducir un número de teléfono y, una vez que el propietario del teléfono respondía a un mensaje SMS o a una llamada de consentimiento, ver ese teléfono en vivo en un mapa. El paso de consentimiento era el objetivo central de la demo.
El 16 de mayo de 2018, el investigador Robert Xiao descubrió que el paso de consentimiento podía omitirse. La API de demostración respondía a la misma operación en dos formatos, XML y JSON; solicitar la ubicación con requesttype=locreq.json en lugar del XML predeterminado suprimía por completo la verificación de suscripción. Dos solicitudes POST no autenticadas —una para obtener un token y otra para solicitar la ubicación— devolvían la dirección postal del objetivo y un círculo en el mapa para cualquier número inalámbrico de EE. UU., incluidos teléfonos que nunca habían dado su consentimiento.
Como el posicionamiento era una triangulación del lado del operador, funcionaba en cualquier teléfono independientemente del sistema operativo o de la configuración de privacidad, y no había forma de excluirse. Xiao no retuvo el hallazgo ni lo filtró: lo reportó a US-CERT y colaboró con Brian Krebs, quien publicó la historia después de que LocationSmart corrigiera la falla en la mañana del 17 de mayo; Xiao publicó su informe técnico solo después de verificar el parche.
La divulgación se produjo mientras el sector ya estaba bajo escrutinio por vender datos de ubicación: el informe cita reportes de que los operadores suministraban datos a Securus, que los divulgó indebidamente a un exfuncionario de las fuerzas del orden. La página de Xiao obtuvo 1.209 puntos y 270 comentarios en Hacker News el día en que se aplicó la corrección y se replicó en decenas de sitios.
El formato de respuesta alternativo omitía la verificación de consentimiento
El tipo de solicitud JSON eludía la ruta del código que aplicaba el consentimiento, de modo que un cambio de una palabra en el formato producía datos de ubicación completos sin consentimiento.
Una breve prueba de concepto que imprimía una dirección postal hizo que la falla fuera concreta y creíble, lo que propició que se corrigiera en aproximadamente un día.
La divulgación coordinada a través de US-CERT y de un periodista de confianza hizo que la historia saliera a la luz con el parche ya aplicado, no como una alarma de día cero.
La ubicación del lado del operador afectaba a todos los suscriptores de cuatro grandes operadores de EE. UU. sin posibilidad de exclusión, por lo que el error de la demo era una exposición nacional a la privacidad, no un caso aislado.
Tratar cada formato de respuesta como una superficie de ataque: una verificación de consentimiento presente en un controlador puede faltar en otro. Demostrar la gravedad con una demo funcional, divulgar a través de CERT y publicar solo después del parche.
LocationSmart corrigió la vulnerabilidad en la mañana del 17 de mayo de 2018, y Brian Krebs publicó la historia ese mismo día; Xiao publicó entonces su informe técnico y su prueba de concepto. La página obtuvo 1.209 puntos y 270 comentarios en Hacker News y fue sindicada por decenas de medios. El episodio mantuvo la atención sobre la práctica de los operadores de vender datos de ubicación en tiempo real, que ya había puesto a LocationSmart y Securus en las noticias días antes.
CONSULTA LAS PRUEBAS
Las fuentes
- 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 ·