150 likes | 313 Views
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’.
E N D
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]