Categorie
Sysadmin

Bug di sicurezza su Plesk 10.4 (e versioni precedenti)

ELbuild consulenze sicurezza
Paralles Plesk 10

Plesk è un noto applicativo destinato alla gestione di domini, installato di default da diversi service provider professionali, come il nostro fornitore ufficiale OVH. Recentemente è stata scoperta una vulnerabilità che colpisce le versioni di Plesk fino alla 10.4 inclusa, hostate su server Windows, che però a quanto pare nasconde dei risvolti anche per le versioni che sono ospitate su server Linux, come i nostri CentOS.

Milioni di siti sono a rischio, vediamo in questo post come verificare che i nostri server siano puliti e come aggiornare Plesk attraverso una patch ufficiale.

L’attacco e gli effetti

Praticamente sfruttando una falla nel codice di Plesk un attacker può essere in grado di guadagnare un accesso alle credenziali FTP dei domini ospitati, e quindi di iniettare codice malevolo destinato ad usare i server colpiti come bot-net. 

In questo caso l’accesso è stato sfruttato per inserire codice Javascript malevolo all’interno di Javascript legittimi (come ad esempio i vari jQuery, scriptacolous, etc). L’effetto lato utente è quello di vedere i siti colpiti flaggati come contenenti malware da Google, e di fatto di vedere le visite ai contenuti praticamente azzerate, con danni d’immagine ed economici.

Dal punto di vista tecnico gli attacker aggiungono il seguente pezzo di codice in fondo ai sopra citati Javascript, provocando una redirezione dell’utente su un dominio con estensione .ru.

km0ae9gr6m script javascript qhk6sa6g1c
Frammento di codice JS malevolo

La particolarità dello script è quella di generare il dominio su cui redirigere l’utente in modo pseudo-randomico, basato su codice oscurato ma convertito in codice JS da una funzione ad-hoc. Questo garantisce che le varie operazioni di grep ASCII sui file di un dominio non riescano ad individuare lo script, che quindi risulta particolarmente complesso da rimuovere.

Anche verificare i file aggiornati di recente può essere poco utile perchè l’attacco in molti casi è rimasto dormiente per mesi e quindi diventa complesso distinguere le modifiche illecite da quelle lecite, e trovare traccia degli accessi nei file di log che ormai sono quasi sicuramente stati sottoposti a rotate.

Come difendersi e come ripristinare l’accesso ai siti colpiti

Osservando il codice malevolo si nota però che in qualsiasi punto il frammento viene inserito fra due commenti, i quali fortunatamente contengono un pezzo costante, ovvero le due stringhe alfanumeriche:

 /*km0ae9gr6m*/ …  /*qhk6sa6g1c*/

Possiamo allora eseguire un’operazione di grep che riveli la presenza di questi frammenti all’interno di tutti i javascript di un dominio (o anche di un intero server). Accedendo SSH portatevi nella root del dominio (di solito la cartella httpdocs) e digitate:

grep -Ril km0ae9gr6m '*.js'

In questa maniera otterrete una lista dei file infetti. Se il comando ritorna senza stampare nulla il dominio/server è a posto. Se invece siete stati così sfortunati da esser colpiti dovrete aprire i file javascript (va bene anche via FTP) e rimuovere il frammento malevolo (di solito è in fondo).

Lascio agli amanti di sed e awk la soluzione automatizzata del problema, nel nostro caso avevamo solo 3 script colpiti per cui è stato veloce farlo manualmente. Ho visto in rete anche uno script PHP (che quindi non richiede accesso SSH) ma dando un’occhiata al codice mi sembrava fallibile vista la struttura del mio server.

Plesk ha velocemente rilasciato una patch per coloro che non possono aggiornare alla versione 11 (fra l’altro uscita da molto poco quindi relativamente poco testata e diffusa). Per saperne di più visitate la pagina http://kb.parallels.com/en/113424.

Per approfondimenti sulla struttura dell’attacco vi lascio al post che mi ha guidato alla soluzione del problema. L’analisi del generatore random è molto interessante, come sempre verso coloro che scrivono questi “attacchi” provo un misto di ammirazione come sviluppatore e rabbia come admin. (Di solito prima la rabbia, l’ammirazione solo dopo che ho risolto ecco..).

Se hai ancora qualche problema contattaci per una consulenza e saremo felici di aiutarti a risolvere i  tuoi problemi di sicurezza.

Post Scriptum

Se siete stati colpiti ricordatevi di aggiornare TUTTE le password FTP dei domini ospitati, per evitare di ritrovarvi nella stessa situazione dopo pochi giorni..

Di Luca Adamo

Luca Adamo si è laureato con lode in Ingegneria delle Telecomunicazioni all'Università degli studi di Firenze ed è dottorando in Ingegneria Informatica, Multimedialità e Telecomunicazioni, sempre nella stessa facoltà. Le sue competenze tecniche includono lo sviluppo software, sia orientato al web che desktop, in C/C++ e Java (J2EE, J2SE, J2ME), l'amministrazione di macchine Unix-based, la gestione di reti di telecomunicazioni, ed il design di database relazionali.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *