Seguridad y Log

Para hacer un seguimiento de las peticiones que llegan a Apache a lo largo del tiempo hay que revisar sus archivos de log. Tener activo un log es primordial para saber qué clase de actividades ocurren en nuestro servidor y si tenemos un nivel de seguridad adecuado. La existencia de un log adecuadamente configurado es imprescindible en caso de ataques, ya que el registro de las actividades maliciosas es completamente necesario para saber que ha pasado, cuándo y cómo. En caso de que hay alguna clase de ataque, el estudio de los ficheros de log (bien por nuestra parte o de las autoridades pertinentes) es una herramienta imprescindible para esclarecer lo que ha pasado.

La siguiente imagen muestra el contenido típico de un log de Apache:

Log de apache

Por tanto, los ficheros de log deberían ser parseados frecuentemente para buscar información interesante en determinados contextos, especialmente si se tienen indicios de que ha habido un ataque o actividad maliciosa. Por ejemplo:

  • —Esta orden: grep "client denied" error_log | tail -n 20 muestra los 20 últimos clientes a los que se le ha denegado el acceso, que producirán en el log líneas como:

—[Thu Jul 11 17:18:39 2002] [error] [client foo.bar.com] client denied by server configuration: /usr/local/apache/htdocs/.htpasswd

  • —Para averiguar si un cliente ha intentado acceder a un archivo “sensible”, como el .htpasswd, buscaremos en el log líneas como: foo.bar.com - - [12/Jul/2002:01:59:13 +0200] "GET /.htpasswd HTTP/1.1". Esto significa que probablemente no se ha incluido esto en el fichero de configuración:

<Files ~ "^.ht">

Order allow,deny
Deny from all
</Files>

Estos son solo algunos ejemplos del tipo de búsquedas que se pueden hacer en ficheros de log. No obstante, a no ser que busquemos cosas concretas, analizar logs “a mano” puede ser muy tedioso. Es aconsejable usar herramientas automatizadas como Awstats (http://awstats.sourceforge.net/) o Scalp (http://code.google.com/p/apache-scalp/), que analizan los logs en busca de información que pueda identificar un posible ataque o bien un comportamiento malicioso por parte de algún usuario.

NOTA: awstats es un programa que tiene versión Linux y Windows, y que podemos usar con IIS para analizar también sus logs.

La instalación de awstats requiere algo de trabajo. Podemos seguir esta guía para facilitarlo:— http://www.debuntu.org/2006/04/21/33-how-to-setting-up-awstats-with-apache-2-on-debianubuntu

ž
NOTA: Una forma básica (y sencilla) de probar scalp es el siguiente comando: scalp-0.4.py --log /var/log/apache2/Access.log

Con herramientas como estas y similares tenemos una gran flexibilidad para analizar los logs del servidor y extraer conclusiones de los mismos. También— podemos determinar un perfil de uso de nuestro servidor y localizar potenciales ataques que hayan tenido lugar o bien prevenirlos.— De esta manera no solo podremos denunciar, sino también tomar medidas específicas contra ellos.

No se va a profundizar más en este tema por exceder los objetivos del curso, pero se puede ver una muestra de la clase de información que estas herramientas pueden obtener en este enlace: http://awstats.sourceforge.net/#DEMO
Última modificación: sábado, 31 de julio de 2010, 11:36