Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

15
Sicurezza in Drupal Corso Drupal 2013 Andrea Dori

Transcript of Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

Page 1: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

Sicurezza in Drupal

Corso Drupal 2013Andrea Dori

Page 2: 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

Page 3: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

Password ‘forti’Quanto tempo ci vuole per scoprire una password?

Ma la password più sicura è anche quella più difficile da ricordare!

Page 4: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

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

Page 5: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

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

Page 6: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

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)

Page 7: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

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

Page 8: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

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

Page 9: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

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à

Page 10: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

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?

Page 11: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

Moduli diffusi e mantenuti• I moduli più diffusi e con alta frequenza di

aggiornamento sono anche più sicuri

Page 12: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

Moduli con minori problemi di sicurezza

• Per controllare il livello di sicurezza di un modulo è utile controllare la coda degli issues

Page 13: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

Eseguite sempre gli aggiornamenti

• Gli aggiornamenti della codebase e dei moduli costituiscono la pietra angolare della sicurezza complessiva del sito

Page 14: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

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.

Page 15: Sicurezza in Drupal Corso Drupal 2013 Andrea Dori.

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]