Nei precedenti articoli abbiamo visto come installare il Web Application Firewall di Apache attraverso il modulo Mod Security. Oltre al modulo è possibile installare e abilitare da repo le regole predefinite.
Mod Security offre un elevata funzione di sicurezza, filtrando e confrontando le richieste web che arrivano ad Apache con una serie di regole. Le regole cecano di mitigare bot, attacchi XSS e altro ancora, proteggendo la nostra applicazione e server web da possibili attacchi.
Purtroppo le regole generano troppi valsi positivi ed è necessario un accurato tuning, disabilitando e modificando alcune regole. Questo perché contengono qualsiasi condizione di attacco. Per esempio WordPress è quasi impossibile utilizzarlo senza disabilitare una grande quantità di regole.
Ora vediamo come configurare delle regole alternative al posto di quelle predefinite. A questo scopo useremo le regole OWASP, sviluppate da una community no profit di un migliaio di membri che ha messo a punto una serie di regole ottimizzate per i principali CMS e applicazioni e mitigare le principali vulnerabilità e noti attacchi.
Installazione
Innanzi accertiamoci che il modulo sia installato, on caso usiamo questo comando per installarlo. Queste regole sono compatibili solo con la version 2.4 + del modulo, è consigliabile utilizzare comunque l’ultima versione. Eseguiremo la configurazione su CentOS 7, per altre distribuzioni è necessario verificare i comandi equivalenti.
yum install mod_security
Verrà creata una directory modsecurity.d in /etc/httpd/ e il suo file di configurazione /etc/httpd/config.d/mod_security.conf
Ora andremmo a scaricare le regole dalla repository GIT di OWASP, in questo caso andremmo a mettere le regole all’interno della directory di mod_security:
cd /etc/httpd/mod_security.d git https://github.com/SpiderLabs/owasp-modsecurity-crs.git
Verrà generata una directory owasp-modsecurity-crs del percorso. Ora generiamo un file di configurazione, un esempio è nella stessa directory:
cd /etc/httpd/mod_security.d/owasp-modsecurity-crs cp crs-setup.conf.example crs-setup.conf
Ora è necessario modificare il file di mod_security e disabilitare le regole di default dove l’applicazione acquiesce le regole.
nano /etc/httpd/conf.d/mod_security.conf
E andiamo a commentare le righe qui sotto:
<IfModule mod_security2.c> # ModSecurity Core Rules Set configuration # IncludeOptional modsecurity.d/*.conf # IncludeOptional modsecurity.d/activated_rules/*.conf # Default recommended configuration SecRuleEngine On SecRequestBodyAccess On
Ora generiamo un nuovo file di configurazione per le nostre nuove regole:
nano /etc/httpd/conf.d/owasp-modsecurity-crs.conf
e andiamo a inserire questo contenuto:
<IfModule security2_module> Include modsecurity.d/owasp-modsecurity-crs/crs-setup.conf Include modsecurity.d/owasp-modsecurity-crs/rules/*.conf </IfModule>
Ora testiamo la configurazione e riavviamo il servizio Apache:
httpd -t Syntax OK systemctl restart httpd
Ora il nostro WAF analizzerà tutte le richieste ad Apache e bloccherà tutte le richieste che violano le regole appena instalalte.
Potete aggiornare sempre le regole attaverso GIT, la comunity è solita a rilasciare aggiornamenti:
cd /etc/httpd/modsecurity.d/owasp-modsecurity-crs/ | git pull
E’ possibile in caso l’aggiornamento schedulato delle regole tramite cron tab.
Vi riporto alcuni articoli collegati per implementare la sicurezza tramite mod security: