Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Lo Stato Attuale della Sicurezza nell'Ecosistema di Wordpress
1. Lo Stato Attuale della
Sicurezza nell'Ecosistema
di Wordpress
di GIANLUCA BRINDISI
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013
@WORDCAMPBOLOGNA # WPCAMPBO13
2. WPSCAN: CHI, COSA
Vulnerability scanner per Wordpress, open source e black box
http://wpscan.org - @_wpscan_
The Team:
• Ryan Dewhurst (@ethicalhack3r)
• Gianluca Brindisi (@gbrindisi)
• Erwan Le Rousseau (@erwanlr)
• Christian Mehlmauer (@_FireFart_)
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
8. VULNERABILITÀ
• In
Wordpress:
• Rare
• Coinvolgono
TUTTI
gli
uten1
• Non
banali
• Nei
Plugin
e
nei
Temi:
• Frequen1
• L'impaKo
dipende
dalla
popolarità
• Banali
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
9. VULNERABILITÀ: WORDPRESS CORE
Wordpress
è
abbastanza
sicuro:
• E'
un
prodoKo
maturo
• Sviluppato
professionalmente
• Lo
sviluppo
è
centralizzato
Qualche
vulnerabilità
recente:
• XMLRPC
Pingback
Portscanner
[0]
• Cross-‐Site
Request
Forgery
(CSRF)
[1]
• Cross-‐Site
Scrip1ng
(XSS)
[2]
hKps://github.com/wpscanteam/wpscan/wiki/WordPress-‐3.5-‐Issues
[0]:
hKps://github.com/FireFart/WordpressPingbackPortScanner
[1]:
hKp://packetstormsecurity.com/files/116785
[2]:
hKp://www.ethicalhack3r.co.uk/wordpress-‐3-‐3-‐cross-‐site-‐scrip1ng-‐xss/
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
10. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
I
plugin
e
i
temi
sono
PIENI
di
bug:
• Mol1
sono
sviluppato
amatorialmente
• Più
di
30
plugin/temi
nuovi
al
giorno
• Mol1
di
più
sono
vendu1
aKraverso
piaKaforme
commerciali
(i.e.
ThemeForest)
Vulnerabilità
ad
alto
impaBo:
• SQL
Injec1on
(SQLi)
• Remote/Local
File
Inclusion
(RFI/LFI)
• Cross-‐Site
Scrip1ng
(XSS)
• ...
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
11. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
...
Davvero?
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
12. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
Agosto
2011:
Mark
Marauder
scopre
una
vulnerabilità
in
TimThumb
X*
Plugin/Temi
coinvol1
*
Al
tempo
non
avevamo
le
risorse
per
trovare
il
numero
esaKo.
In
compenso
abbiamo
scriKo
un
1mthumb
scanner.
hKp://markmaunder.com/2011/08/01/zero-‐day-‐vulnerability-‐in-‐many-‐wordpress-‐themes/
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
13. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
Agosto
2011:
Miroslav
Stampar
(@stamparm)
decide
di
dare
un'occhiata
alla
directory
dei
plugin....
hKp://www.exploit-‐db.com/search/?
ac1on=search&filter_page=1&filter_descrip1on=&filter_exploit_text=wordpress&filter_author=miro
slav
+stampar&filter_plaoorm=0&filter_type=0&filter_lang_id=0&filter_port=&filter_osvdb=&filter_cve=
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
14. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
Agosto
2011:
Miroslav
Stampar
(@stamparm)
decide
di
dare
un'occhiata
alla
directory
dei
plugin....
64
Plugin
vulnerabili
alle
SQL
Injec1ons
hKp://www.exploit-‐db.com/search/?
ac1on=search&filter_page=1&filter_descrip1on=&filter_exploit_text=wordpress&filter_author=miro
slav
+stampar&filter_plaoorm=0&filter_type=0&filter_lang_id=0&filter_port=&filter_osvdb=&filter_cve=
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
15. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
SeKembre
2011:
Ben
Schmidt
(@_supernothing)
sistema1camente
scansiona
i
server
SVN
alla
ricerca
di
paKern
RFI/LFI
elementari...
hKp://spareclockcycles.org/2011/09/18/exploitring-‐the-‐wordpress-‐extension-‐repos/
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
16. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
SeKembre
2011:
Ben
Schmidt
(@_supernothing)
sistema1camente
scansiona
i
server
SVN
alla
ricerca
di
paKern
RFI/LFI
elementari...
38
Plugins
vulnerabili
a
RFI/LFI
hKp://spareclockcycles.org/2011/09/18/exploitring-‐the-‐wordpress-‐extension-‐repos/
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
17. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
Novembre
2012:
Una
vulnerabilità
di
1po
XSS
viene
scoperta
in
una
applet
flash
(swfupload.swf).
Insieme
con
Ryan
decidiamo
di
cercare
quan1
plugin
sono
coinvol1...
hKp://brindi.si/g/blog/vulnerable-‐swf-‐bundled-‐in-‐wordpress-‐plugins.html
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
18. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
Novembre
2012:
Una
vulnerabilità
di
1po
XSS
viene
scoperta
in
una
applet
flash
(swfupload.swf).
Insieme
con
Ryan
decidiamo
di
cercare
quan1
plugin
sono
coinvol1...
40
Plugin
Vulnerabili
hKp://brindi.si/g/blog/vulnerable-‐swf-‐bundled-‐in-‐wordpress-‐plugins.html
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
19. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
Basta
un'occhiata
veloce
nelle
directory
di
plugin
e
temi
per
trovare
vulnerabilità
La
carva
no1zia
è
che
non
c'è
nessun
controllo
di
qualità
La
buona
no1zia
è
che
i
repository
SVN
sono
di
pubblico
dominio
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
20. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
Qual'è
la
situazione
nei
market
place
commerciali
come
ThemeForest?
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
21. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
Qual'è
la
situazione
nei
market
place
commerciali
come
ThemeForest?
Non
c'è
nessun
controllo
qualità
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
22. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
Qual'è
la
situazione
nei
market
place
commerciali
come
ThemeForest?
Non
c'è
nessun
controllo
qualità
È
tuKo
closed
source
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
23. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
Qual'è
la
situazione
nei
market
place
commerciali
come
ThemeForest?
Non
c'è
nessun
controllo
qualità
È
tuKo
closed
source
TuKo
quello
che
possiamo
fare
è
trovare
i
temi
vulnerabili
tramite
google
dorks
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
24. VULNERABILITÀ: PLUGIN/TEMI DI TERZE PARTI
Errori
Comuni
• Nessun
controllo
sull'input
utente
• Inclusione
di
script
terzi
vulnerabili
• TimThumb
• SWFupload
• PLupload
• ...
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
25. VULNERABILITÀ: COME COLLEZIONARLE TUTTE
• Da
dove
prendiamo
le
informazioni:
• Wordpress
CHANGELOG!
• Exploit/Advisory
directories/ml
• Exploit-‐db.com
• Full
Disclosure
ML
•
....
• Honeypots
(sperimentale)
• Passaparola
-‐>
TwiKer!
• Cerchiamo
le
vulnerabilità
direKamente
-‐>
SVN
crawling!
• Abbiamo
scriKo
un
bot
per
aiutarci:
@wpvulns
• E
abbiano
anche
il
nostro
SVN
spider
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
26. VULNERABILITÀ: COME COLLEZIONARLE TUTTE
Il
processo:
1. Advisory
2. Tes1ng!
(se
ne
vale
la
pena)
3. Nel
caso
di
uno
0day
cerchiamo
di
contaKare
gli
autori
(plugin/temi)
o
direKamente
il
team
di
Wordpress
(core)
4. Aggiungiamo
la
vulnerabilità
al
DB
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
27. VULNERABILITÀ: REPORT
Segnalare
una
vulnerabilità
non
è
immediato:
• Spesso
veniamo
ignora1
• Il
bug
viene
patchato
di
nascosto
Generalmente
segnaliamo
direBamente
al
team
di
Wordpress
che
si
occupa
di
disabilitare
la
pagina
del
plugin/tema
dalla
directory
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
28. VULNERABILITÀ: REPORT
Lo
sviluppatore
/
designer
ideale
• Implementa
uno
schema
di
versioning
• Tiene
aggiornato
il
CHANGELOG
• Non
soKovaluta
un'advisory
• Corregge
i
bug
e
fa
del
suo
meglio
per
allertare
gli
uten1
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13
29. CONCLUSIONI
hKp://wpscan.org
-‐
@_wpscan_
Il
tool
serve
per
controllare
periodicamente
la
presenza
di
vulnerabilità.
Lavoriamo
quo1dianamente
per
mantenere
l'ecosistema
di
Wordpress
più
sicuro.
TuKo
quello
che
facciamo
è
open
source
-‐>
CONTRIBUITE!
WORDCAMP BOLOGNA - 9 FEBBRAIO 2013 @WORDCAMPBOLOGNA # WPCAMPBO13