Un CMS vulnerabile può permettere a un attaccante di prendere il pieno controllo del sito (Blog, Forum, e-commerce, etc.), fornendo la possibilità di modificare i contenuti, creare e rimuovere utenti e nel caso peggiore ottenere persino il controllo del server su cui è installato. Sempre più aziende ed enti istituzionali adottano questi strumenti, ma quali sono i vantaggi e che livello di sicurezza garantiscono gli attuali CMS? Affronteremo queste tematiche servendoci di metodologie e strumenti automatici di verifica delle vulnerabilità.
1 of 26
Downloaded 15 times
More Related Content
CMS - Analisi Vulnerabilità
1. CMS, Analisi automatica
delle vulnerabilità
Raffaele Forte
Security Advisor. Founder & Core Developer at BackBox Linux
2. Raffaele Forte
Founder at BackBox Linux
http://www.backbox.org
Embedded Linux engineer at Akhela
http://www.akhela.org
Security Advisor at Open Soluzioni
http://www.opensoluzioni.it
Email
raffaele@backbox.org
raffaele.forte@akhela.com
3. Summary ● Content Management System
● Metodologia
● OWASP TOP 10
● Analisi Automatica
○ BackBox Linux
■ Wappalyzer, WhatWeb
■ Joomscan, WPScan
● Exploiting
● Conclusioni
7. Information Gathering
La raccolta delle informazioni permette all'attaccante di acquisire
dati utili
Web Applications / CMS
● Piattaforma utilizzata (WordPress, Joomla, Drupal, ecc.)
● Numero di versione
● Plugins installati
WhatWeb è un software open-source che effettua questa tipologia di
analisi
8. Vulnerability Assessment
Avere un quadro completo dello stato di esposizione dei propri
sistemi a tutte le vulnerabilità note.
Tools automatici (Joomscan, WPScan, ecc.)
Grazie alla loro velocità di scansione permettono di verificare se la
versione installata è potenzialmente vulnerabile.
9. Exploit
La fase di Exploit si configura come un vero e proprio attacco, si
sfrutta una particolare vulnerabilità che può portare ad acquisire
privilegi di amministrazione sul sistema bersaglio.
Gli exploit possono essere classificati a seconda del tipo di
vulnerabilità che sfruttano.
http://www.exploit-db.com
htp://www.1337day.com
10. Maintaining Access
Violato il sistema è comodo mantenere l'accesso in modo da
poter operare in un secondo momento senza ripetere l'intero
hack.
A tale scopo è solito installare una una web-shell (Weevely) che
ci permetterà di avere un controllo immediato del sistema.
11. Documentation & Reporting
L'attività si conclude con:
● Pulizia delle tracce
● Stesura di un report dettagliato sulle vulnerabilità riscontrate
● Analisi dell'impatto di rischio
● Possibile soluzione tecnica al problema
12. OWASP TOP 10
Le vulnerabilità relative ai CMS rientrano nelle criticità delle web
applications. Vediamo ora la classifica stilata da OWASP delle “TOP
10” per l’anno 2010 :
1. Injection 6. Security Misconfiguration
2. Cross-Site Scripting (XSS) 7. Insecure Cryptographic Storage
3. Broken Authentication and 8. Failure to Restrict URL Access
Session Management 9. Insufficient Transport Layer
4. Insecure Direct Object Reference Protection
5. Cross-Site Request Forgery 10. Unvalidated Redirects and
(CSRF) Forwards
13. Analisi automatica
Un progetto può essere considerato piu o meno sicuro in base alla sua
complessità, più sono le variabili in gioco maggiore è il rischio.
● Un CMS che fa uso di diversi moduli aggiuntivi è sicuramente più
esposto a bachi rispetto ad un CMS base.
● Più il sistema è popolare maggiore sarà l’interesse da parte di crackers
nel ricercare vulnerabilità.
14. Analisi automatica
Introdurremo alcuni strumenti open-source per la verifica delle vulnerabilità
dei CMS WordPress e Joomla. L’analisi si concentrerà su queste due
piattaforme per una questione puramente pratica.
Come gia accennato questi strumenti semplificano l’intera attività di ricerca,
il vantaggio è nell’eseguire una grande quantita di test in poco tempo e il
tutto in maniera automatica.
15. BackBox Linux
● Distribuzione GNU/Linux derivata da
Ubuntu.
● Progettata per eseguire Penetration Test
e Vulnerability Assessment fornisce un
insieme di strumenti che facilitano l'analisi
di reti e sistemi informatici.
● Un ambiente desktop completo con gli
strumenti necessari ad un ethical hacker
per eseguire test di sicurezza.
16. Wappalyzer
● Estensione per browser che svela le
tecnologie utilizzate nei siti web.
● Rileva, durante la navigazione, CMS, web
shops, web server, framework JavaScript,
strumenti di analisi e altro.
● Molto utile per una prima analisi ma non
effettua una scansione approfondita.
17. WhatWeb
● Programma scritto in Ruby per il riconoscimento delle tecnologie web.
● Conta oltre 900 plugin, ognuno ha una specifica funzione.
● Riesce ad identificare diversi CMS, piattaforme di blog, strumenti per statistiche,
librerie JavaScript, web server, etc
● È utile anche per ricavare indirizzi email, errori SQL e molto altro ancora.
18. WhatWeb
Vediamo come funziona con un semplice esempio:
Molti siti basati su CMS possono essere identificati da meta tag HTML, tramite un
semplice confronto tra stringhe è possibile ottenere informazioni sulla tecnologia
utilizzata.
Es. WordPress:
Effettua oltre 15 test per identificare con precisione la versione (verifica la presenza
della favicon, di file di installazione, pagine di login o piu semplicemente scansiona il
path “/wp-content/” con relativi links)
20. JoomScan
● È un tool scritto in Perl per effettuare un’analisi di sicurezza di siti Joomla
● È sviluppato in seno al progetto OWASP.
● Compie diversi tipi di test: verifica la presenza di file inclusion, SQL injection,
command execution, XSS, DOS, directory traversal vulnerabilities, ecc.
● Velocità di scansione, le richieste sono mirate.
● Precisione nel rilevare la versione dell'applicazione, uno scanner generico non è
altrettanto preciso avendo un range di azione più ampio.
● Verifica di tutte le possibili vulnerabilità note, fa uso di un database interno
periodicamente aggiornato.
22. WPScan
È un vulnerability scanner scritto in Ruby per la verifica di sicurezza di installazioni
WordPress. Le principali caratteristiche di questo programma:
● Username enumeration
● Weak password cracking (multithreaded)
● Version enumeration (from generator meta tag and from client side files)
● Vulnerability enumeration (based on version)
● Timbthumb file enumeration
● Plugin enumeration (2220 most popular by default)
● Plugin vulnerability enumeration (based on plugin name)
● Plugin enumeration list generation
● Other misc WordPress checks (theme name, dir listing, etc.)
25. Conclusioni
● Mai trascurare gli aggiornamenti! Un CMS anche base non è immune da vulnerabilità,
è necessario seguire il progetto ed informarsi sulla presenza di nuove release.
● Utilizzare solo addons certificati. I pericoli maggiori per chi usa un CMS sono nell’
utilizzare addons di terze parti con qualità del codice molto bassa.
● Prestare attenzione quando si assegnano i permessi utente. Quasi tutti i CMS hanno
una struttura multi-utente, assegnare i giusti permessi significa permettere o inibire l’
accesso a sezione o contenuti riservati.
● Prestare attenzione se si utilizza un servizio di hosting condiviso. Anche se questo
fattore non è strettamente legato al CMS ricordarsi che alcuni file di configurazione
contengono informazioni sensibili come username e password. Sbagliare a settare i
permessi di accesso a questi file permetterebbe ad un altro utente di ottenere facilmente
queste informazioni.