La importancia de conocer, crear y manipular los archivos robots.txt

ConexionesInternet ha revolucionado la manera en la que accedemos a la información; se ha vuelto natural para nosotros hacer una consulta en un teléfono inteligente, tablet o computadora. Este fenómeno se debe en gran parte a los buscadores de Internet, programas de cómputo que, de manera automática, acceden e indizan tantas páginas como puedan encontrar.

Tras bambalinas, los buscadores utilizan servicios de búsqueda y seguimiento de contenido conocidos como arañas. La función de una araña es acceder a una página pública de Internet, leer e interpretar su texto, imágenes, ligas y demás. Una vez que termina de trabajar esa página, sigue todas las ligas que haya encontrado.

La teoría de los 7 grados de separación indica que, entre dos personas, cualesquiera que sean sus orígenes en el mundo, existen 7 personas intermedias que los conectan. Esto quiere decir que entre tú y el presidente Bounnhang Vorachith (Laos) existen 7 personas intermedias. Se tiene la misma creencia para el contenido en Internet, de ahí que se le conoce como “la red”. Todos los nodos se encuentran interconectados mediante este espacio digital.

Una vez que la araña termina de revisar una página, la envía de regreso al buscador para que pueda ser indizada y de esta manera encontrada por los usuarios. Esto representa una gran ventaja al momento de dar a conocer un servicio, pues el usuario indica ciertas palabras clave las cuales serán buscadas en el índice, y el buscador regresará los resultados que más se parezcan.

Como sabemos en el mundo de ciberseguridad, con cualquier pedazo de información que demos a conocer estamos otorgando ventaja a algún posible atacante. En el caso de los servicios Web, cuando utilizamos el método GET del protocolo HTTP para intercambiar información con el servidor, es probable que estemos enviando información en texto claro que inclusive puede ser visto en la URL por el usuario. Esto es una mala práctica de programación. Como programadores, queremos que el usuario tenga el menor conocimiento posible sobre el funcionamiento de nuestro sistema, entonces de igual manera debemos evitar exponer datos a cualquier fuente.

En los últimos meses, el equipo de SCILabs de Scitum ha detectado una gran cantidad de fugas de información a través de lo que los buscadores indizan de nuestros clientes y que no debería ser información pública. Para corregir este comportamiento, las arañas cuentan con un mecanismo que previene la indización de una página determinada. El mecanismo consiste en crear un archivo de nombre “robots.txt” en cualquier carpeta que contenga instrucciones para los robots, separadas por líneas. El formato básico del archivo es el siguiente:

User-agent: *

Disallow: /

El archivo consta de la descripción de un agente, seguida por una o más reglas que debe seguir ese robot. En este caso, el archivo indica a través de User-Agent:* que las reglas aplicarán para cualquier araña. La siguiente línea Disallow:/ indica que de la carpeta raíz hacia adelante no se debe indizar nada. Este archivo tiene como consecuencia que ningún contenido sea indizado por los buscadores.

El ejemplo arriba mostrado es un caso extremo, pues el objetivo de tener una página Web pública es justamente que cualquier usuario pueda acceder a la información o servicios, por lo que el archivo del ejemplo sería contraproducente. 

Supongamos que la empresa “Gran Empresa” tiene una página Web en el dominio granempresa.com y que su sitio incluye lo siguiente:

  1. La misión y visión de la empresa en el archivo mision-y-vision.html.
  2. Las ventas en la página ventas.html.
  3. Un formulario de contacto, contacto.html.
  4. Una sección privada para que los clientes puedan acceder a su cuenta, para ver facturas y cuentas por pagar en la página cuenta.php.

Para acceder a los servicios, Juan debe entrar a granempresa.com/cuenta.php; si Juan no cuenta con una sesión válida, entonces deberá llenar un formulario con su contraseña. Una vez que Juan se autentica es redirigido a granempresa.com/cuenta.php?sesion=abc123 donde puede ver sus facturas. En este caso, la variable sesión es enviada a través de método GET del protocolo HTTP en texto claro. Juan termina de consultar su información y después navega hacia google.com para realizar una nueva búsqueda. Cuando Juan navega hacia google.com envía una cabecera HTTP-REFERRER con valor granempresa.com/cuenta.php?sesion=abc123. Al ser google.com un buscador, cuando recibe un URL que desconoce, inmediatamente envía una araña a indizar el sitio. En este caso el URL, que incluye el valor de la sesión, es indizado por la araña, causando que cuando alguien más busque granempresa.com en google.com, encuentre la liga que contiene una sesión válida y pueda acceder a la información de Juan.

Con el fin de evitar que este tipo de fuga de información se lleve a cabo, un desarrollador debe crear un archivo robots.txt en la carpeta raíz que contenga lo siguiente:

User-agent: *

Disallow: /cuenta.php

 

Esto causará que las arañas indicen todo el sitio, a excepción de cuenta.php con cualquiera de sus posibles valores, como por ejemplo “sesion=abc123”. De esta manera podemos garantizar que solo el contenido aprobado por nosotros se encuentre indizado en los registros públicos.

El archivo robots.txt es de carácter público, es decir, cualquier ente puede acceder a él. Tomando en cuenta el ejemplo anterior, un atacante tiene la posibilidad de descubrir que el archivo cuenta.php es de interés para la organización y comenzar un ataque desde esta. Esto quiere decir que, una vez que hacemos de conocimiento público esta página, también debemos cerciorarnos de que esta es segura. Las organizaciones deben estar conscientes del contenido que exponen en Internet y los riesgos que esto representa.

 

[email protected]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*