martes, febrero 10, 2015

Cómo eliminar la indexación de Robots.txt en Google y Bing para eludir a los dorks

El fichero robots.txt sirve para decirle a los buscadores, tanto a Google como a Bing como a otros, qué partes de un sitio web no deben ser indexadas. Esto no es completo totalmente, porque como ya sabemos puede que los enlaces y los títulos de las URLs queden metidos en el índice, generando problemas de privacidad, como vimos en el caso de Gmail, de Facebook, WhatsApp o tantos y tantos otros. El problema añadido con robots.txt es que éste, por defecto, también queda indexado en los buscadores - algo que no tiene mucha lógica - pero así es. Esta indexación de robots.txt provoca que en él se pueda buscar lo que los sitios webs no desean que se encuentre, lo que no tiene mucho sentido.

Figura 1: Cómo eliminar la indexación de Robots.txt en Google y Bing para eludir a los dorks

El que el contenido de los ficheros robots.txt quede indexado abre muchas posibilidades al hacking con buscadores, y por eso yo lo he utilizado para encontrar de todo, desde programas de monitorización y test, hasta tipos de tecnologías concretos para probar un determinado bug.

Estrategias para eliminar el contenido de Robots.txt del índice de los buscadores

Con todo esto en mente, yo quería hacer pruebas para ver si es posible des-indexar el contenido de robots.txt y así evitar caer en dorks que busquen cosas, pero sobre todo por conocer cómo se podría hacer sin anular el funcionamiento del fichero robots.txt.

Figura 2: El fichero robots.txt de Eleven Paths estaba indexado en Google y Bing

Es decir, conseguir que el contenido de robots.txt no saliera en los dorks pero que siguiera teniendo efecto en los buscares para establecer una política de indexación del sitio web. Las alternativas que hay son bastante reducidas y pasan por:
a) Filtrar robots.txt en robots.txt
b) Eliminar la URL del índice con las herramientas del Webmaster
c) Filtrar indexación con una tag NoIndex
Filtrar Robots.txt en Robots.txt

La primera de las opciones, es decir, poner el filtrado de robots.txt en robots.txt podría funcionar, pero solo para eliminar el contenido del fichero robots.txt del índice, pudiendo quedar la URL, el título y los términos en un posible hipervínculo, almacenados en la base de datos del índice de Google. Hacer esto parece plausible, pero puestos a quitar el contenido, mejor quitar todo, ya que en mi caso, incialmente tenía la URL y contenido indexados.

Figura 3: Gencat tiene la URL y un hipervínculo indexado pero no el contenido de robotst.txt

Esto es lo que le sucede a GenCat.es, por ejemplo, como consecuencia de una política de robots.txt que incluye absolutamente a todos los ficheros del sitio bajo una política Disallow, algo muy común en muchos sitios. Aún así, las URLs y los títulos de algún enlace quedan en la base de datos.

Figura 4: Fichero robost.txt aplicando un disallow a robots.txt

Eliminar la URL de robots.txt con las Herramientas del Webmaster

De nuevo, hacer esto también me parecía posible, ya que conseguiría quitar del índice de Google la URL y el contenido - con la esperanza de que robots.txt siguiera teniendo efecto - pero no me resolvía el problema de todos los posibles buscadores que indexaran el contenido. Es decir, debería ir buscado por buscador utilizando sus propias herramientas para solicitar el borrado de la URL de su base de datos. Nada cómodo y no taxativo, ya que al final nunca sabría cuántos buscadores existen.

Filtrar indexación de robots.txt con una tag NoIndex

La última de las opciones es la que mejor me parecía. Consiste en poner una etiqueta X-Tag-Robot con valor NoIndex a nivel de servidor web, de tal forma que cuando un bot de cualquier buscador solicite dicho archivo, vaya con la etiqueta de NoIndex. Esto es fácil de configurar en cualquier servidor, así que es lo que hicimos en Eleven Paths.

Figura 5: Custom HTTP Response Header con X-Robot-Tag NoIndex

Después de eso, solo hubo que pedir una indexación y esperar un par de semanas - sí, un par de semanas - hasta que el índice se actualizó y definitivamente desapareció la URL y el contenido de nuestro robots.txt de las búsquedas.

Figura 6: El servidor web entrega la etiqueta X-Robots-Tag: NoIndex con robots.txt

Reflexión Final sobre el experimento de des-indexar robots.txt

Al final robots.txt desapareció tanto de Google como de Bing, pero evidentemente el fichero sigue estando en su misma ubicación accesible a cualquiera que lo solicite, incluyendo los bots de todos los buscadores que hay en Internet y respeten su funcionamiento.

Figura 7: La URL y el contenido de robots.txt han desaparecido del índice de Google

Como último paso, quedaría ver si se puede ocultar más aún el contenido de robots.txt, pero las alternativas no son muy adecuadas ya que pasan por hacer cloaking y entregar el archivo robots.txt solo a los bots usando filtrado de direcciones IP o de campos User-Agent. Ninguna alternativa es demasiado buena. Filtrar por IP obliga a saberse las direcciones IP de todos los bots de todos los buscadores, y hacerlo por User-Agent no ayuda a ocultar nada, ya que es bastante fácil cambiárselo.

Figura 8: La URL y el contenido de robots.txt han desaparecido del índice de Bing

Al final, lo mejor es que no haya información sensible en el robots.txt y listo, pero si tienes algo que debas tener ahí por alguna razón concreta - y a veces existen esas razones - tal vez quitarlo del índice de los buscadores te ayude a caer en menos dorks.

Saludos Malignos!

6 comentarios:

  1. Chema, si en Google buscas la cadena 'site:"elevenpaths.com" "robots.txt"', en la enumeración de URLs sí está en 2a posición dicho robots :-D
    Saludos.

    ResponderEliminar
  2. Eso sí, si lo haces buscando en Google con el user agent de GoogleBot ;-))

    ResponderEliminar
  3. Luego ya fozando por webs institucionales acabas por encontrar perlas como presidente.gal/robots.txt

    Portal de transparencia de un presidente autonómico totalmente opaco cara a buscadores... Sera cuestión de privacidad también? ps...

    ResponderEliminar
  4. @Javier Lorente, no, te equivocas. Indica que no se indexe el contenido, por eso pone en los resultados "No se puede mostrar el contenido".

    Lo que no evita es que se indexe la URL y el título y lo encuentra por otro sitios

    Saludos!

    ResponderEliminar
  5. Gracias;

    Para comprobarlo he hecho el proceso inverso. He cogido 2 webs que no tenian indexado el archivo robots.txt

    1.- A una le he puesto el x-tag que comentas y a la otra no.

    2.- En Google webmaster tools he forzado la idexación de los dos archivos robots.txt

    3.- El resultado ha sido que google ha indexado el archivo robots.txt del dominio que no tenía la etiqueta x-tag y no ha indexado el que si lo tenia.

    Saludos

    ResponderEliminar