Come mettere in sicurezza Drupal 8

Anche se la sicurezza rimane una delle maggiori preoccupazioni per un’organizzazione, l’implicazione delle nuove tecnologie ha allo stesso tempo ampliato e complicato il significato di questo termine.

Eventi recenti come Drupalgeddon 2 avvenuti a marzo 2018 e successivamente hanno ancora una volta portato al centro delle discussioni la domanda seguente: “Drupal è veramente sicuro?”.

Prima di rispondere a questa domanda vogliamo fornirvi una spiegazione in merito a Drupal e alla sua utilità.

Drupal è uno strumento che permette di realizzare una grande varietà di siti web.

Più precisamente è un CMS (Content Management System) o “Sistema di gestione dei contenuti” che consente all’amministratore del sito ed eventualmente ad altri utenti di inserire ed aggiornare i contenuti senza dover conoscere particolari linguaggi come HTML o PHP o far uso di programmi come Dreamweaver, Frontpage, Nvu.

Le varie caratteristiche e funzionalità del sito possono essere estese istallando gli opportuni moduli, attualmente oltre 2000 in costante aumento.

Attraverso Drupal 8 risulta abbastanza semplice realizzare un sito multilingua con gallerie fotografiche, calendario degli eventi, forum, blog, ecommerce e molto altro.

Drupal è progetto open source scritto in PHP, gestito e sviluppato da una comunità molto vasta e il suo sito ufficiale è www.drupal.org (i riferimenti italiani sono Drupal Italia e Drupal.it).

Nel gennaio del 2011 è uscita la versione 7 di Drupal, mentre nel 2015 è finalmente uscita la versione 8 di Drupal basata su Synphony.

Drupal è uno di quei pochi progetti open source popolari per la loro sicurezza con un team che lavora quotidianamente per migliorarlo.

Nonostante ciò, esistono dei casi in cui la sicurezza di un sito Web Drupal può essere esposta a continue minacce; e poiché la sicurezza è una vasta area di competenza che sta rapidamente cambiando nel tempo in questo articolo abbiamo pensato di segnalarvi le principali pratiche di protezione da adoperare per proteggere un sito web basato su Drupal.

Pratiche di sicurezza di Drupal 8

Protezione Server-side Hosting Environment

Prima di iniziare, è necessario concentrarsi sulla protezione del server. Ecco alcuni punti da tenere a mente:

  1. Proteggi il server: solo un numero limitato di utenti può accedere al tuo server. Per questo motivo è importante limitare l’accesso ai dettagli di accesso al server. Una volta configurata l’autenticazione, è più facile monitorare l’accesso al server e limitare l’utilizzo dell’accesso ai file. Questa operazione potrà aiutarti a rilevare attività insolite;
  2. Nascondi la firma del server: la firma del server deve essere nascosta in quanto potrebbe rivelare informazioni importanti sul server e sul sistema operativo (potresti far sapere a un hacker se si sta utilizzando Apache o Linux). Al fine di proteggere il server da possibili vulnerabilità, quindi, il nostro consiglio è quello di nascondere sempre la firma del server;
  3. Abilita la sicurezza dei numeri delle porte: dal momento che le applicazioni utilizzano i numeri delle porte, è importante mantenerli nascosti dall’accesso generale.

Proteggere il “nucleo” di Drupal

Modalità aggiornamento

Un metodo pratico e veloce per mantenere il “Drupal core” aggiornato (lezione che abbiamo imparato da Drupalgeddon2) è quello di cercare gli aggiornamenti principali includendo anche le versioni minori. Il Drupal Security Team richiede sempre l’aggiornamento della versione core del sistema.

Poiché la storia ci insegna che gli hacker attaccano più di frequente le versioni precedenti di una piattaforma, il nostro consiglio è quello di provvedere sempre all’aggiornamento della stessa.

Segui il team di sicurezza Drupal @drupalsecurity su Twitter e cerca gli aggiornamenti principali sul tema sicurezza.

Riceverai rapidi consigli direttamente dal team e altre news tramite e-mail e newsletter. Inoltre, se l’argomento è di tuo interesse, puoi anche seguire Security Group per contribuire e far parte delle discussioni sulla sicurezza.

Ma “quando” aggiornare il core? Di questo ne parleremo più avanti nell’articolo.

Sicurezza tramite design

La migliore pratica da seguire è a livello di architettura quando viene progettato il sito web.

Security by Design assicura infatti che la progettazione del software sia protetta al fine di minimizzare l’impatto della vulnerabilità. Aumentare la sicurezza dalle fondamenta è la chiave per una protezione ottimale.

Ciò implica di seguire le migliori pratiche di sicurezza a livello di “architettura” invece che dopo la creazione del sito web.

Quando le fondamenta del design rimangono sicure puoi affrontare i problemi del sito con più facilità. È necessario tuttavia adottare una metodologia uniforme per proteggere le risorse dalle minacce.

  • Utilizza il modulo di sicurezza aggiuntivo

Quando si punta sulla sicurezza, non c’è niente di meglio che equipaggiarsi a dovere per fronteggiare qualsiasi tipo di minaccia.

Così, per mantenere alto il livello di difesa del tuo sito e per impedirti di diventare la prossima vittima di un potenziale attacco informatico, potrai utilizzare i seguenti moduli di sicurezza aggiuntivi: security kit, captcha e paranoia.

  • Security Kit

SecKit offre a Drupal varie opzioni di protezione avanzata. Ciò consente di mitigare i rischi di sfruttamento delle diverse applicazioni Web come cross-site scripting (XSS), cross-site request forgery, SSL, Clickjacking e altre.

  • Captcha

Un Captcha è un test di reazione inserito nelle strutture web per eliminare l’ingresso da parte dei robot. Aiuta a proteggere i contatti del tuo sito Web attraverso l’iscrizione a moduli chiedendo di dimostrare una sorta di credibilità come “umano” con una sequenza di simboli, numeri e talvolta immagini.

  • Paranoia

Paranoia ti aiuta a identificare tutti i punti vulnerabili. Questo modulo avvisa l’amministratore quando un utente malintenzionato tenta di decifrare lo script PHP tramite l’interfaccia del sito web.

Aiuta a bloccare il permesso per l’utente che non avrà la visibilità del PHP.

Inoltre impedisce al sito Web di concedere un permesso rischioso, soprattutto quelli che comportano la perdita delle informazioni dello script.

Utilizza solo moduli approvati dal team di sicurezza

Probabilmente il tuo sito utilizza un numero di moduli reperiti da fonti diverse. Tuttavia l’utilizzo di moduli stabili e approvati dal team di sicurezza sembra essere la chiave per una migliore resa del tuo sito in quanto l’utilizzo di moduli contrib potrebbe esporre il portale a condizioni di vulnerabilità.

Cerca sempre il simbolo verde quando scarichi un modulo contrib e, come recita il comunicato, usalo a tuo rischio e pericolo!

Backup – In caso di disagio

  • Fai il backup del sito

Le catastrofi non avvengono mai con opportuno preavviso. Mentre tutto sembra perfetto, infatti, in un giorno qualunque, potresti sperimentare un risveglio per nulla piacevole una volta esserti accorto che il tuo sito web è stato rimosso da qualche hacker psicotico.

Ma niente paura. Come suggerito in precedenza puoi sempre prepararti per evitare questi spiacevoli inconvenienti.

Come amministratore, infatti devi essere preparato a qualsiasi evenienza poiché questi problemi possono essere controllati e il danno ridotto al minimo rafforzando la sicurezza con:

  • backup frequenti;
  • installazione di aggiornamenti in modo tempestivo.

L’hosting di Acquia cloud o Pantheon, ad esempio, fornisce backup automatici giornalieri del database, dei file e del codice del tuo sito più il ripristino con un clic se qualcosa va storto.

Sicurezza lato utente

Le password vengono utilizzate sia dall’amministratore che dall’utente; pertanto le password sicure sono importanti per il tuo sito web.

E quando diciamo che si dovrebbero usare password più efficaci, di certo non vogliamo screditare le password brevi e facili.

Facile ovviamente non significa “meno efficiente”. Una stringa come Mypassword123, ad esempio, potrebbe essere una soluzione discreta, ma è ovviamente debole e può essere facilmente forzata.

Quale soluzione adottare quindi?

Una password deve essere creata con una combinazione di caratteri, lettere maiuscole e minuscole, simboli e numeri. Occorre controllare le password in base ai tipi di caratteri diversi da utilizzare (simboli, numeri, lettere maiuscole, ecc.) e poi procedere con le modifiche più opportune.

Mentre ci sarà sempre qualcosa di nuovo da aggiungere alla lista, questo elenco comprende le pratiche fondamentali che occorre seguire per migliorare la sicurezza in Drupal 8.

Le procedure correttamente documentate sono importanti, poiché i servizi di terzi possono essere spesso manipolati.

I costruttori e gli sviluppatori di siti devono tenere d’occhio le release di sicurezza e applicarle rapidamente, per garantire che il sito non sia compromesso.