CMS - Analisi Vulnerabilità

Post on 18-Nov-2014

902 views 3 download

description

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à.

Transcript of CMS - Analisi Vulnerabilità

CMS, Analisi automatica delle vulnerabilità

Raffaele ForteSecurity Advisor. Founder & Core Developer at BackBox Linux

Raffaele ForteFounder at BackBox Linux http://www.backbox.org

Embedded Linux engineer at Akhelahttp://www.akhela.org

Security Advisor at Open Soluzionihttp://www.opensoluzioni.it

Emailraffaele@backbox.org

raffaele.forte@akhela.com

Summary ● Content Management System● Metodologia● OWASP TOP 10● Analisi Automatica

○ BackBox Linux■ Wappalyzer, WhatWeb■ Joomscan, WPScan

● Exploiting● Conclusioni

Content Management System

Exploit by exploit-db.com

Metodologia● Information Gathering● Vulnerability Assessment● Exploitation● Privilege Escalation● Maintaining Access● Documentation & Reporting

Information GatheringLa raccolta delle informazioni permette all'attaccante di acquisire dati utiliWeb Applications / CMS● Piattaforma utilizzata (WordPress, Joomla, Drupal, ecc.)● Numero di versione ● Plugins installati

WhatWeb è un software open-source che effettua questa tipologia di analisi

Vulnerability AssessmentAvere 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.

ExploitLa 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.comhtp://www.1337day.com

Maintaining AccessViolato 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.

Documentation & ReportingL'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

OWASP TOP 10Le 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. Injection2. Cross-Site Scripting (XSS)3. Broken Authentication and

Session Management4. Insecure Direct Object Reference5. Cross-Site Request Forgery

(CSRF)

6. Security Misconfiguration7. Insecure Cryptographic Storage8. Failure to Restrict URL Access9. Insufficient Transport Layer

Protection10. Unvalidated Redirects and

Forwards

Analisi automaticaUn 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à.

Analisi automaticaIntrodurremo 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.

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.

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.

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.

WhatWebVediamo 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)

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.

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.)

Exploiting

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.

Grazie per l'attenzione