Cómo Analizar el access.log para Detectar Posibles Ataques a tu Servidor Web



Introducción:
La seguridad de un servidor web es una preocupación crítica para cualquier propietario de un sitio web. Uno de los primeros pasos para proteger tu servidor es monitorear el archivo «access.log», que registra todas las solicitudes de acceso a tu sitio web. A través del análisis de este archivo, puedes identificar posibles ataques y tomar medidas preventivas. En este artículo, te mostraremos cómo analizar el «access.log» para detectar señales de un ataque.

Paso 1: Accede al archivo «access.log»

cat /var/log/apache2/access.log

Salida ejemplo:

192.168.1.100 - - [18/Sep/2023:15:25:36 +0000] "GET /page1.html HTTP/1.1" 200 1200
192.168.1.101 - - [18/Sep/2023:15:26:12 +0000] "GET /page2.html HTTP/1.1" 404 404
192.168.1.102 - - [18/Sep/2023:15:27:01 +0000] "POST /login.php HTTP/1.1" 403 403
...

Paso 2: Identifica patrones anómalos

  • Muchas solicitudes en un corto período de tiempo:
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr

Salida ejemplo:

   100 192.168.1.100
    50 192.168.1.101
    30 192.168.1.102
...
  • Solicitudes a URLs sospechosas:
awk '$9 ~ /(404|403)/ {print $7}' /var/log/apache2/access.log | sort | uniq -c | sort -nr

Salida ejemplo:

   50 /page2.html
   30 /admin.php
   20 /wp-login.php
...
  • Solicitudes con cadenas de consulta extrañas:
awk -F\" '$2 ~ /(SELECT|UNION|INSERT|UPDATE|DELETE)/ {print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr

Salida ejemplo:

   10 192.168.1.100
    5 192.168.1.101
    3 192.168.1.102
...

Paso 3: Identifica direcciones IP sospechosas

awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr

Salida ejemplo:

   100 192.168.1.100
    50 192.168.1.101
    30 192.168.1.102
...

Paso 4: Toma medidas

Una vez que hayas identificado direcciones IP sospechosas, puedes tomar medidas para proteger tu servidor, como bloquear esas direcciones IP mediante un firewall o ajustando la configuración de seguridad de tu servidor web. La salida específica de este paso variará según las acciones que tomes para mitigar las amenazas detectadas.