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.