Este año nos sorprende con la
popularización de una modalidad de spam (publicidad no
solicitada) que usa como vehículo de propagación a
los programas de
estadísticas web de los servidores a los
que ataca. Este artículo provee un minucioso análisis de las técnicas
usadas por los spammers,
cuáles son los beneficios que obtiene el spammer al
corromper nuestros logs, y brinda consejos para defenderese de
este tipo de spam.
Todo webmaster que analiza la actividad de sus sitios
web no puede
dejar de estudiar detalladamente la sección que resume los
referidos o enlaces de origen de las visitas. Esta tabla contiene
un listado ordenado con todos los sitios web que teniendo un link
hacia nuestras páginas nos han enviado visitas.
Esta es la sección de las estadísticas más útil cuando
deseamos evaluar los resultados de la promoción de nuestra web (banners en
páginas de terceros, intercambio de links, visitas desde
buscadores,
etc).
En los referidos podemos hallar sitios web predecibles
(aquellos donde sabemos que hay un link hacia nuestras
páginas) y también sitios nuevos (aquí es
donde nos enteramos de quién ha puesto links a nuestro
sitio y dónde).
Fig. 1 Reporte
(webalizer) de www.estadisticasweb.com
Las entradas en esta tabla son a su vez links hacia la
página referente. De modo que cuando veo la URL de un
sitio que no conocía (y que me está mandando
visitas) hago click sobre su nombre y este sitio se abre.
Entonces busco el botón, la imagen o el link
desde el cual se accedió a mi sitio. En algunos casos es
sencillo: el link está completamente a la
vista.
En otros casos puede ser un poco más complejo, si
la página del referente se genera dinámicamente
(desde una base de datos,
o como resultado de una búsqueda, por ejemplo).
Pero existe una tercera situación, en donde
directamente el link no existe ni existió nunca. Y
ahí se encuentra el webmaster: revisando y reviendo un
sitio web del que no sabía su existencia. Viendo
detenidamente todo… y buscando dónde se halla el link a
su web.
Muy claro: tener una enorme cantidad de visitas que
abran muchas páginas en su web. Todos los webmasters que
encontraron un link en su listado de referrers y que buscan el
link desde donde les "mandan las visitas".
Un segundo objetivo lo
alcanzan en los casos en que las estadísticas de nuestro
sitio sean públicas: hacer que en cientos o miles de
páginas de terceros (en sus estadísticas
públicas) aparezcan links hacia su sitio. Y todos sabemos
el beneficio que esto implica para el posicionamiento
en buscadores, y en particular en Google, donde
esta situación se reflejará tarde o temprano en el
pagerank del spammer.
Encontré swoftware para realizar esta
fechoría. Pero como mi objetivo no es promocionar esta
técnica (ni este software, por supuesto), no
lo mencionaré en este artículo. Pero sí voy
a describir cómo es que funcionan estos
programas.
En principio, el trabajo del
spammer se divide en dos partes:
- construir una lista de direcciones de sitios web,
y - generar la falsa actividad sobre cada uno de los
sitios, mediante peticiones HTTP
especialmente manipuladas
El punto 1 parece ser obvio: se puede usar la
información de buscadores o directorios en
la web para obtener una lista de víctimas. También
es posible poner a funcionar un crawler (un software de
indexación que navega en la web siguiendo los links hacia
otros sitios, y de ahí a otros, y otros más… de
esta forma construyen sus bases de datos
los buscadores).
En la mayoría de los casos, estos sistemas buscan
sus víctimas en el DMOZ (Open Directory). Se ha comprobado
una relación directa entre la figuración de una web
en DMOZ y la recepción de spam de esta naturaleza.
El punto 2 es el verdadero "secuestro": un
software especialmente diseñado "visita" cada una de las
páginas de la lista, enviándoles una
petición HTTP manipulada:
GET / HTTP/1.1
Host: www.estadisticasweb.com
Referer: http://www.soy-un-sucio-spammer.com/
User-Agent: Mozilla/5.0 Galeon/1.2.0 (X11; Linux i686;)
Gecko/20020
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
*/*
Accept-Language: en-us, en
Accept-Encoding: gzip, deflate, compress;q=0.9
Accept-Charset: ISO-8859-1,
utf-8;q=0.66, *;q=0.66
Keep-Alive: 300
Connection: keep-alive
Éste es el tipo de petición que
envía nuestro browser cuando seguimos el link desde el
sitio soy-un-sucio-spammer.com Y eso es lo que registra
nuestro servidor: la URL
www.soy-un-sucio-spammer.com nos acaba de enviar una
visita.
Otra variante de esta técnica consiste en un
crawler que realiza los pasos 1 y 2 en uno solo: cuando "abre"
nuestra página para seguir los links hacia páginas
de otras víctimas, ya nos está mandando el campo
"Referer: http://www.soy-un-sucio-spammer.com/"
modificado.
De esta forma es mucho más rápido, y el
spammer se puede dar el gusto de secuestrar varias decenas de
sitios web por segundo (10 a 40 sitios web por segundo
típicamente: la carga se limita sólo al texto
excluyendo las imágenes
de modo que el spammer gana tiempo y
ahorra ancho de banda).
Qué podemos hacer para evitarlo:
Existen múltiples aproximaciones, ya que estamos
en una etapa muy temprana del problema. Analizaremos algunas de
ellas, con sus correspondientes ventajas y
desventajas.
a) Filtrado por referente.
Esta técnica se basa en un .htaccess que
implementa una lista negra de sitios desde los cuales no se
aceptan referidos. Hoy la lista negra puede imprimirse en una
carilla de papel carta, pero
estoy seguro que en
unos meses superará ampliamente el volúmen de
la guía telefónica, y este método de filtrado será
inviable. Otra desventaja de este sistema es
que supone que ya contamos con la lista negra, y por tanto
conocemos cuáles son los sitios spammers.
Archivo .htaccess
RewriteEngine
On
#
RewriteCond
%{REMOTE_ADDR} ^64.38.236.*$
[OR]
#
RewriteCond
%{HTTP_REFERER} ^http://(www.)?sitiospammer-1.com.*$
[NC,OR]
RewriteCond
%{HTTP_REFERER} ^http://(www.)?sitiospammer-2.com.*$
[NC,OR]
….
….
RewriteCond %{HTTP_REFERER}
^http://(www.)?sitiospammer-N.com.*$
[NC,OR]
RewriteRule .* –
[F,L]
Nota 1: se debe escribir una línea por cada
sitio en la lista negra
Nota 2: las líneas con los puntitos no van!
Significan que ahí deben insertarse más
líneas de bloqueo
He evitado escribir en este ejemplo las URLs de los
spammers: no es mi intención presentar en este
artículo una lista negra. Sin embargo, para quien
esté interesado, hay listas de sitios de spammers en los
foros de www.estadisticasweb.com.
b) Bloqueo del acceso público a las
estadísticas
Una buena forma de reducir el beneficio obtenido por
los spammers consiste en hacer que nuestros reportes de
estadísticas tengan acceso protegido por password. De
esta forma los buscadores no entrarán, y el spammer no
se beneficiará de los links gratis hacia su sitio web.
No es una verdadera solución al problema (seguiremos
viendo spam entre nuestros referidos), pero al menos estaremos
tomando acciones que
reduzcan el beneficio que el spammer desea obtener de
nosotros.
c) Uso de Page-Tagging en lugar de
análisis de logs
He notado que (por ahora) en todos los casos de
secuestro de log de referidos, el spammer ataca al servidor web
con una petición HTTP sólo al documento html, y esta
petición se guarda en los logs y por tanto la vemos en
los resultados de las estadísticas que obtienen sus
datos de los
logs.
Si usamos "Page-Tagging" (la técnica de
monitorizar las visitas a un sitio mediante la inclusión
de un botón especial o un código en cada página a ser
monitorizada) no veremos en nuestras estadísticas los
referidos de los spammers.
Si el spammer quisiera que su técnica de ataque
abarcara también a los sitios que usan Page-Tagging,
deberían modificar sus programas de forma tal que
abriesen -además del documento base de la página
web- todos y cada uno de los elementos contenidos en la
página (el tag podría llegar a ser cualquiera de
los elementos: una imagen, por ejemplo).
De esa forma el spammer (si contase con una
versión modificada del software que utilizan
actualmente) no podría realizar tantos ataques por
segundo, y la eficacia de la
dispersión bajaría notablemente.
Conclusión
Esto es otra muestra de lo que
las mentes inescrupulosas son capaces de inventar, corrompiendo
nuestras estadísticas y robando nuestro ancho de banda y
recursos de
servidor para beneficio propio.
Hasta la fecha no existe ninguna técnica
completamente eficaz para evitarlo (al menos durante mucho
tiempo). Personalmente pienso que combinando las técnicas
b y c del apartado anterior (mas algunas otras que el con el
tiempo se puedan inventar) podremos despalzar la barrera de la
conveniencia del spammer, de forma que el negocio no le sea tan
conveniente, y así desestimular este tipo de
prácticas: si es más trabajoso aplicarlo y da menos
beneficio, tal vez logremos que el spammer se dedique a otras
fechorías y deje nuestros servidores web y nuestros
programas de estadísticas en paz.
Estoy muy interesado en seguir investigando y encontrar
soluciones
para este tipo de abusos. De forma que quien desee aportar ideas,
experiencias o comentarios será muy bienvenido al foro que hemos creado sobre el
"Secuestro de logs" (Log Hijacking) en los foros de
www.estadisticasweb.com.
Por Ing. Eduardo González
González