En su intento por promocionar sitios y páginas web, existen algunas organizaciones cuyas prácticas rebasan la línea de lo moral, e incluso de lo legal. Sobre todo, aquellas que promocionan sitios relacionados con actividades ilícitas, tales como la venta ilegal de fármacos o la infección de equipos con malware.
En este trabajo se presentarán primero los riesgos que esto puede suponer para una organización , pasando después a mostrar cómo un uso adecuado de las herramientas accesibles desde la shell de un sistema Linux , automatizado a través de programación de shell-scripts, puede ayudar a monitorizar, detectar y controlar los problemas así como a implantar una política adecuada en materia de seguridad y administración de sistemas
Fuente: Open Source World Conference y Un informático en el lado del mal
1
Hacking para el posicionamiento en buscadores y cómo controlarlo desde la línea de
comandos.
AUTORES: Enrique Rando González y José María Alonso Cebrián.
LICENCIA: Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España
(http://creativecommons.org/licenses/by-nc-sa/3.0/es/)
1.- Introducción.
Hoy en día es muy fácil “estar” en Internet. Lo realmente difícil es ser visibles y recibir visitas.
Es un hecho que la inmensa mayoría de las personas utilizan buscadores como Google, Bing, o
Yahoo! para localizar la información. Y otro que, casi siempre, algunos enlaces de la primera página
de resultados son visitados. En muchas ocasiones se consultan los de la segunda. Hay quien,
incluso, accede a algunas de las direcciones listadas en la tercera. Pero casi nadie pasa de ahí.
Aparecer en la quinta página de resultados es casi lo mismo que no aparecer. Y, para una empresa
u organización, eso puede significar no tener relevancia en el sector, no hacer negocio, carecer de
publicidad… En definitiva, no existir.
No es de extrañar, pues, que se desarrollen técnicas de SEO (Search Engine Optimization –
Optimización para Motores de Búsqueda) y que existan organizaciones que ofrecen servicios de
promoción de webs y, en particular, de posicionamiento en buscadores. Y, aunque la inmensa
mayoría actúan de forma intachable, existen algunas cuyas prácticas rebasan la línea de lo moral, e
incluso de lo legal. Sobre todo, aquellas que promocionan sitios relacionados con actividades ilícitas,
tales como la venta ilegal de fármacos o la infección de equipos con malware.
En este trabajo se presentarán primero los riesgos que esto puede suponer para una organización ,
pasando después a mostrar cómo un uso adecuado de las herramientas accesibles desde la shell de
un sistema Linux , automatizado a través de programación de shell-scripts, puede ayudar a
monitorizar, detectar y controlar los problemas así como a implantar una política adecuada en
materia de seguridad y administración de sistemas.
2.- Telarañas de enlaces
La palabra clave para muchas de estas empresas dedicadas al posicionamiento es “Pagerank”. El
Pagerank es una medida de la relevancia de una determinada página web con respecto a una
determinada búsqueda. A mayor Pagerank, mejor posición en las páginas de resultados de los
buscadores (SERP – Search Engine Result Page).
El Pagerank se logra, básicamente, consiguiendo que otras páginas incluyan enlaces a las propias.
Cuanto más relevantes sean, más Pagerank aportarán. En definitiva, obtener enlaces que apunten a
las páginas de un sitio web forma parte fundamental de su promoción y su posicionamiento en
buscadores.
2
Y, en esta tarea, hay quien actúa de forma poco ética. Por ejemplo, inundando foros, blogs y otros
sitios participativos con comentarios y posts que nada tienen que ve con los temas allí tratados. O
creando cuentas en distintas plataformas, cuyos perfiles incluyen enlaces a los sitios a promocionar.
Incluso hay herramientas que permiten realizar estas actividades de forma automática, cuya
sofisticación las lleva a ser capaces de resolver los sistemas de CAPTCHA y similares con que
muchos sistemas intentan protegerse de las entradas automatizadas.
Pero algunas veces no acaba ahí la cosa y se llega a vulnerar la seguridad de los sitios web para
insertar contenidos en ellos de forma ilícita. En muchas ocasiones, se usan técnicas basadas en
tecnologías como, por ejemplo, Javascript, Hojas de Estilo en Cascada (CSS) o redirecciones HTTP
para hacer que estos contenidos sólo sean visibles para los buscadores y no para las personas. De
este modo hacen más difícil su detección y eliminación por parte de los webmasters.
En todo caso, el daño para la imagen de la organización afectada puede ser significativo. Además,
se estaría haciendo uso de los medios y recursos de dicha organización para realizar actividades
ajenas a ella y, en algunos casos, ilegales.
3.- Medidas de protección
Ante este tipo de amenazas, se hacen imprescindibles una correcta administración de los servicios
prestados, una adecuada protección de los sitios webs y una constante monitorización de los
contenidos indexados por los buscadores.
Por fortuna, existen herramientas y buenas prácticas que pueden servir de ayuda. Así, por ejemplo,
WordPress pone a disposición de sus usuarios una herramienta llamada Akismet que permite
controlar el SPAM en los comentarios a las entradas en los blogs. Para más información, puede
consultarse http://es.wordpress.com/features/
Las medidas técnicas y organizativas también deber ser tenidas en cuenta. En general, mientras un
sistema sea útil, debe mantenerse continuamente actualizado. Y, por supuesto, debe estar sometido
a los adecuados controles y auditorías de seguridad. Cuando deje de ser necesario debe ser puesto
fuera de servicio o hacer imposible su posterior actualización así como la creación de nuevas
cuentas de acceso.
Por otro lado, los servicios de web participativa (foros, wikis, plataformas de teleformación, etc.)
también han de ser cuidadosamente vigilados en busca de contenidos inadecuados. Las altas de
nuevos usuarios deben requerir autorización por parte de un administrador y sus perfiles públicos
deben ser sometidos a posteriores auditorías.
Para conseguir todos estos objetivos es imprescindible llevar a cabo una monitorización activa de los
resultados que ofrecen los buscadores para los sitios web de la organización. De este modo se
podrá determinar la existencia o no de contenidos inadecuados, determinar cómo fueron introducidos
y realizar las actuaciones necesarias para eliminarlos, así como tomar las medidas oportunas para
que no vuelvan a producirse en el futuro.
3
Pero este tipo de tareas son prácticamente imposibles de llevar a cabo si no se cuenta con las
herramientas apropiadas. A continuación se presenta una solución automatizada de comprobación
de contenidos utilizando herramientas accesibles desde la shell de Linux y otros sistemas operativos
*nix.
4.- Herramienta automática de monitorización, detección y reporte.
La siguiente imagen muestra la arquitectura general de la solución propuesta:
Figura 1. Esquema de la solución propuesta.
Como puede observarse, se ha dividido el proceso en tres fases.
4.1.- Búsqueda
4
En la primera de ellas se hace uso de los buscadores para localizar resultados sospechosos. Como
datos de partida se necesitan:
– Una lista de dominios a monitorizar
– Una lista de búsquedas que permitan localizar páginas sospechosas de haber sufrido algún tipo de
ataque.
Combinando ambas se realizarían peticiones a los buscadores del tipo:
site:example.com “cheap viagra”
Los shell-scripts que automatizan estas peticiones usan herramientas de línea de comandos como
curl. Posteriormente, las páginas web devueltas por el buscador (SERP) se analizan mediante
guiones awk (se consideró la posibilidad de herramientas más sofisticadas, como lex y yacc, pero
awk proporciona el grado necesario de flexibilidad con menos requisitos de programación).
Para cada resultado, el buscador proporciona un título y la correspondiene URL. También puede
proporcionar una vista preliminar de la página o parte de ella y una URL a una copia de la página
mantenida por el buscador (cache).
La lista de resultados es filtrada comparándola con una lista de URLs a excluir del análisis. De este
modo se ignorarán aquellas páginas web legítimas que puedan contiener las cadenas buscadas, las
que tengan problemas conocidos y estén en proceso de solución, etc.
4.2.- Análisis
En la segunda fase, los resultados sospechosos son sometidos a análisis para determinar la
existencia de problemas, así como las característica de éstos.
Para ello se intenta determinar si se trata de un abuso a un servicio participativo (foro, blog, wiki,
etc.) demasiado permisivo o si, por el contrario, se ha producido una vulneración de la seguridad del
sitio web.
Un análisis de las URLs y de la estructura interna de la página web ayudan a determinar la
naturaleza y características del sistema. Así, la aparición reiterada de ciertas cadenas de texto, como
“forum”, “post”, “thread”, “showthread”, etc. parecerían señalar que el objeto del estudio es un foro.
Por otro lado, es frecuente que las páginas que han sido objeto de modificaciones ilegítimas oculten
el texto añadido haciendo uso de CSS, a veces combinado con JavaScript. La aparición de estos
elementos justo antes de los enlaces puede señalar la existencia de problemas de seguridad.
También se han observado casos en que, con objeto de dificultar la detección de las modificaciones,
los ciberdelincuentes hacen que el contenido de la página devuelta dependa de los valores de los
campos User-Agent y/o Referer de la petición HTTP. Por ejemplo, los enlaces ilegítimos sólo se
muestran si el User-Agent se corresponde con el de un robot de un motor de búsqueda o si se llega
a la página haciendo clic en un resultado de un buscador.
5
Por esta razón, puede ser necesario intentar descargar la página sospechosa modificando el User-
Agent por el de un buscador, o bien introduciendo un Referer que simule la realicación de una
búsqueda.
Hay incluso veces en que se condiciona la aparición de los enlaces a que la IP de la máquina que
realiza la petición sea de un buscador. En este caso, la forma más sencilla de contemplar el
contenido de la página tal y como la recibe el buscador es consultar la versión que éste guarda en su
cache. Estas caches llevan asociada la fecha en la que se guardaron, la cual puede servir para
asociar un cierto grado de certeza a las conclusiones que se obtengan.
De la comparación de todas estas páginas con patrones indicadores de la existencia de problemas
se determinará una lista de URLs a reportar, cada una de las cuales llevará asociado un tipo de
problema y, posiblemente, un grado de certeza acerca de las conclusiones alcanzadas.
4.3- Reporte
Con la información obtenida en la fase anterior se crea un informe en formato HTML que podrá ser
enviado al administrador de forma automática por correo electrónico.
Dicho informe consta de tres secciones:
– Datos del proyecto: que incluirá información acerca de la persona o entidad que realizó el análisis,
la fecha, los dominios objeto de estudio y un diagnóstico general del estado encontrado.
– URLs reportadas: con las URLs que se consideraron dignas de mención, hiperenlaces a ellas y una
breve explicación de los problemas que puedan sufrir.
– Anexos: Con información más detallada de los distintos tipos de problemas, posibles soluciones,
consejos, ejemplos de código, enlaces a páginas útiles, etc.
Los resultados del informe se podrán utilizar tanto como ayuda para la eliminación de las situaciones
detectadas como para implantar políticas que mejoren la gestión de los sistemas y prevengan la
aparición en el futuro de nuevos problemas.
4.4.- Programación de Tareas
El proceso completo de búsqueda, análisis y reporte se realiza de forma automática sin requerir la
intervención del usuario. Toda la información de configuración se guarda en ficheros de texto. Esto
hace posible programar tareas que lancen periódicamente el proceso, obteniéndose un grado casi
total de automatización.
5.- Resumen
Cualquier sitio web, independientemente de la información que maneje o de su relevancia, es un
objetivo para los ciberdelincuentes que intentan conseguir espacios en los que introducir enlaces y
otros contenidos ilícititos.
6
Una medida a considerar para hacer frente a este tipo de amenazas es el uso de herramientas
automatizadas para la detección y control de los resultados ofrecidos por los buscadores, como la
aquí presentada.
6.- Referencias:
SEO, http://es.wikipedia.org/wiki/Posicionamiento_en_buscadores
Pagerank, http://es.wikipedia.org/wiki/PageRank
CAPTCHA, http://es.wikipedia.org/wiki/Captcha
“Técnicas SEO para gente de moral relajada” , José María Alonso Cebrián y Enrique Rando
González, http://elladodelmal.blogspot.com/2009/10/seo-para-gente-de-moral-relajada-i-de.htmlCSS
Curl, http://curl.haxx.se/
Awk, http://es.wikipedia.org/wiki/AWK
Lex, http://es.wikipedia.org/wiki/Lex_%28inform%C3%A1tica%29
Yacc, http://es.wikipedia.org/wiki/Yacc
User-Agent, http://es.wikipedia.org/wiki/Agente_de_usuario
Referer, http://en.wikipedia.org/wiki/HTTP_referrer