Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

WordPress: 5 consigli per migliorarne la sicurezza

Miglioriamo la sicurezza della nostra installazione di WordPress seguendo cinque consigli per rendere la vita difficile ai malintenzionati che vogliono attaccare il nostro CMS.
Miglioriamo la sicurezza della nostra installazione di WordPress seguendo cinque consigli per rendere la vita difficile ai malintenzionati che vogliono attaccare il nostro CMS.
Link copiato negli appunti

WordPress è la piattaforma di blogging opensource più popolare (il 14.7% dei siti presenti nella Top 1M di Alex è basato su WordPress).
A causa di questa grande popolarità questo CMS è sempre più spesso bersaglio di attacchi informatici il cui scopo è quello di violare una installazion per diffondere malware.
Questi attacchi sono solitamente automatizzati e si basano su vulnerabilità note di alcuni plugin o su bug presenti in vecchie versioni del software.

Nella seguente guida vedremo quali accorgimenti è possibile adottare per aumentare la sicurezza di una installazione di WordPress per difenderci dalla maggior parte degli attacchi.

Aggiornamenti

La prima cosa di cui dobbiamo sincerarci è che la nostra installazione sia aggiornata all'ultima versione. Il team di WordPress svolge un grande lavoro nel patchare velocemente bug e vulnerabilità e rilasciare nuove versioni. Dalla dashboard si viene poi notificati in tempo reale sulla presenza di nuovi aggiornamenti quindi non ci sono scuse per non mantenere la propria installazione sempre aggiornata.

Il secondo passo è quello di tenere aggiornati tutti i plugin utilizzati ed anche qui il meccanismo di notifiche della dashboard fa un grande lavoro nel sengnalare la presenza di nuove versione.

Plugin, croce e delizia

I plugin sono, da un punto di vista della sicurezza, il tallone di Achille di qualsiasi CMS. A differenza dell'applicazione madre che è sviluppata con certi criteri di qualità e, solitamente, viene testata a fondo prima di essere rilasciata un plugin è, per sua natura, sviluppato in un contesto amatoriale dove è raro che si presti attenzione alla qualità del codice.

Inoltre il plugin, nel caso di WordPress, non viene eseguito in un ambiente controllato (sandbox) ma si interfaccia liberamente a risorse critiche come il database o i template. Per questo motivo una sola vulnerabilità in un plugin è sufficente a compromettere tutta una installazione e non a caso il 99% degli attacchi contro Worpress di basano proprio su falle presenti nei plugin.

Quindi come comportarsi?

Una politica intelligente è quella di limitare l'uso di plugins a quelli strettamente necessari, avendo cura di disabilitare e rimuovere tutti quelli non utilizzati.

È importante poi installare solo plugin che si possono trovare nella directory ufficiale. Il motivo di questo sta nel fatto che anche se il team di WordPress non esegue direttamente code reviews sul codice dei plugin risponde comunque della loro sicurezza disabilitandone il download e notificando gli utenti in caso di problemi.

Se, ad esempio, un ricercatore trova una vulnerabilità in un plugin può notificare direttamente lo staff di WordPress che si preoccuperà di avvertire l'autore e disabilitare il download fino a che non viene rilasciata una patch. Inoltre i plugin presenti nella directory ufficiale presentano uno storico delle versioni, changelog e i rating degli utenti che possono essere utili per farsi un'idea della professionalità dell'autore.

Quando un plugin scompare dalla directory è un indicatore del fatto che è stata notificata una vulnerabilità ma non è stata ancora rilasciata una patch. È buona norma quindi tenere d'occhio le pagine dei plugin che state utilizzando.

Proteggere il pannello di amministrazione

L'interfaccia di amministrazione è la componente più delicata di una installazione di WordPress e per questo motivo merita un'attezione speciale.

Anche se per l'account amministratore principale avete scelto una password robusta, altri utenti registrati potrebbero non averlo fatto e quindi potrebbero essere facili vittime di un attacco bruteforce.

Un'attaco bruteforce è eseguito da un bot che tenta di eseguire il login per conto di un utente generando tutte le combinazioni di password possibili per un determinato numero di caratteri. Questo tipo di attacco è molto comune perchè WordPress non implementa una meccanismo di lockout nell'interfaccia di login che blocca l'account dopo un certo numero di tentativi falliti.

Per proteggere quindi l'interfaccia una buona soluzione è quella di rendere i login automatici più complicati aggiungendo un'altro strato di autenticazione lato server come BasicAuth.
Ad esempio da linea di comando creiamo un file contenente username e password per un nuovo user

Admin:

htpasswd -c /path/to/WordPress/.htpasswd Admin

E aggiungiamo un file .htaccess alla cartella wp-admin:

AuthType Basic
AuthName "Accesso Amministrazione"
AuthUserFile /path/to/WordPress/.htpasswd
Require user Admin

basicauth wordpress

Per fare le cose davvero per bene l'ideale sarebbe di proteggere anche il file wp-login.php ma per fare questo invece di usare un file .htaccess per regolare il meccanismo di autenticazione dobbiamo modificare la configurazione del server. Ad esempio aggiungendo le seguenti righe ad httpd.conf (nel caso di Apache):

<Directory /path/to/WordPress/wp-admin/ >
    AuthType Basic
    AuthName "Accesso Amministrazione"
    AuthUserFile /path/to/WordPress/.htpasswd
    Require user Admin
</Directory>
<Files /path/to/WordPress/wp-login.php>
    AuthType Basic
    AuthName "Accesso Amministrazione"
    AuthUserFile /path/to/WordPress/.htpasswd
    Require user Admin
</Files>

Ostacolare il fingerprinting

Il fingerprint è il processo in cui un attaccante cerca di profilare una applicazione per determinare la sua vesione, la sua struttura, i plugin e i temi presenti e tutte qulle informazioni che possono risultare utili per formulare un attacco.

Solitamente un attaccante si affida a dei bot per eseguire automaticamente il fingerprint e per identificare così una grande quantità di installazioni di WordPress vulnerabili. Questi bot non sono sofisticati ed è possibile raggirarli adottando alcuni accorgimenti.

Per prima cosa dobbiamo eliminare i common files che non sono altro quei files che vengono lasciati da il processo di installazione automatico ma che non sono più necessari per il corretto funzionamento del CMS e che possono essere comunque letti per estrarre informazioni.

I classici file da eliminare sono i seguenti:

  • readme.html
  • license.txt
  • wp-config-sample.php
  • wp-admin/install.php

Il secondo passo è ostacolare il fingerprint di plugin e temi cambiando il nome della directory standard in cui vengono raccolti, cioè wp-content. Dalla versione 2.6 di WordPress si può cambiare il nome a questa directory cambiando un parametro nel wp-config:

define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content' );
define( 'WP_CONTENT_URL', 'http://example/blog/wp-content');

Il passo successivo è quello di elimare informazioni utili dal sorgente delle pagine generate da WordPress. Nei temi, ad esempio, è spesso presente il meta tag generator nell'intestazione che indica la versione in uso e che viene utilizzato per fini statistici ma che risulta essere una risorsa facilmente reperibile da un bot:

<head>
…
<meta name="generator" content="WordPress 3.4.1" />
…
</head>

Per finire è consigliabile rimuovere dal footer del tema il classico "Powered by WordPress" perchè è utilizzata dai bot come dork per trovare velocemente installazioni di WordPress tramite i motori di ricerca.

È importante notare che rendere difficoltoso il fingerprint non è una contromisura di sicurezza di per se, poichè eventuali vulnerabilità rimangono comuqnue al loro posto, ma solo un espediente per rallentare un attacco e imbrogliare la maggior parte dei bot.

Scanning

L'ultimo step è quello di analizzare la nostra installazione dal punto di vista di un attaccante per scoprire evenutali falle e vulnerabilità. Per fare ciò esistono molti strumenti in commercio ma ci sentiamo di consigliare a colpo sicuro l'ottimo WPScan che è uno scanner open source e costantemente aggiornato.

L'uso di questo strumento è stato brevemente trattato in un articolo precedente.

wpscan

Per avere un'idea di quello che può vedere un'attaccante potreste provare a scannerizzare la vostra installazione prima e dopo l'aver messo in pratica gli accorgimenti fino ad ora suggeriti.

Conclusioni

WordPress è un ottimo software con una grande comunità intorno e un gruppo di sviluppatori estremamente professionali alle spalle.

Sul Codex ufficiale potete trovare molti altri suggerimenti su come blindare ulteriormente la vostra installazione.

Ti consigliamo anche