Entender el Referer Spam: cómo nos atacan los spamers
Entender el Referer Spam
A estas alturas ya estamos más que acostumbrados a ver falsas visitas a nuestra web (referrer o referal spam), contabilizadas en nuestras cuentas de Google Analytics. Como ya comentamos en la entrada de cómo eliminar el Referer Spam, estas visitas son, en realidad, falsas visitas, ya que si revisamos las estadísticas de nuestro servidor web (por ejemplo Apache), veremos que esas peticiones a ficheros de nuestro servidor no han existido nunca, en cambio, sí que aparecen en las estadísticas de Google Analytics.
Estas falsas visitas, las cuales proviene normalmente de referers que llegan a nuestra web con el objetivo de que los visitemos, atacan directamente contra Google Analytics haciendo una petición al UA (normalmente son generados aleatoriamente o siguiendo un cierto orden). Por lo tanto, no hay manera de evitarlo… hasta que Google ponga remedio. Dicho esto, hay que olvidarse de métodos como la modificación del fichero .htaccess, y otras reglas aplicables en nuestro servidor web.
Si queréis hacer una prueba para comprobar cómo se hace directamente este ataque a Google Analytics y no a nuestro sitio web, debéis crear una url de Google Analytics con los datos de vuestra cuenta y abrirla con el navegador. Entrad en la sección de Tiempo real de vuestra cuenta de Google Analytics, y veréis cómo aparecen estas falsas visitas, con los datos que le hemos pasado, y que por lo tanto, no podemos hacer nada para evitar estos ataques.
Un ejemplo básico sería:
http://www.google-analytics.com/collect?v=1&tid=mi-UA&t=pageview&dp=/ruta/a/una/url&dt=Titulo_de_la_url&dr=referer&cid=mi-cid
En la url anterior debéis cambiar el texto en rojo, siendo:
- mi-UA: el UA de Google Analytics (UA-XXXXXXXX-X).
- /ruta/a/una/url: ruta del fichero que en teoría debería haber servido nuestro servidor web. Debe comenzar por /.
- Titulo_de_la_url: título de la url visitada (el title del documento anterior).
- referer: el referer que nos suelen inyectar.
- mi-cid: un id único para un usuario particular, en formato XXXXXXXXX.XXXXXXXXXX
No todos estas variables son necesarias (tid, t, dp, dt, dr, …) y se podrían incluir muchas más (etiquetado de campañas, eventos, transacciones de comercio electrónico, afiliaciones, etc), y no olvidéis que el texto pasado a las variables cuando se haga la petición POST, debe estar en ASCII hexadecimal, es decir, “:” es %3A, “/” es %2F, etc…
Cómo emular una visita y engañar a Google Analytics
Una vez visto cómo podemos emular una visita y engañar a Google Analytics, ahora sólo nos quedaría el proceso de automatización, con el que ya tendríamos una herramienta como la de los spammers.
Hay que destacar que esta herramienta no sólo sirve para hacer el mal, sino que está pensada también como un método para poder añadir datos a nuestra cuenta de Google Analytics, tal y como está documentado también en la sección de developers de Google Analytics.
Un ejemplo de un script rápido (sin control de errores, ni códigos aleatorios controlados, etc…) en GNU/Linux sería:
#!/bin/bash clear echo "############################################################" echo "############# Inyecta código Google Analytics ##############" echo "############################################################" echo "#################### No hagas el mal #######################" echo "############################################################" echo "######################## Frabits ###########################" echo -e "\n\nRecuerda que los carácteres especiales deben estar en formato ASCII hexadecimal.\n\n" echo "Introduce el UA de Google Analytics: " read UA echo "Introduce la url de la petición a falsear (relativa empezando por /): " read url echo "Introduce el título de la url que debería tener el fichero anterior: " read titulo echo "Introduce el referer desde el que ha venido la falsa visita: " read referer echo "Introduce un cid: " read cid echo "¿Cuántas peticiones quieres realizar?" read numpet for i in `seq 1 $numpet`; do curl --data "v=1&tid=$UA&cid=$cid&t=pageview&dp=$url&dt=$titulo&dr=$referer" http://www.google-analytics.com/collect cid=`echo $cid| cut -d'.' -f 2` cid=$((cid+1)) sleep 1 done
Igual que este script está hecho en bash, podríamos hacerlo en cualquier otro lenguaje como PHP (usando cURL), Python, etc…
Como acabáis de ver, hemos inyectado falsas visitas a nuestra cuenta de Google Analytics, sin entrar en la web y sin ni siquiera saber la url a la que se ataca, simplemente con un UA (el cual se puede haber generado aleatoriamente). Con esto, podemos llegar a comprender que una protección contra estos ataques de referer spam es imposible, puesto que no ataca a nuestros sitios web, sino que es un ataque directo contra Google Analytics. La única “solución” a estas molestas vistas de spam es, cómo explicamos en el post mencionado anteriormente, usar filtros o crear propiedades altas, las cuales tienen menos probabilidades de ser generadas automáticamente.
Comentarios
No hay comentarios todavía.