Páginas

19 junio, 2017

Generando actividades falsas en Strava

En esta entrada mostraré una sencilla técnica en la que podremos cambiar el tipo de dispositivo con el que se registró una determinada actividad en Strava, de modo que "engañaríamos" a la App haciendo creer que cierta actividad se registró con un dispositivo smartphone cuando en realidad se hizo con otro tipo de dispositivo, por ejemplo un GPS de Garmin, quién sea usuario de esta App sabrá a lo que me estoy refiriendo. Así como también la posibilidad de cambiar la fecha y otros posíbles parámetros.

Por defecto en Strava cuando realizamos alguna actividad a través de su App Strava este da la opción de poder publicar dicha actividad nada más terminarla. Esta actividad se publica en los tiempos, fecha/hora que se realizaron, así como el tipo de dispositivo en el que fue registrada.

Tiene la opción de poder subir un fichero .gpx de algún dispositivo GPS Garmin estos dispositivos establecen unos metadatos que definen exactamente el tipo de dispositivo, ya sea Garmin un fichero GPX sin ningún metadato establecido, etc.

No sería fácil entonces engañar a Strava subiendo actividades falsas, modificando la fecha/hora, velocidades, etc. Ya que igualmente podremos ver como el tipo de dispositivo sería un fichero .gpx y no un dispositivo como un smartphone que use la App Strava. Por lo tanto sería poco creíble una actividad que sea todo un logro subida directamente desde un fichero .gpx.
¿Pero que pasaría si se pudiese modificar cualquier parámetro y a su vez que las actividades se registren y publiquen a través del dispositivo móvil, pareciendo que dicha actividad fue subida de forma pública a través de la App de Strava?.

Una actividad registrada desde un dispositivo Garmin, abriendo el fichero gpx original en Notepad++ vemos que los datos se establecen en formato XML y la etiquetas de referencias para ficheros GPX son de estándar. la etiqueta "gpx creator=" será la que nos interesa para modificar el tipo de dispositivo con el que se registró la actividad. Así como las fechas de realización de la actividad, cogeré las fechas como ejemplo a modificar, pero se podrían establecer, velocidades, distancias, nuevas coordenadas gps, etc.

Figura 1: Fichero gpx original de Garmin

Si subimos dicha actividad a Strava veremos como tanto la fecha como el dispositivo (GPX) es la original del track gpx.

Figura 2: Actividad del fichero gpx original anterior

Para comprobar que metadatos registra Strava cuando este genera su propio GPX a través de su App desde un dispositivo smartphone, descargamos cualquier actividad previamente ya registrada desde la App en Strava. Exportamos el GPX y a continuación lo exploramos.

Figura 3: Exporar GPX ya registrado por la App de Strava

Abriendo el gpx original que exportamos desde Strava de otra actividad vemos que la etiqueta gpx creator apunta a "strava.com Android" (en el caso de iPhone abría que hacer lo mismo y mirar que valor toma) en cualquier caso para engañar la subida de la actividad como un dispositivo móvil nos servirá con Android.

Figura 4: gpx original exportado de Strava APP

Una vez sabemos el valor a sustituir, abrimos el GPX original, con Notepad++ reemplazamos todos los campos que sea de una fecha por otra (Search > Replace > Replace All o Ctrl+H) y modificaremos unicamente el valor gpx creator="Garmin Desktop App" por gpx creator="strava.com Android". A mayores podemos directamente eliminar/borrar o modificar también las etiquetas xml de <metadata> de los enlaces de referencia <link href> y <text>.

El resto de datos los dejaremos igual, ya que pude comprobar que si establecen exactamente los mismos datos que el gpx original de Strava, este se da de cuenta en el momento de subir el fichero gpx a Strava y nos cancela la subida. 

¿Por qué pasa esto? básicamente los metadatos del gpx contienen los enlaces al tipo de mapa o topo con el que se registrará la actividad y realizará los cálculos. Por lo que Strava se da de cuenta de estas modificaciones si cambiamos todos los valores que tengan que ver con sus metadatos. De modo que dejaremos el resto de datos del gpx original de Garmin en este caso, con su topo con DEM (desniveles del terreno), sus distancias, etc. El mapa y la actividad registrada con los datos del Garmin pero el tipo de dispositivo se establecerá como "Strava App Android".

El resto de valores competentes con tiempos, fechas/horas, velocidades, etc. no se verán influenciadas por los filtros de protección de Strava a la hora de subir las actividades en ficheros gpx.

Figura 5: gpx modificado de Garmin para Strava APP

Guardamos el fichero ya modificado y subimos de nuevo la actividad a Strava desde un fichero GPX, esta vez ya nos aparecerá la fecha modificada y el tipo de dispositivo que registró la actividad será Strava Android App.

Figura 6: gpx anterior modificado y subida la actividad a Strava
 
Saludos!

Entradas Populares