OWASP en tu Apache WEB Server
Añade Open Web Application Security Project a tu servidor WEB

OWASP (Open Web Application Security Project) es una organización sin fines de lucro dedicada a mejorar la seguridad del software. Su objetivo principal es proporcionar recursos, herramientas, documentación y estándares abiertos y gratuitos para ayudar a organizaciones y desarrolladores a crear aplicaciones web más seguras.

Para configurar Apache2 de manera que compruebe automáticamente las solicitudes y respuestas contra las reglas de seguridad de OWASP (Open Web Application Security Project), puedes utilizar el módulo ModSecurity junto con el conjunto de reglas OWASP ModSecurity Core Rule Set (CRS). Este enfoque te permitirá proteger tus VirtualHosts contra ataques comunes, como inyecciones SQL, cross-site scripting (XSS), y otros.

A continuación, te explico cómo configurar Apache2 con ModSecurity y OWASP CRS:


1. Instalar ModSecurity y OWASP CRS

Primero, instala ModSecurity y el conjunto de reglas OWASP CRS en tu servidor.

En Ubuntu/Debian:


sudo apt update
sudo apt install libapache2-mod-security2 modsecurity-crs

En CentOS/RHEL:


sudo yum install mod_security mod_security_crs

2. Habilitar ModSecurity en Apache

Una vez instalado, habilita el módulo ModSecurity en Apache.


sudo a2enmod security2
sudo systemctl restart apache2

3. Configurar ModSecurity

ModSecurity se configura mediante archivos de reglas. El archivo principal de configuración es /etc/modsecurity/modsecurity.conf.

a. Configuración Básica de ModSecurity

Abre el archivo de configuración:


sudo nano /etc/modsecurity/modsecurity.conf

Asegúrate de que las siguientes directivas estén configuradas:


SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecDataDir /tmp/modsecurity
SecTmpDir /tmp/modsecurity
SecAuditLog /var/log/apache2/modsec_audit.log
SecDebugLog /var/log/apache2/modsec_debug.log
  • SecRuleEngine: Activa el motor de reglas (On para habilitar).

  • SecRequestBodyAccess: Permite inspeccionar el cuerpo de las solicitudes.

  • SecResponseBodyAccess: Permite inspeccionar el cuerpo de las respuestas.

  • SecDataDir y SecTmpDir: Directorios temporales para ModSecurity.

  • SecAuditLog: Ruta del archivo de registro de auditoría.

  • SecDebugLog: Ruta del archivo de registro de depuración (opcional).

b. Cargar OWASP CRS

El conjunto de reglas OWASP CRS se instala en /usr/share/modsecurity-crs. Para cargarlo, crea un enlace simbólico en la configuración de ModSecurity.


sudo ln -s /usr/share/modsecurity-crs/modsecurity.conf /etc/modsecurity/
sudo ln -s /usr/share/modsecurity-crs/crs-setup.conf /etc/modsecurity/

Luego, incluye estas configuraciones en el archivo principal de ModSecurity:


Include /etc/modsecurity/modsecurity.conf
Include /etc/modsecurity/crs-setup.conf
Include /usr/share/modsecurity-crs/rules/*.conf

4. Configurar VirtualHosts para Usar ModSecurity

Asegúrate de que ModSecurity esté habilitado para cada VirtualHost. Puedes agregar la siguiente directiva en la configuración de cada VirtualHost:


<VirtualHost *:80>
    ServerName dominio1.com
    DocumentRoot /var/www/dominio1

    <Directory /var/www/dominio1>
        SecRuleEngine On
        Include /etc/modsecurity/modsecurity.conf
        Include /etc/modsecurity/crs-setup.conf
        Include /usr/share/modsecurity-crs/rules/*.conf
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName dominio2.com
    DocumentRoot /var/www/dominio2

    <Directory /var/www/dominio2>
        SecRuleEngine On
        Include /etc/modsecurity/modsecurity.conf
        Include /etc/modsecurity/crs-setup.conf
        Include /usr/share/modsecurity-crs/rules/*.conf
    </Directory>
</VirtualHost>

5. Personalizar Reglas de OWASP CRS

El conjunto de reglas OWASP CRS es altamente configurable. Puedes ajustar las reglas en el archivo /etc/modsecurity/crs-setup.conf.

Ejemplo de Personalización:

  • Deshabilitar una regla específica: Si una regla genera falsos positivos, puedes deshabilitarla.


    SecRuleRemoveById 942100
  • Ajustar la sensibilidad: Cambia la sensibilidad de las reglas.


    SecAction \
      "id:900000,\
      phase:1,\
      nolog,\
      pass,\
      t:none,\
      setvar:tx.paranoia_level=1"

6. Probar la Configuración

Reinicia Apache para aplicar los cambios:


sudo systemctl restart apache2

Luego, realiza pruebas para asegurarte de que ModSecurity esté funcionando correctamente:

  • Intenta realizar una solicitud maliciosa (por ejemplo, una inyección SQL) y verifica que sea bloqueada.

  • Revisa los logs de ModSecurity en /var/log/apache2/modsec_audit.log.


7. Monitorear y Ajustar

  • Revisa los logs: Monitorea los logs de ModSecurity para identificar falsos positivos o ataques reales.

  • Actualiza las reglas: Mantén OWASP CRS actualizado para protegerte contra las últimas amenazas.


    sudo apt update && sudo apt upgrade modsecurity-crs

8. Consideraciones Adicionales

  • Rendimiento: ModSecurity puede añadir una sobrecarga al servidor. Ajusta las reglas y la configuración para equilibrar seguridad y rendimiento.

  • Pruebas en Entorno de Desarrollo: Antes de implementar en producción, prueba la configuración en un entorno de desarrollo.


Con esta configuración, Apache2 comprobará automáticamente cada solicitud y respuesta contra las reglas de OWASP, protegiendo tus VirtualHosts contra ataques comunes.

OWASP en tu Apache WEB Server
Shopicardiacom, S.L., David Casas 15 February, 2025
Share/Comparte post
Archive
Sign in to leave a comment


Securización de PHP 8.1 en el servidor WEB
Medidas básicas de seguridad para el intérprete PHP