Artículos en profundidad sobre la tecnología que da forma al futuro.

Tu app de fitness es una herramienta de vigilancia

Cómo apps como Strava filtran datos de ubicación sensibles, desde bases militares hasta portaaviones. Lecciones de OPSEC para desarrolladores.

Portaaviones en el mar con una ruta de carrera roja brillante trazada alrededor de su cubierta

Un periódico francés rastreó hace poco la ubicación en tiempo real del único portaaviones de Francia, el Charles de Gaulle, uno de los activos militares más sensibles de Europa, usando datos públicos de apps de fitness. Los miembros de la tripulación daban vueltas en la cubierta de vuelo mientras Strava registraba cada paso. La posición, el rumbo y la velocidad del barco eran visibles para cualquiera que supiera dónde mirar.

No fue un hackeo. Nadie explotó una vulnerabilidad ni saltó un control de seguridad. Los datos eran públicos por defecto y los compartían voluntariamente usuarios que no pensaron en lo que su ruta de running revelaba sobre el patrón de despliegue de un buque de guerra con propulsión nuclear. Es el mismo tipo de problema que expuso bases militares secretas en 2018, cuando el mapa de calor global de Strava iluminó rutas de running en Afganistán y Siria. La lección todavía no se ha aprendido.

El problema de los datos “inofensivos”

Los datos de ubicación de las apps de fitness parecen inofensivos por separado. Saliste a correr. Fuiste en bici al trabajo. Hiciste largos en la piscina. Pero acumulados a lo largo del tiempo, estos datos revelan patrones que no tienen nada de inofensivos.

  • Casa y trabajo. Tus puntos de inicio y fin más frecuentes son casi seguro tu casa y tu oficina. Cualquier app que registre tus rutas sabe dónde vives y trabajas, aunque nunca le hayas dado esa información de forma explícita.
  • Agenda diaria. ¿Sales a correr a las 6 de la mañana todos los días laborables? Los datos muestran cuándo tu casa está vacía. ¿Viajas por trabajo los martes? Tus ausencias quedan registradas.
  • Lugares sensibles. Militares, oficiales de inteligencia, empleados públicos, ejecutivos de empresas: cualquiera que trabaje o visite lugares sensibles deja un rastro. Incluso un solo entrenamiento en una instalación clasificada revela que esa instalación existe y que tienes acceso a ella.
  • Conexiones sociales. Las salidas en grupo, las rutas compartidas y las clasificaciones por segmentos revelan quién entrena con quién. En contextos de inteligencia, esto puede trazar las redes sociales de personas que trabajan en instalaciones sensibles.

El caso del portaaviones es espectacular, pero los mismos principios se aplican a personas corrientes. Los acosadores han usado datos de apps de fitness para localizar a sus víctimas. Los ladrones podrían identificar cuándo una casa está vacía. Los empleadores podrían monitorizar los movimientos de sus empleados fuera del horario laboral. Los datos son ricos, muy granulares y, en muchos casos, están al alcance de cualquiera con una cuenta gratuita.

Cómo se filtran los datos

Las apps de fitness filtran datos de ubicación por varios canales, unos evidentes y otros sutiles.

Perfiles de actividad públicos

Muchas apps tienen perfiles públicos por defecto. Tus carreras, salidas en bici y sesiones de natación son visibles para cualquiera, con los trazados GPS dibujados en un mapa. Los valores por defecto de Strava han mejorado con los años, pero muchos usuarios crearon su cuenta cuando las opciones eran más permisivas y nunca revisaron su configuración. Una búsqueda rápida en Strava de actividades cerca de una base militar, un centro de datos o un edificio gubernamental suele revelar más de lo que debería.

Mapas de calor y datos agregados

Aunque las actividades individuales sean privadas, los datos agregados pueden revelar patrones sensibles. El mapa de calor global de Strava, que muestra la densidad de todas las actividades registradas, perfiló con fama los planos de bases avanzadas en zonas de conflicto. Las bases aparecían como puntos brillantes de actividad en un desierto por lo demás vacío. Los usuarios individuales eran anónimos, pero el patrón agregado era inconfundible.

Clasificaciones por segmentos

Los segmentos de Strava, tramos de carretera o sendero definidos por los propios usuarios donde compiten por el mejor tiempo, crean marcadores de ubicación persistentes. Un segmento en la cubierta de vuelo de un portaaviones identifica a todos los usuarios que han corrido esa ruta concreta. Aunque los perfiles individuales sean privados, la clasificación del segmento muestra nombres de usuario, tiempos y fechas. Cruzar esta información con otros datos públicos puede identificar a personas.

Acceso por API y corredores de datos

Las apps de fitness suelen compartir datos con terceros mediante APIs, acuerdos de colaboración y relaciones con corredores de datos. Aunque pongas tu perfil en privado, tus datos pueden acabar en manos de aseguradoras de salud, anunciantes o agregadores que los cruzan con otros conjuntos de datos. Los datos de ubicación de apps de fitness han aparecido en bases de datos comerciales que se venden a las fuerzas de seguridad, agencias de inteligencia e investigadores privados.

Lecciones de OPSEC para desarrolladores habituales

Si estás construyendo aplicaciones que manejan datos de ubicación, o cualquier dato que pueda revelar patrones sensibles, los fallos de las apps de fitness ofrecen lecciones concretas.

Privado por defecto

Suena obvio, pero la mayoría de las apps de fitness lo incumplieron durante años porque los perfiles públicos impulsaban el engagement y el crecimiento. Si tu app recopila datos de ubicación, el valor por defecto debe ser privado y el usuario debe optar explícitamente por compartir. Nada de “público, con una opción para hacerlo privado enterrada en los ajustes”. Privado de verdad por defecto.

// Bad: default to public, user must opt out
const userSettings = {
profileVisibility: 'public',
activityVisibility: 'public',
showOnHeatmap: true,
shareWithPartners: true
};
// Good: default to private, user must opt in
const userSettings = {
profileVisibility: 'private',
activityVisibility: 'private',
showOnHeatmap: false,
shareWithPartners: false
};
// Better: explain what each setting actually means
const privacySettings = {
profileVisibility: {
value: 'private',
description: 'Only people you approve can see your profile',
riskLevel: 'Your name and activity history are visible'
},
activityVisibility: {
value: 'private',
description: 'Only you can see your activities',
riskLevel: 'GPS routes show where you live, work, and travel'
}
};

Implementa zonas de privacidad

Strava acabó añadiendo “zonas de privacidad”: áreas alrededor de lugares sensibles donde los datos GPS quedan ocultos. Es una buena función, pero llegó con años de retraso. Si tu app registra datos de ubicación, permite a los usuarios definir zonas donde el registro se suprima o los datos se difuminen. La mayoría de los usuarios las configurarán alrededor de su casa y su trabajo, lo que elimina los patrones más sensibles.

Detalle de implementación: desplazar al azar el inicio y el final de una ruta no basta si el patrón de la ruta es muy distintivo. Alguien que hace el mismo circuito de 5 km todos los días produce una forma reconocible incluso con los extremos ocultos. Mejores enfoques: recortar los primeros y últimos N metros de la ruta, o ajustar los extremos a una cuadrícula para impedir inferir la ubicación exacta.

Piensa en los ataques por agregación

Los puntos de datos individuales pueden ser inofensivos. Los patrones agregados pueden no serlo. Cuando diseñes funciones que combinen o visualicen datos de muchos usuarios (mapas de calor, clasificaciones, ubicaciones en tendencia), piensa qué patrones van a surgir. Un mapa de calor que destaca una instalación secreta es un ataque por agregación, aunque no se exponga ningún dato individual.

La defensa: establece umbrales mínimos de agregación (no muestres datos de mapa de calor en zonas con menos de N usuarios únicos), excluye áreas geográficas sensibles y revisa las visualizaciones en busca de revelaciones inesperadas antes de publicarlas. Las técnicas de privacidad diferencial, que añaden ruido calibrado a las consultas agregadas, pueden ayudar, aunque son complejas de implementar correctamente.

Audita tu compartición de datos

Cada endpoint de API que sirve datos de ubicación, cada función de exportación y cada integración con terceros son canales por los que pueden filtrarse datos sensibles. Traza tus flujos de datos. Sabe exactamente adónde van los datos de ubicación de los usuarios, quién puede acceder a ellos y en qué condiciones. Si compartes datos con socios o anunciantes, sé explícito con los usuarios sobre qué compartes y con quién.

La visión general: minimización de datos

La cuestión fundamental es si tu aplicación necesita los datos que recopila. ¿Una app de running necesita coordenadas GPS cada segundo? Para visualizar la ruta, sí. Para calcular distancia y ritmo bastaría una resolución menor. Para estimar calorías, solo necesitas la distancia total y el desnivel acumulado.

La minimización de datos, que consiste en recopilar solo los datos que necesita la función concreta que el usuario está usando, es la protección más sólida contra las filtraciones. Los datos que no recopilas no pueden filtrarse, ser requeridos judicialmente, venderse ni agregarse en patrones de vigilancia. Esto choca con el instinto de crecimiento de recogerlo todo y decidir después para qué sirve, pero es el único enfoque realmente robusto.

La mejor forma de proteger los datos de los usuarios no es un cifrado mejor ni controles de acceso más estrictos. Es no tener esos datos en primer lugar.

La industria de las apps de fitness aprendió esta lección por las malas, y algunas empresas todavía no la han aprendido. Militares siguen usando Strava en portaaviones. Oficiales de inteligencia siguen registrando carreras cerca de instalaciones clasificadas. Los datos siguen fluyendo hacia servidores, APIs y corredores de datos que pueden reconstruir patrones que ningún usuario pretendía revelar. Como desarrolladores, podemos construir sistemas que protejan a los usuarios de estos riesgos por defecto o sistemas que se aprovechen de su descuido. La tripulación del portaaviones no tomó ninguna decisión de seguridad al abrir su app de running. Sus desarrolladores sí la tomaron, años antes, al elegir la configuración por defecto.