È risaputo che i temi e i plugin di WordPress possono rendere il tuo sito più vulnerabile agli attacchi. Tuttavia, anche le librerie di terze parti possono rendere il tuo sito vulnerabile agli hacker.

Fortunatamente, ci sono dei passaggi che puoi adottare per proteggere la tua installazione di WordPress, anche quando il problema ha origine da codice di terze parti. Questo non è mai stato più importante, poiché di recente è stata scoperta una vulnerabilità critica nella libreria che WordPress utilizza per inviare e-mail. 

In questo post, discuteremo di cosa sia questa nuova vulnerabilità di object injection e perché potrebbe essere un grosso problema per il tuo sito web. Condivideremo quindi tre semplici modi per proteggere il tuo sito dalla vulnerabilità di PHPMailer, oltre ad altri attacchi di site injection.

Iniziamo!

Introduzione agli attacchi di site injection

Il core team di WordPress ha una buona reputazione nell’affrontare le vulnerabilità della piattaforma. Tuttavia, questo popolare Content Management System (CMS) non è inattaccabile. È ampiamente riconosciuto che alcuni temi e plugin di WordPress possono rendere il tuo sito più suscettibile agli attacchi. Tuttavia, anche le librerie di terze parti potrebbero mettere a rischio il tuo sito.

Recentemente, è stata scoperta una vulnerabilità di object injection nelle versioni di WordPress 3.7 fino alla 5.7.1, a causa della libreria PHPMailer . Questa libreria open source è il modo in cui WordPress invia e-mail senza richiedere ulteriori configurazioni.

Una vulnerabilità di object injection si verifica quando non si riesce a sanificare correttamente l’input fornito dall’utente prima di passarlo alla funzione PHP unserialize(). Poiché PHP consente la serializzazione degli oggetti, gli aggressori possono potenzialmente passare stringhe serializzate ad hoc a una chiamata unserialize(). Ciò può comportare l’inserimento di oggetti PHP arbitrari nell’ambito dell’applicazione.

Vale la pena notare che WordPress non consente l’accesso diretto a PHPMailer. Tutte queste interazioni vengono eseguite tramite l’ API (Application Programming Interface) di WordPress , che dispone di vari meccanismi di difesa incorporati.

Affinché un hacker possa sfruttare la libreria PHPMailer, il tuo sito dovrebbe già avere almeno una vulnerabilità aggiuntiva. In realtà, questo rende difficile sfruttare la falla di sicurezza. Tuttavia, se un hacker ha già accesso al tuo sito, potrebbe utilizzare questa vulnerabilità per aumentare i propri privilegi e infliggere danni. 

Un hacker potrebbe anche utilizzare questo punto debole per lanciare diversi attacchi gravi come SQL injection , denial of service e path traversal. 

Se uno di questi attacchi ha esito positivo, l’hacker potrebbe cancellare il tuo sito, eliminare il tuo account o sottrarre informazioni private e sensibili dei visitatori/clienti. Con tutti questi rischi, è importante prendere provvedimenti per colmare le falle di sicurezza note, comprese quelle difficili da sfruttare.

Come proteggere WordPress dagli attacchi di site injection (3 modi)

Secondo gli specialisti della sicurezza Patchstack , questo punto debole di PHPMailer è vicino al livello di criticità più alto. Su una scala da uno a dieci, utilizzando il Common Vulnerability Scoring System (CVSS) , Patchstack ha assegnato a PHPMailer un punteggio di 9.8. Questa è una valutazione preoccupante per qualsiasi gestore di siti web, quindi vediamo come puoi proteggere la tua installazione di WordPress.

1. Mantieni aggiornato il core di WordPress

Quando si tratta di proteggere il tuo sito web WordPress, il consiglio numero uno è sempre lo stesso: mantienilo sempre aggiornato.. Dopo aver scoperto questa vulnerabilità object injection, il team di WordPress ha rapidamente rilasciato un aggiornamento che risolve questo problema di sicurezza . Se non stai già utilizzando la versione 5.7.2 o successiva, è fondamentale eseguire l’aggiornamento ora.

Ogni volta che viene scoperta una vulnerabilità, il team di WordPress rilascia un aggiornamento di sicurezza il prima possibile. Tuttavia, non solo le patch di sicurezza ma anche le versioni regolari possono introdurre nuove funzionalità di sicurezza e meccanismi di difesa che possono aiutare a mantenere sicuro il CMS. 

Per impostazione predefinita, WordPress si aggiorna automaticamente alle versioni minori. Ad ogni modo, per essere certo che il tuo sito sia sicuro, potresti prendere in considerazione l’ abilitazione degli aggiornamenti automatici anche per le versioni principali.

WordPress 5.6 ha introdotto una nuova interfaccia utente (UI) con aggiornamento automatico che semplifica notevolmente la gestione degli aggiornamenti. Supponendo che tu stia utilizzando la versione 5.6 o successiva di WordPress, puoi attivare gli aggiornamenti automatici per le versioni principali accedendo a Dashboard > Aggiornamenti :

Come proteggere il tuo sito web dagli attacchi di site injection.

Quindi fai clic sul seguente collegamento: Abilita aggiornamenti automatici per tutte le nuove versioni di WordPress. Da questo punto in poi, puoi essere certo di utilizzare l’ultima versione di WordPress, che in teoria dovrebbe essere la più sicura.

2. Utilizza un firewall per applicazioni web

Per lanciare un attacco di object injection nelle versioni PHPMailer 6.1.8-6.4.0, l’hacker dovrebbe prendere di mira la Phar Deserialization via AddAttachment con un percorso UNC. Questo è il percorso di una cartella o di un file su una rete che contiene il nome del server. La buona notizia è che il firewall di Wordfence offre la protezione PHAR Deserialization integrata come parte delle versioni del plugin gratuite e premium.

Dopo aver attivato Wordfence, ti consigliamo di metterlo in modalità di apprendimento. Questa modalità è progettata per aiutarti a evitare falsi positivi, che si verificano quando Wordfence segnala erroneamente attività legittime come sospette. 

Durante la modalità di apprendimento, continua a interagire con il tuo sito normalmente. Questo dà a Wordfence l’opportunità di imparare i tuoi schemi e comportamenti regolari. Può quindi consentire tutte queste azioni, proteggendo il tuo sito da azioni illegittime. Per mettere Wordfence in modalità di apprendimento, vai su Wordfence > Firewall: 

Le impostazioni del firewall di Wordfence.

Quindi, apri il menu a discesa Stato del firewall dell’applicazione web e seleziona Modalità di apprendimento . Wordfence ora sta monitorando ogni tua mossa sul tuo sito web. 

Per i migliori risultati, ti consigliamo di lasciare Wordfence in questa modalità per almeno una settimana. Una volta che sei sicuro che Wordfence ha raccolto dati sufficienti, attiva il tuo firewall andando su Wordfence > Firewall. Quindi, apri il menu a discesa e seleziona Abilitato e protetto. 

3. Sanifica i tuoi dati

Come parte di questo exploit PHPMailer, un hacker userebbe la funzione unserialize(), che prende una stringa che rappresenta un valore serializzato e la converte in un valore PHP . In un attacco di object injection, l’hacker potrebbe eseguire i dati tramite questa funzione unserialize() e scegliere le proprietà di tali oggetti. Ad esempio, l’attaccante potrebbe costruire un payload che gli consenta di leggere i tuoi file, incluso il contenuto della directory delle password del tuo sito .

Invece di passare il contenuto generato dall’utente direttamente alla funzione unserialize(), è importante convalidare e sanificare quei dati . Questo può aiutare a garantire che tutti i dati che accetti siano puliti, corretti e privi di codice dannoso. 

Puoi sanificare i tuoi dati usando la serie di funzioni di supporto sanitize_() . WordPress Codex fornisce un semplice esempio che dimostra come si potrebbe sanificare l’input dell’utente. Fornisce l’esempio di un modulo che prevede una stringa:

<input type="text" id="title" name="title" />

In questo scenario, puoi sanificare questi dati usando la funzione sanitize_text_field():

$title = sanitize_text_field( $_POST['title'] );
update_post_meta( $post->ID, 'title', $title );

Qui, stiamo verificando la presenza di UTF-8 non valido, che è la codifica dei caratteri a larghezza variabile. Questa funzione rimuove quindi tag, interruzioni di riga, tabulazioni e spazi bianchi extra. Elimina anche gli ottetti, che sono unità di informazioni digitali composte da otto bit. 

In questo modo, la funzione di “sanitize” può aiutarti a rimuovere qualsiasi contenuto non valido o potenzialmente dannoso prima che abbia la possibilità di raggiungere il tuo database. Ciò include qualsiasi codice che un hacker potrebbe utilizzare per sfruttare la vulnerabilità di PHPMailer. 

Conclusione

Mentre gli esperti concordano sul fatto che la vulnerabilità di PHPMailer è un punto debole difficile da sfruttare, una nuova minaccia alla sicurezza critica è sempre motivo di preoccupazione e soprattutto sempre dietro l’angolo.. C’è anche il rischio che un hacker possa utilizzare questa vulnerabilità per intensificare un attacco già in corso, creando potenzialmente scompiglio nel tuo sito. 

Ricapitoliamo rapidamente tre passaggi che puoi eseguire per chiudere questa falla di sicurezza:

  1. Mantieni sempre aggiornato il core di WordPress.
  2. Utilizzare un Web Application Firewall (WAF) come Wordfence .
  3. Sanifica i tuoi dati utilizzando la serie di funzioni di supporto di WordPress .

Buon lavoro!