Corsi on-line

Difendere il proprio sito Web da GHOST

GHOST è il nome di una vulnerabilità che affligge la libreria GNU C (glibc) esponendo il sistema coinvolto ai pericoli derivanti dall’esecuzione di codice da remoto; questa falla è legata alla funzione GetHOSTbyname() utilizzata per ricercare nel database degli host le informazioni riguardanti determinati host; per estensione si tratta di una problematica che mette a rischio anche applicazioni che utilizzano costrutti PHP basati su gethostbyname() come per esempio WordPress che la impiega nelle chiamate a wp_http_validate_url().

ghost

Tali funzioni sono diffusamente utilizzate perché consentono di effettuare il confronto tra un indirizzo IP e un host per verificarne la corrispondenza, quindi come difendere il proprio sito Web da utenti malintenzionati decisi a sfruttare GHOST? Innanzitutto bisognerà verificare che il proprio server sia vulnerabile, ciò sarà possibile lanciando la seguente istruzione una volta impersonato l’utente di root:

php -r '$e="0";for($i=0;$i<2500;$i++){$e="0$e";} gethostbyname($e);'
Segmentation fault 

Nel caso in cui a tale comando segua un segmentation fault, cioè un errore di segmentazione che si verifica quando si tenta di accedere ad un’area della memoria alla quale non è permesso accedere o alla quale si cerca di accedere in maniera non consentita, allora sarà possibile definire il proprio sistema come vulnerabile.

Innanzitutto è bene precisare che GHOST dovrebbe riguardare tutte le versioni di glibc fino alla 2.17, glibc-2.18 sarebbe esente da questo problema; motivo per il quale chi dovesse gestire un ambiente server basato su Debian 7, Red Hat Enterprise Linux 6 o 7, CentOS 6 o 7 e Ubuntu 12.04, dovrà aggiornare la propria distribuzione in modo da ottenere la release 2.18 della libreria.

In secondo luogo, e questo vale in particolare per gli utilizzatori di WordPress, sarà opportuno disabilitare le richieste di Pingback, cioè la funzionalità che permette di ricevere notifiche quando un altro sito Web linka un post del proprio blog; nel noto Blog engine/CMS Open Source questo potrà essere fatto dalla Dashboard o inserendo nel file functions.php il seguente filtro:

add_filter( 'xmlrpc_methods' , function( $methods' ) { unset( $methods[ 'pingback.ping ] ); return $methods; } );

Infine, nel caso in cui il proprio sito Web non utilizzi le funzionalità di XML-RPC per le chiamate a procedure remote, si potrà disattivare anche quest’ultimo tramite:

add_filter('xmlrpc_enabled', '__return_false');

Esistono poi alcuni plugin, come per esempio Disable XML-RPC, che permettono di effettuare la stessa procedura a carico dell’API XML-RPC di WordPress senza dover intervenire sul codice.

Via Bankinfosecurity

Post correlati
I più letti del mese
Tematiche