Riassunto: In questa sezione, imparerai come proteggere le tue applicazioni web (come WordPress, Joomla! o Drupal) dagli attacchi utilizzando ModSecurity, un firewall di applicazioni web open source.

Questa sezione contiene una breve panoramica del funzionamento di ModSecurity e una spiegazione di come abilitarlo e configurarlo.

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 sito web per recuperare il contenuto. Se la verifica non è riuscita, vengono eseguite le azioni predefinite.

ModSecurity è supportato sia in Plesk per Linux che in Plesk per Windows. Funge da modulo (Apache, Nginx o IIS) per server web.

Attivazione di ModSecurity

Per attivare il firewall di applicazioni web:

  1. Vai a Strumenti e impostazioni > Firewall di applicazioni Web (ModSecurity) (sotto «Sicurezza»).

    Se questo link non è visibile, installa il componente ModSecurity in Strumenti e impostazioni > Aggiornamenti > Aggiungi/Rimuovi componenti > gruppo Hosting web.

    image mode selector

  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 viene trasferita al sito web per recuperare il contenuto. 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. (Solo Plesk per Linux) Vai alla scheda «Impostazioni», poi seleziona la versione di ModSecurity desiderata dal menu a tendina Esegui regole su:

    • Apache (ModSecurity 2.9) (consigliato). ModSecurity 2.9 funziona solo per domini su cui è stata abilitata la «modalità Proxy» nelle Impostazioni Apache & nginx.
    • Nginx (ModSecurity 3.0). ModSecurity 3.0 può utilizzare solo set di regole da OWASP e Comodo. Ti consigliamo caldamente di provare ModSecurity 3.0 su un server di prova prima di utilizzarlo nel tuo ambiente di produzione.
  4. Seleziona un set di regole disponibile 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:

    image rule sets

    • Atomic Standard (gratuito, è possibile eseguire l’aggiornamento ad Atomic Advanced). Una versione di prova gratuita delle regole Atomic ModSecurity, fornita con Plesk. Contiene importanti informazioni di sicurezza e correzioni rilasciate ogni mese. Per le regole incluse in questo set di regole, consultare Set di regole di Atomic ModSecurity.

    • OWASP (gratuito). Il set di regole core ModSecurity OWASP (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.

    • (Plesk per Linux) Comodo (gratuito). Un semplice e personalizzabile sistema di controllo del traffico basato su regole che protegge le tue applicazioni basate sul web e previene le emergenti tecniche di hacking grazie a un database di regole frequentemente aggiornate.

    • Atomic Advanced. 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. Plesk fornisce la funzionalità aggiuntiva Funzionalità principali di sicurezza complete da Atomicorp che permette di abilitare questo set di regole in Plesk. È possibile ottenere questa funzionalità aggiuntiva nei modi seguenti:

      • Acquista il prodotto Regole avanzate ModSecurity di Atomicorp nel negozio online Plesk.
      • Se si dispone già di una licenza di Plesk, è possibile integrare la funzionalità aggiuntiva tramite la UI di Plesk Partner Central o mediante l’API dei partner (per informazioni dettagliate, fare riferimento al Manuale utente di Partner Central oppure ad API 3.0 dei partner).
      • Se si dispone di una licenza di Plesk ma non si ha accesso a Plesk Partner Central, contattare il proprio fornitore.

      Se si dispone già di un account nel sito di Atomic, è possibile fornire il proprio nome utente e la password per abilitare questo set di regole.

      Nota: Se hai acquistato questa funzionalità extra, l’interfaccia di Plesk mostrerà Atomic Advanced invece che Atomic Standard (gratuito, si può effettuare l’upgrade ad Atomic Advanced), cioè il set di regole ModSecurity Atomic Advanced completo.

      Per le regole incluse in questo set di regole, consultare Set di regole di Atomic ModSecurity.

    • Set di regole personalizzato. Puoi caricare un set di regole per il firewall di applicazioni web, ad esempio un pacchetto di prova da Atomic o un pacchetto gratuito da Comodo. Formati supportati: zip, tar.gz, tgz, tar.bz2, conf.

  5. Per aggiornare automaticamente il set di regole selezionato, seleziona la casella di controllo Aggiorna set di regole e seleziona il periodo di aggiornamento.

  6. 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.

      image configuration

File di registro (Linux)

In Linux, ModSecurity usa due posizioni per i registri:

  • Il registro di controllo di ModSecurity (situato in /var/log/modsec_audit.log) è molto dettagliato e 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, accedi a 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.

File di registro (Windows)

In Windows, i registri di controllo di ModSecurity sono specifici per dominio e si trovano in %plesk_dir%ModSecurity\vhosts\<domain's GUID>\logs (dove %plesk_dir% corrisponde alla directory di installazione predefinita per Plesk).

Disattivazione delle regole

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:

  1. Visualizza il file del registro di controllo per il sito web.

    In Plesk per Linux puoi utilizzare l’interfaccia utente di Plesk per visualizzare il registro: passa a  Strumenti e impostazioni > Firewall Applicazione Web (ModSecurity) quindi fai clic sul link File di registro ModSecurity per scaricare il registro di controllo e aprirlo in una nuova finestra del browser.

  2. 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 quali 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.

  3. Search further for other entries with the same event ID. Look for an entry with the letter H after the event ID (in our example, eece5138-H--). This entry contains the ID and description of the security rule triggered while checking the HTTP request. The security rule ID is an integer number in quotation marks with the prefix id in square brackets (for example, [id "340003"] or [id "913102"]).

  4. Find a security rule ID in the event using the substring (for example, [id "3). This ID can be used when you switch off rules.

Per disattivare una regola:

  1. Vai a  Strumenti e impostazioni > Firewall di Applicazione Web (ModSecurity).
  2. Nella sezione Disattiva 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.