De todos es sabido que es buena práctica de un administrador de sistemas el revisar los logs (ficheros de registro) frecuentemente en busca de problemas potenciales antes de que estos se conviertan en problemas de verdad.

En muchas ocasiones, al revisar los logs en busca de problemas, saltan a la vista actividades sospechosas. El siguiente es un ejemplo de tales actividades en el log del servidor web nginX:

163.172.68.122 - - [18/Dec/2016:07:48:26 +0100] "GET /robots.txt HTTP/1.1" 404 169 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:28 +0100] "GET /calendar/set.php?return=L2NhbGVuZGFyL3ZpZXcucGhwP3ZpZXc9bW9udGgmdGltZT0xNDU2Nzg2ODAwJmNvdXJzZT0x&sesskey=bLA6dBKDGl&var=showcourses HTTP/1.1" 303 539 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:31 +0100] "GET /calendar/view.php?view=month&time=1456786800&course=1 HTTP/1.1" 200 42315 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:32 +0100] "GET /calendar/set.php?return=L2NhbGVuZGFyL3ZpZXcucGhwP3ZpZXc9bW9udGgmdGltZT0xNDU2Nzg2ODAwJmNvdXJzZT0x&sesskey=bLA6dBKDGl&var=showglobal HTTP/1.1" 303 539 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:35 +0100] "GET /calendar/view.php?view=month&time=1456786800&course=1 HTTP/1.1" 200 42339 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:38 +0100] "GET /calendar/set.php?return=L2NhbGVuZGFyL3ZpZXcucGhwP3ZpZXc9bW9udGgmdGltZT0xNDU2Nzg2ODAwJmNvdXJzZT0x&sesskey=bLDzrjaxlQ&var=showcourses HTTP/1.1" 303 539 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:41 +0100] "GET /calendar/view.php?view=month&time=1456786800&course=1 HTTP/1.1" 200 42346 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:43 +0100] "GET /calendar/set.php?return=L2NhbGVuZGFyL3ZpZXcucGhwP3ZpZXc9bW9udGgmdGltZT0xNDU2Nzg2ODAwJmNvdXJzZT0x&sesskey=bLDzrjaxlQ&var=showglobal HTTP/1.1" 303 539 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:46 +0100] "GET /calendar/view.php?view=month&time=1456786800&course=1 HTTP/1.1" 200 42346 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:48 +0100] "GET /calendar/set.php?return=L2NhbGVuZGFyL3ZpZXcucGhwP3ZpZXc9bW9udGgmdGltZT0xNDU2Nzg2ODAwJmNvdXJzZT0x&sesskey=bLhmFoJmt0&var=showcourses HTTP/1.1" 303 539 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:51 +0100] "GET /calendar/view.php?view=month&time=1456786800&course=1 HTTP/1.1" 200 42346 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:53 +0100] "GET /calendar/set.php?return=L2NhbGVuZGFyL3ZpZXcucGhwP3ZpZXc9bW9udGgmdGltZT0xNDU2Nzg2ODAwJmNvdXJzZT0x&sesskey=bLhmFoJmt0&var=showglobal HTTP/1.1" 303 539 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:48:57 +0100] "GET /calendar/view.php?view=month&time=1456786800&course=1 HTTP/1.1" 200 42346 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:49:01 +0100] "GET /calendar/set.php?return=L2NhbGVuZGFyL3ZpZXcucGhwP3ZpZXc9bW9udGgmdGltZT0xNDU2Nzg2ODAwJmNvdXJzZT0x&sesskey=bLq3V4tQm9&var=showcourses HTTP/1.1" 303 539 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:49:03 +0100] "GET /calendar/view.php?view=month&time=1456786800&course=1 HTTP/1.1" 200 42346 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:49:06 +0100] "GET /calendar/set.php?return=L2NhbGVuZGFyL3ZpZXcucGhwP3ZpZXc9bW9udGgmdGltZT0xNDU2Nzg2ODAwJmNvdXJzZT0x&sesskey=bLq3V4tQm9&var=showglobal HTTP/1.1" 303 539 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
163.172.68.122 - - [18/Dec/2016:07:49:08 +0100] "GET /calendar/view.php?view=month&time=1456786800&course=1 HTTP/1.1" 200 42346 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.7; http://mj12bot.com/)" "-"
...
...
...

Problema

Como puede verse, alguien está haciendo múltiples peticiones a la página del calendario, que en Moodle es abierta para todos los usuarios, incluso sin haber iniciado sesión, mediante llamadas a los ficheros /calendar/view.php y /calendar/set.php.

Los logs del servidor nginX, son bastante detallados y por defecto indican el agente que solicito la conexión. En el caso de que el agente no se identifique o que los logs no lo indiquen, podemos investigar la dirección IP del origen con una aplicación web como infobyip.com. En teste caso, los mismos logs de nginX nos indican que es detrás de esta conexión hay un robot o bot llamado MJ12bot.

Información IP

Investigando su página web, vemos que se trata de un proyecto que trata de construir una base de datos mundial de enlaces. Este proyecto permite ejecutar nodos del robot de búsqueda en un ordenador personal a través de una conexión a Internet cualquiera, incluso con IP dinámica, lo que dificulta su rastreo. Es usado por empresas de estudios de mercado y marketing que usan la minería de datos para investigar tendencias en los mercados rastreando Internet para extraer información relevante de millones de páginas web.

Resumen

En resumen, tenemos en nuestra plataforma Moodle robots o bots inspeccionado metódicamente y de forma repetitiva nuestro calendario. Aunque su actividad no parece malintencionada, sí que se puede calificar cuanto menos de parasitaria, ya que cargan al servidor con procesos y tráfico ajeno sin producir ningún beneficio a cambio. En muchos casos esto supone un coste directo, ya que dependiendo de la modalidad en la que esté alojada su plataforma, usted podría estar pagando por el tráfico extra generado por estos bots.

Solución

Podemos alegrarnos, ya que la mayoría de estos bots son «educados», y como se puede ver en los logs y en la información su web, antes de hacer nada consultan el fichero robots.txt para ver si tienen el acceso permitido y se identifican con su nombre al explorar nuestra web. Por tanto, la solución pasaría por denegar el acceso a los bots o robots mediante el fichero robots.txt.

Es decir antes de acceder, tal y como se supone que deben hacer, consultan el fichero robots.txt para ver si tienen el autorizado el acceso y a que recursos. Como normalmente estos bots se identifican con su nombre propio, podríamos bloquear el acceso al bot en concreto que nos cause problemas. Pero no tiene mucho sentido la indexación de la plataforma de formación ni siquiera por Google ya que el contenido suele ser solo para alumnos por tanto, es mejor prohibir el acceso a todos los bots en nuestra plataforma.

Para ello simplemente debemos colocar un fichero llamado robots.txt en la carpeta raíz de nuestra plataforma con el siguiente contenido:

User-agent: *
Disallow: /

Así simplemente denegaremos el permiso para todos los bots y para todos los servicios. Tengamos en cuenta que el fichero robots.txt permite especificar de forma muy flexible los permisos, por lo que también podríamos denegar el permiso solo a ciertos bots y ciertos recursos.

Cabe recalcar que esto solo detendrá a las arañas educadas, que antes de actuar comprueban si tienen acceso permitido, lo que en nuestro caso, ha solucionado el problema. Ya no tenemos más robots rastreando nuestro calendario.

Y finalmente os recomendamos la herramienta «Pinp My Log» para revisar los logs (ficheros de registro) de forma cómoda. Normalmente para revisar estos ficheros de registro, debemos conectarnos a nuestro servidor y descargarnos los ficheros de registro (logs) para revisarlos en nuestro ordenador. Esto dificulta hacerlo de forma rápida y sobre todo la movilidad, ya que necesitemos programas de escritorio para hacerlo cómodamente. La herramienta «Pimp My Log» es una aplicación web que se instala en el servidor y permite revisar online los logs de una forma muy cómoda rápida. Esto nos permite por ejemplo revisar los logs desde el móvil en cualquier tiempo muerto del dispongamos.

Pimp my log

Además es configurable y soporta múltiples ficheros de registro; por ejemplo, en el ejemplo anterior, se muestra el registro de MySQL.

Optin

¡ No se Pierda Nuestro Boletín !

Suscribirse y le comunicaremos cuando publiquemos nuevos artículos.

 

(No más de 1 correo semanal | 100% sin SPAM)

Se ha suscrito correctamente.

Pin It on Pinterest

Share This