Firewall di Applicazione Web (ModSecurity)

Per rilevare ed evitare gli attacchi contro le applicazioni web, il firewall di applicazioni web (ModSecurity) controlla tutte le richieste al tuo server web e le risposte correlate dal server contro il suo set di regole. Se la verifica è riuscita, la richiesta HTTP viene trasferita al contenuto del sito web. Se la verifica non è riuscita, vengono eseguite le azioni predefinite.

ModSecurity è un modulo per Apache. Di conseguenza, può soltanto verificare le richieste HTTP che arrivano ad Apache. Apache è integrato con un altro server web - nginx. Se si attiva l'opzione Elabora PHP da nginx del server web nginx per il contenuto dinamico del tuo sito web, il firewall di applicazioni web non sarà in grado di verificare le richieste HTTP perché non arriveranno mai ad Apache. Per il contenuto statico, se l'opzione Servire file statici direttamente da nginx è attivata, allora le richieste HTTP non raggiungeranno Apache, e quindi ModSecurity non le verificherà.

Nota: Per utilizzare il firewall di applicazioni web (ModSecurity), gli amministratori che eseguono l'aggiornamento da Plesk 11.5 devono ottenere una nuova chiave di licenza per Plesk 12 da Odin o il loro produttore.

Per attivare il firewall di applicazioni web:

  1. Vai su  Strumenti e impostazioni > Firewall di applicazioni Web (ModSecurity) (nel gruppo  Sicurezza ). Il componente ModSecurity deve essere installato sul tuo server.


    Web_Application_Firewall

  2. Imposta la modalità del firewall di applicazioni web su Attivo o Solo rilevamento. Ogni richiesta HTTP in arrivo e la risposta correlata saranno verificate contro un set di regole. Se la verifica è riuscita, la richiesta HTTP verrà trasferita al contenuto del sito web. Se la verifica non è riuscita, l'evento sarà registrato. Nella modalità Solo rilevamento nessun'altra azione sarà effettuata. Nella modalità Attivo la risposta HTTP sarà provvista di un codice di errore.

    Nota: Le modalità del firewall di applicazioni web possono essere impostate a livello del server e del dominio. Tuttavia, la modalità a livello del dominio non può essere superiore della modalità impostata per il server. Per esempio, se il firewall di applicazioni web funziona nella modalità Solo rilevamento a livello del server, non sarà possibile cambiarlo in Attivo per i domini. Soltanto le modalità Disattivato e Solo rilevamento saranno mostrate.

  3. Seleziona il set di regole che sarà verificato dal motore del firewall di applicazioni web per ogni richiesta HTTP in arrivo o carica un set di regole personalizzato. È possibile selezionare i seguenti set di regole:
    • OWASP ModSecurity Core Rule Set (CRS). Il set di regole CRS offre protezione generica contro vulnerabilità sconosciute spesso trovate nelle applicazioni web. Questo set di regole è compreso gratuitamente. È noto per essere un set di regole molto restrittivo; è necessario regolarlo ulteriormente per l'utilizzo di produzione. Quando questo set di regole viene selezionato, WordPress funziona solo parzialmente e il webmail e la condivisione di file non funzionano. Come alternativa, si possono usare i set di regole di Atomic o Comodo.
    • Atomic ModSecurity Rule Set. L'ultima versione delle regole contiene tutti i miglioramenti della performance, nuove funzionalità di sicurezza e correzioni di errori rilasciate da Atomicorp GotRoot ogni giorno. Si tratta di un set di regole commerciale totalmente supportato e consigliato per l'utilizzo di produzione. Per abilitare questo set di regole in Plesk, registrati sul sito Atomic e indica il nome utente e la password dal sito.

      Attenzione: Se selezioni il set di regole Atomic, esegui la seguente procedura per garantire che ModSecurity funzioni correttamente:

      Esegui il comando aum -u sul server. Il pacchetto Plesk modsecurity sarà sostituito da quello dell'archivio Atomic. Dopo, esegui i seguenti comandi:

      • plesk sbin modsecurity_ctl --disable
      • plesk sbin modsecurity_ctl –enable
      • service httpd restart
    • Comodo ModSecurity Rule Set. Si tratta di un sistema di controllo del traffico basato su regole personalizzabili e facili da usare che protegge le applicazioni basate sul web ed evita le emergenti tecniche di hacking con l'utilizzo di un database di regole frequentemente aggiornate. Questo set di regole è compreso gratuitamente. Per abilitare questo set di regole in Plesk, registrati sul sito Comodo e indica il nome utente e la password dal sito.
  4. Per aggiornare automaticamente il set di regole selezionato, seleziona la casella di controllo Aggiorna set di regole e seleziona il periodo di aggiornamento.
  5. Seleziona un set di parametri predefiniti o indica le proprie direttive ModSecurity personalizzate. È possibile selezionare i set di parametri predefiniti con le seguenti modalità:
    • Veloce, quando l'URI della richiesta HTTP e le sezioni delle intestazioni sono analizzate. Questa modalità è quella che utilizza meno CPU.
    • Compromessa, quando l'URI della richiesta HTTP, le intestazioni e i dati POST richiesta vengono analizzati. Questa modalità rappresenta un ottimo equilibrio tra qualità e prestazioni.
    • Approfondita, quando le intestazioni dell'intera richiesta HTTP, i dati POST richiesta e il contenuto del corpo della risposta HTTP sono analizzati. Questa modalità è quella che utilizza più risorse della CPU, ma può essere consigliata per i siti che richiedono speciali misure di sicurezza. Per esempio, i negozi online che accettano i pagamenti tramite carta di credito.

      Nota: Per ottenere prestazioni ottime, il firewall dell'applicazione web richiede un server DNS locale con il caching di richiesta abilitato. Altrimenti, i tuoi siti web potrebbero caricarsi lentamente mentre che il firewall dell'applicazione web viene attivato.

ModSecurity usa due posizioni per i registri:

  • Il registro di controllo di ModSecurity (situato in /var/log/httpd/modsec_audit.log) è molto dettagliato e molto utilizzato dall'intero server Plesk. Quando ModSecurity rileva che un evento è avvenuto, genera una voce nel file registro di controllo.Per visualizzare il registro di controllo di ModSecurity, vai su  Strumenti e impostazioni > Web Application Firewall (ModSecurity) > fai clic sul link Archivio di registri nella sezione Registro di controllo di ModSecurity. In questa sezione puoi visualizzare i file di registro di ModSecurity, le date di modifica e scaricare i file di registro.
  • Il registro di errori Apache per un dominio (situato in /var/www/vhosts/DOMAIN.TLD/logs/error_log) contiene soltanto la breve informazione sugli errori del sito web. È possibile visualizzare il registro degli errori di un determinato sito web nel Pannello del Cliente su Siti Web e Domini > <domain_name> > Registri > seleziona unicamente Errore di Apache ed errore nginx invece di Tutti i registri sulla destra.

Un sito web può anche smettere di funzionare come previsto dopo aver cambiato la modalità del firewall dell'applicazione web da Disattivato verso Attivato o solo Rilevamento. Nel registro degli errori del sito web, puoi trovare codici di errore quali 403, 404 o 500 che smettono di comparire dopo aver cambiato la modalità del firewall dell'applicazione in solo Rilevamento o Disattivato. In tale caso, analizza il registro di controllo ModSecurity per scoprire cosa sta succedendo. Puoi disattivare le regole di sicurezza eccessivamente restrittive o regolare il sito web.

Per scoprire perché una richiesta HTTP non può essere completata per un sito web e disattivare la regola di sicurezza:

  1. Vai su  Strumenti e impostazioni > Web Application Firewall (ModSecurity).
  2. Fai clic sul link File di registro ModSecurity per scaricare il registro di controllo e aprirlo in una nuova finestra del browser.
  3. Usa l'opzione di ricerca (Ctrl+F nella maggior parte di browser web) per trovare gli eventi per il sito web (il nome di dominio) che hanno causato problemi. Per esempio, your_domain.tld. Il browser evidenzierà voci come HOST: your_domain.tld.Nelle tre righe sopra la voce evidenziata, trova una stringa del tipo--eece5138-B--. Gli otto caratteri fra trattini (nel nostro esempio, eece5138) rappresentano l'ID dell'evento attivato dalla richiesta HTTP.
  4. Cerca ancora altre voci con lo stesso ID dell'evento.Cerca una voce con la lettera H dopo l'ID dell'evento (nel nostro esempio, eece5138-H--). Questa voce contiene l'ID e una descrizione della regola di sicurezza attivata durante la verifica della richiesta HTTP.L'ID della regola di sicurezza è un numero intero tra virgolette che inizia con 3 ed è scritto con il prefisso id tra parentesi quadre. Per esempio: [id "340003"].
  5. Trova l'ID di una regola di sicurezza nell'evento mediante la stringa secondaria [id "3.
  6. Vai su  Strumenti e impostazioni > Web Application Firewall (ModSecurity).
  7. Nella sezione Regole di sicurezza, seleziona la regola di sicurezza dalla sua ID (per esempio, 340003), da un'etichetta (per esempio, CVE-2011-4898) o da un'espressione regolare (per esempio, XSS) e fai clic su OK.
Suggerimenti utili se avevi installato ModSecurity sul server prima di aggiornare a Plesk 12:
  • Plesk installerà il proprio pacchetto ModSecurity. Tuttavia, durante la fase di verifica precedente all'aggiornamento  l'Installer Plesk chiederà se si desidera che Plesk ModSecurity possa essere installato sopra l'installazione esistente.
  • La tua configurazione ModSecurity esistente rimane così com'è. Tuttavia, esistono numerose distribuzioni e configurazioni per ModSecurity e quindi è difficile predire il modo in cui le vecchie e le nuove configurazioni potrebbero entrare in conflitto. Per evitare problemi, salva la configurazione esistente e disinstalla ModSecurity prima di aggiornare a Plesk 12 (o prima di installare ModSecurity di Plesk).