Backdoor di WordPress: cosa sono, come si rilevano
In questo articolo tratteremo delle backdoor di WordPress, dei rischi che fanno correre e di come si possano eliminare o proteggersi da esse.
Le backdoor in informatica sono sostanzialmente delle “porte di servizio” (ovvero sul retro) che consentono di superare in tutto o in parte le procedure di sicurezza attivate in un sistema informatico o un computer entrando nel sistema stesso. Relativamente a WordPress esse permettono di accedere al CMS lato amministratore (oppure FTP o PHPMyAdmin) da parte di un utente arbitrario non autorizzato che, di fatto, conosce i modi per agire in tal senso.
In linea generale le backdoor sono progettate per consentire, dopo una tacita installazione, ad un hacker attaccante di ottenere l’accesso indebito al vostro blog in WP: in molti casi esse sono piuttosto complesse da eliminare e potrebbero anche “sopravvivere” in seguito a ripetuti aggiornamenti del sito, anche in termini di sicurezza. Il parallelismo con un virus che rimane inattivo fino ad un certo periodo nel quale si attiva senza preavviso, di fatto, sembra rendere piuttosto bene questa idea.
L’unico modo sicuro per rimuovere una backdoor dal vostro blog in WordPress, di fatto, è quella di effettuare un restore completo del vostro sito reinstallandolo da zero, facendo pulizia sia nel filesystem che nel database ed effettuando successivamente un upgrade dei contenuti. Effettuare un ripristino manuale dei contenuti potrebbe essere poco sicuro e non vi garantisce, in molti casi, che siate effettivamente protetti da quella backdoor in futuro.
Partiamo quindi ad analizzare alcuni punti fondamentali:
- una backdoor per i nostri scopi è sostanzialmente PHP che viene inserito all’interno del vostro sito in WP;
- normalmente si tratta di codice extra aggiunto a quello di WP, che potrebbe annidarsi in un tema, in un plugin o anche nella directory di upload del sito;
- in alcuni casi viene nascosto o criptato in modo tale da non sembrare pericoloso per chi leggesse il codice.
Ricordando l’importanza di effettuare frequenti backup del vostro blog per evitare difficoltà o problemi nel seguito, andiamo quindi ad analizzare questi punti uno ad uno.
1. Come viene inserito il codice?
Anche se in generale le backdoor sono accessi amministrativi riservati, in generale si possono presentare casi in cui le backdoor sono decisamente semplici. In genere le problematiche possono nascere se all’interno del codice WP è presente il comando eval – di fatto deprecato dalla guida ufficiale di PHP – che permette, come sappiamo, di eseguire arbitrariamente qualsiasi comando vi sia passato come argomento.
Ad esempio potremmo avere qualche istruzione tipo:
eval( $_POST['abc'] );
molto pericolosa, in quanto permette di eseguire qualsiasi comando PHP sia passato come argomento della form di post all’interno del codice.
Normalmente le eval sospette vengono posizionate in parti del CMS difficili da individuare, e soprattutto “ad arte” all’interno di sezioni di codice che non vengano mai aggiornate da WordPress, in modo che si riducano le probabilità di essere sovrascritte dagli aggiornamenti successivi.
2. Dove trovare le backdoor di WordPress?
Normalmente possiamo trovare codice potenzialmente malevolo all’interno di tre cartelle:
- Temi. Molti temi di WordPress che non provengano dal repository ufficiale possono contenere backdoor per consentire agli hacker di accedere ai siti altrui: facciamo quindi molta attenzione a non utilizzare quelli che sembrano sospetti e ricordiamoci di rimuovere sempre i temi che non utilizziamo (vedi anche il nostro articolo speciale sulla sicurezza di WordPress e su quella di PHP a riguardo).
- Plugin. Si tratta di un modo molto diffuso per diffondere le backdoor, specialmente per il fatto che molti webmaster tendono ad installarne parecchi senza controllarne la provenienza e le effettive funzionalità: di fatto molti plugin possiedono vulnerabilità che potrebbero, ad esempio, permettere il caricamento di file arbitrari via FTP.
- Upload. La cartella di upload (solitamente /uploads) è stata appositamente realizzata per essere scrivibile ed è il luogo dove più della metà delle backdoor tendono ad nascondersi.
3. Come si nascondono le backdoor?
Di solito vengono utilizzati nomi a cui si fa poco caso come wp-content.old.tmp, evitando quindi di esporre l’estensione .php ordinaria; non è neanche detto, in generale, che sia sufficente cercare le occorrenze del comando eval come unico controllo del caso. Una circostanza piuttosto comune prevede infatti l’utilizzo del comando di “base 64 decoding“, il quale permette di nascondere un comando malevolo all’interno di una stringa criptata (quindi illegibile dall’esterno). La presenza dell’istruzione base64_decode è di fatto un buon indizio per individuare delle backdoor, anche se esistono plugin – come quello per le sitemap di Google – che usano questa istruzione in maniera del tutto legittima.
2 commenti