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]
Scarica

Sicurezza in Drupal