Corso Drupal 2013 Andrea Dori Sicurezza in Drupal Corso Drupal 2013 Andrea Dori
Cosa rende sicuro un sito Drupal? Password ‘forti’ Account dedicati Utilizzare il meno possibile User 1 Rendere stringenti i permessi Usare i text format per limitare l’input Evitare di usare PHP filter
Password ‘forti’ Quanto tempo ci vuole per scoprire una password? Ma la password più sicura è anche quella più difficile da ricordare!
Password semplici e ‘forti’ Potete usare, e Drupal le accetta, password di due o più parole. Potete leggere il resto dell’articolo su: http://www.baekdal.com/insights/password-security-usability
Account dedicati Non create account utente condivisi fra più utenti Create ruoli Eventualmente create ruoli multipli da stratificare per raggiungere la granularità voluta Attenzione al ruolo Authenticated
Non utilizzare User 1 Come per tutti i sistemi, l’utilizzo diretto del superuser è fortemente sconsigliato Ogni account Drupal è legato a un indirizzo di email. E’ un rischio anche la compromissione della casella di posta E’ possibile creare un account utente in un ruolo di amministrazione e disabilitare user 1 (abilitandolo quando serve, eventualmente)
Rendere stringenti i permessi Concedere il meno possibile permessi non specifici, come ‘bypass view access control’, ad esempio Come detto prima, non abbiate paura di creare troppi ruoli Drupal consente una grande granularità, bisogna sfruttarla
Usare i text format per controllare l’output La possibilità di inserire qualsiasi sequenza di caratteri in un campo testo di Drupal porta alla vulnerabilità più diffusa: il cross-site scripting (XSS) L’utilizzo di ‘filtered HTML’ o ‘plain text’ elimina o rompe le sequenze di caratteri ‘minacciose’ Il modulo Security Review vi fornisce una valutazione sullo stato di sicurezza del sito Per saperne di più su XSS: http://en.wikipedia.org/wiki/Cross-site_scripting
Evitare di usare PHP filter Anche se è comodo inserire codice PHP direttamente nell’interfaccia web è anche molto pericoloso! È difficile eseguire il debug del codice Il versioning diventa impossibile Un hacker potrà iniettare qualsiasi tipo di codice se lasciate aperta la possibilità
Sicurezza dei moduli I moduli non sono sicuri tutti allo stesso modo e la sicurezza complessiva di un sito è quella del modulo meno sicuro Come faccio a capire se un modulo o un tema sono sicuri?
Moduli diffusi e mantenuti I moduli più diffusi e con alta frequenza di aggiornamento sono anche più sicuri
Moduli con minori problemi di sicurezza Per controllare il livello di sicurezza di un modulo è utile controllare la coda degli issues
Eseguite sempre gli aggiornamenti Gli aggiornamenti della codebase e dei moduli costituiscono la pietra angolare della sicurezza complessiva del sito
Sicurezza del sistema La sicurezza del sistema sul quale Drupal è installato è ovviamente fondante del sistema di sicurezza complessivo. Anche se il sistema ‘resiste’ agli attacchi può subire consistenti impatti sulle performance se viene continuamente attaccato.
Un metodo di protezione del sistema: il .htaccess Tramite una corretta configurazione del .htaccess è possibile evitare che gli attacchi vengano elaborati tramite PHP e Mysql. Questo ha il duplice effetto di rendere più sicuro il sistema e migliorare le performance. Un esempio: RewriteCond %{QUERY_STRING} ^.*(tag=|DFind).* [NC] RewriteRule ^(.*)$ - [F,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]