Uno dei principali CMS attualmente utilizzati è, senza dubbio, WordPress. Sebbene si tratti di una soluzione generalmente sicura (e comunque continuamente aggiornata per correggere eventuali bug), l'utilizzo di alcuni plugin si è spesso rivelato il vero punto debole di questo (e di altri) CMS. Piuttosto che le vulnerabilità intrinseche della piattaforma, infatti, i bersagli preferiti da hacker malintenzionati sono generalmente rappresentati da alcuni plugin vulnerabili.
Una delle precauzioni fondamentali per proteggersi da eventuali attacchi è quindi quella di analizzare i plugin installati sul proprio sito web basato su WordPress, e verificare quali di essi lo espongano a rischi più o meno alti. A tale scopo esistono diversi tool, molti dei quali gratuiti ed open source, per l'analisi di vulnerabilità su WordPress. Oltre a WPScan (di cui abbiamo parlato in un precedente articolo), un'altra opzione è rappresentata da Plecost, un tool open source, scritto in Python ed abbastanza semplice da usare.
Nel seguito vedremo come utilizzare questo strumento su un sistema operativo basato su Linux, partendo dall'installazione, fino a mostrarne le principali funzionalità.
Installazione
La prima cosa che dobbiamo fare per potere utilizzare Plecost è assicurarci di avere a disposizione Python 3 (o versioni successive). Ad oggi, l'ultima versione di Python è la 3.5.0, e possiamo scaricarla dal sito ufficiale, per tutti i principali sistemi operativi.
Una volta scaricata ed installata l'ultima versione di Python 3, non resta che procurarci Plecost. A tal fine possiamo fare ricorso a pip, la comoda utility di Python che ci permette di installare facilmente diversi moduli. Se non abbiamo a disposizione pip (che comunque dovrebbe essere installato di default a partire dalla versione 3.4 di Python), possiamo installarlo seguendo le istruzioni disponibili su questa pagina.
Installato pip, non rimane che aprire una shell del sistema operativo che stiamo utilizzando, e digitare quanto segue:
# python3 -m pip install plecost
Sebbene non sia specificato tra le istruzioni di installazione ufficiali (disponibili sulla pagina di GitHub del progetto), durante la fase di installazione potrebbe essere necessario specificare i permessi di amministratore. Una volta completato questo processo, comunque, saremo pronti ad utilizzare Plecost.
Utilizzare Plecost
Per iniziare a capire le potenzialità di questo tool, apriamo una shell ed eseguiamo il comando seguente da riga di comando:
$ plecost http://www.ilmiosito.com
Così facendo, Plecost inizierà l'analisi del sito web che abbiamo specificato. Se si tratta di una installazione di WordPress, essa sarà generalmente riconosciuta, e dopo qualche minuto otterremo dei risultati simili ai seguenti:
[*] Testing target connection... ok!
[*] Looking for WordPress installation...
[#########################################] 100.00%
ok!
[*] Getting WordPress version... unknown (latest: 4.3.1)
[*] Looking for plugins (wordlist: plugin_list_50.txt) ...
<!> Plugin found: WordPress Importer
|_Latest version: 0.6.1
|_Installed version: 0.6
<!> Plugin found: Google XML Sitemaps
|_Latest version: 4.0.8
|_Installed version: 3.2.9
<!> Plugin found: Redirection
|_Latest version: 2.3.14
|_Installed version: 2.2.13
<!> Plugin found: Really Simple CAPTCHA
|_Latest version: 1.8.0.1
|_Installed version: 1.5
<!> Plugin found: Akismet
|_Latest version: 3.0.4
|_Installed version: 2.5.9
<!> Plugin found: WP Super Cache
|_Latest version: 1.4.2
|_Installed version: 1.2
<!> Plugin found: Contact Form 7
|_Latest version: 4.1
|_Installed version: 3.5.3
<!> Plugin found: WordPress SEO by Yoast
|_Latest version: 1.7.3.3
|_Installed version: 1.4.1
[*] Done!
Come si vede, Plecost non fa altro che mostrare i plugin utilizzati, la relativa versione installata e l'ultima versione disponibile di ogni plugin. Nel caso in cui la versione installata è meno recente dell'ultima versione disponibile del plugin, si dovrebbe provvedere ad un aggiornamento, in modo da ridurre il rischio di vulnerabilità del sito sotto analisi.
Con Plecost ci viene offerta anche la possibilità di esportare automaticamente i risultati dell'analisi su un file, utilizzando i formati XML o JSON. Per farlo, possiamo utilizzare le opzioni -v
e -o
, come segue:
$ plecost -v http://www.ilmiosito.com -o results.json
In questo caso, l'output sarà in formato JSON. Se avessimo specificato un'estensione .xml, avremmo ottenuto un file XML.
Plecost contiene anche diverse informazioni sui plugin vulnerabili. Possiamo visualizzare la lista di tali plugin come segue:
$ plecost -nb --show-plugins
[*] Plugins with vulnerabilities known:
{ 0 } - acobot_live_chat_%26_contact_form
{ 1 } - activehelper_livehelp_live_chat
{ 2 } - ad-manager
{ 3 } - alipay
{ 4 } - all-video-gallery
{ 5 } - all_in_one_wordpress_security_and_firewall
{ 6 } - another_wordpress_classifieds_plugin
...
Questa lista di vulnerabilità, ovviamente, necessita di essere aggiornata il più spesso possibile. Per farlo, utilizzamo il comando che segue:
# plecost --update-plugins && plecost --update-cve
In linea di massima, le semplici operazioni appena descritte ci danno già un quadro di massima della sicurezza di un'installazione di WordPress. Tuttavia ci sono altre operazioni che possono tornare utili quando si utilizza Plecost, ed è possibile approfondirle facendo riferimento alle istruzioni avanzate sulla pagina di GitHub del progetto.