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 is supported in both Plesk for Linux and for Windows. It works as a web server (Apache, Nginx, or IIS) module.

Attivazione di ModSecurity

Per attivare il firewall di applicazioni web:

  1. Go to Tools & Settings > Web Application Firewall (ModSecurity) (under «Security»).

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

    image 78702

  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. (Linux) Go to the «Settings» tab, and then in the Run rules on drop-down menu, select the desired combination of the web server and ModSecurity version:

    • Apache (ModSecurity 2.9) (recommended).

    • Nginx (ModSecurity 3.0).

      Nota: Switching to Nginx (ModSecurity 3.0) may affect your existing applications. We recommend trying ModSecurity 3.0 out on a test server before switching your production environment to that version.

    If your Plesk server is running on a Microsoft Windows operating system, you will be able to select only the IIS (ModSecurity 2.9) combination and all the related settings will be present on one tab.

  4. Select an available set of rules that will be checked by the web application firewall engine for each incoming HTTP request, or upload a custom rule set. You can select the following rule sets:

    image 78703

    • Atomic Standard (free, can be upgraded to Atomic Advanced). A free starter version of the Atomic ModSecurity rules, bundled with Plesk. It contains important security features and bug fixes released on a monthly basis. For rules included in this rule set, see Atomic ModSecurity Rule Sets.

    • OWASP (free). The OWASP ModSecurity Core Rule Set (CRS) provides generic protection from unknown vulnerabilities often found in web applications. This rule set is shipped for free. It is known as a very restrictive rule set; it requires additional tuning for production use. When this rule set is selected, WordPress partly does not work, webmail and file sharing do not work either. You can use Atomic or Comodo rule sets instead.

    • (Plesk for Linux) Comodo (free). A free, simple-to-use, customizable, rules-based traffic control system that protects your web-based applications and prevents newly emerging hacking techniques with the use of a frequently updated rules database. Unlike the «Comodo (free subscription)» rule set, you do not need a subscription on the Comodo website to select «Comodo (free)».

    • Atomic Advanced. The latest version of the rules, with all the performance enhancements, new security features and bug fixes released by Atomicorp GotRoot on a daily basis. This is a commercial rule set that is fully supported and recommended for production use. Plesk provides the Security Core Complete by Atomicorp extra feature that allows you to enable this rule set in Plesk. You can get this extra feature by the following ways:

      • Acquista il prodotto Regole avanzate ModSecurity di Atomicorp nel negozio online Plesk.
      • If you already have a Plesk license, you can add the extra feature via the Plesk Partner Central UI or via the Partner API (for details, refer to the Partner Central User’s Guide or Partner API 3.0 reference).
      • 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: If you get this extra feature, the Plesk interface will display Atomic Advanced instead of Atomic Standard (free, can be upgraded to Atomic Advanced), and this actually means the complete Atomic Advanced ModSecurity rule set.

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

      Attenzione: (Plesk for Linux) If you select the Atomic ruleset, perform the following procedure to ensure that ModSecurity works fine. Run the aum -u command on the server. The Plesk modsecurity package will be replaced by that from the Atomic repository. Then run the following commands:

      • plesk sbin modsecurity_ctl --disable
      • plesk sbin modsecurity_ctl --enable
      • service httpd restart
    • (Plesk for Linux) Comodo (free subscription). This is a simple-to-use, customizable rules-based traffic control system that protects your web-based applications and prevents newly emerging hacking techniques with the use of a frequently updated rules database. This rule set is shipped for free. To enable this rule set in Plesk, register on the Comodo site and provide your username and password from this site.

      Nota: By default, Plesk does not show the «Comodo (free subscription)» rule set. To make the rule set visible in the Plesk interface, add the following lines to the panel.ini file:

      [modSecurity]
      ruleSet.comodo = 1
      
    • Custom rule set. You can upload a custom web application firewall rule set, for example, a trial package from Atomic or a free package from Comodo. Supported formats: 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 76906

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)

On Windows, ModSecurity audit logs are domain-specific and located in %plesk_dir%ModSecurity\vhosts\<domain's GUID>\logs (where %plesk_dir% is the default installation directory for 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. 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"].

  4. Trova l’ID di una regola di sicurezza nell’evento mediante la stringa secondaria [id "3. Questo ID è utilizzabile quando vengono disattivate le regole.

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.

Note su Nginx e ModSecurity (Linux)

In Linux, ModSecurity è un modulo per Apache. Di conseguenza, può soltanto verificare le richieste HTTP che arrivano ad Apache. Apache può essere 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 (nelle impostazioni di Apache e nginx per un 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à.