Risultati SEO hackerati: analisi e pulizia
Traduzione autorizzata da Sucuri che detiene il copyright dell’articolo. Leggi l’articolo originale (in Inglese)
Lo spam Blackhat SEO esiste in molte forme, e una delle più nefaste sono i risultati di ricerca dirottati. Questo accade quando i motori di ricerca eseguono la scansione e visualizzano contenuti indesiderati nel titolo e nella descrizione delle pagine web infette. L’impatto negativo al sito infetto non deve essere sottovalutato. Questo danneggia la reputazione del sito web e porterà ad un avviso nella pagina dei risultati dei motori di ricerca (SERP) del tipo “Questo sito potrebbe essere compromesso“. Questo avviso ridurrà il traffico in entrata di una quantità significativa e influenzerà la posizione di classifica, se non si interviene al più presto.
Il tuo sito è compromesso? Contattaci
chiama 339 848 3250
Risultati di ricerca alterati
Il proprietario di un sito, preoccupato per la visualizzazione di contenuto pornografico nei risultati di Google relativi al loro sito ha contattato Sucuri. Come si può immaginare, non vedeva l’ora di rimuoverlo dal suo sito aziendale. Stava già perdendo innumerevoli potenziali clienti e danneggiando le relazioni esistenti. Questo particolare spam lato SEO non solo ha creato meta-dati falsi per il testo principale e la descrizione, ma ha cambiato anche i cosiddetti sitelink (brevi descrizioni del contenuto della pagina secondaria) sotto i collegamenti ipertestuali del cliente.
Indagine
Sucuri ha iniziato il processo di pulizia attraverso la scansione dei file del sito web e del database. Era presente un cron dannoso insieme ad un file chiamato .cache.php, ma questo non sembrava essere la vera fonte dello spam pornografico.
Hanno confermato questo rimuovendo il file .cache.php, svuotando la cache del sito, e quindi utilizzando il comando curl in un terminale Linux. Questo comando permette di visualizzare l’output del sito web in testo con intestazioni HTTP.
Ancora più importante, permette di fare uno spoof sul mio user-agent. Questo significa che si può ingannare il sito web del cliente e fargli pensare di essere un visitatore che utilizza un dispositivo diverso, o in questo caso, che di essere un bot di un motore di ricerca:
curl -SD – -L -A “Mozilla / 5.0 (compatible; Googlebot / 2.1; + Http: //www.google.com/bot.html) “http://infecteddomain.com/
Questo comando visualizza tutto ciò che Googlebot (motore di ricerca crawler di Google) vedrebbe sul dominio infetto.
Durante l’analisi si è notato che lo spam pornografico non era rilevabile da un visitatore normale, ma solo da Goooglebot.
File core WordPress Modificato
Dopo aver confrontato l’installazione di WordPress corrente con una copia pulita dal repository ufficiale, sono stati in grado di restringere l’infezione a due file:
- ./wp-includes/load.php
- ./wp-admin/includes/class-wp-text.php
A prima vista, questi file possono sembrare abbastanza innocui. Sono solo due delle migliaia di file che WordPress utilizza. Per fortuna gli analisti di sicurezza a Sucuri hanno una grande esperienza con l’identificazione e la pulizia di malware in WordPress.
./wp-includes/load.php:
Si tratta di un file di base di WordPress che non deve essere modificato a meno che WordPress sia aggiornato, o in rari casi di personalizzazione. Nessuno dei file contigui era stato aggiornato, e ho riconosciuto questo come pistola fumante. Inoltre, questo file viene eseguito ogni volta che WordPress è caricato nel browser, quindi è un obiettivo comune per nascondere malware. L’attaccante spera che ci si concentrerà sui file del tema (cioè header.php, footer.php) e sui file nella directory principale di WordPress (cioè index.php, wp-load.php).
./wp-admin/includes/class-wp-text.php:
Questo file non è un file del core di WordPress, quindi dovrebbe esistere solo in quella directory se l’installazione di WordPress è stata fortemente personalizzata. È sempre possibile visitare https://core.svn.wordpress.org/tags/ per un elenco di tutte le versioni di WordPress per confermare se un file o una directory viene fornito con il core di installazione.
A questo punto vorrei ricordare che la verifica dei file del sito web manualmente sarebbe molto complicata e questo è il motivo per cui si consiglia di utilizzare il monitoraggio dei file. Il monitoraggio del file fa esattamente quello che sembra: crea un punto di partenza del vostro ambiente attuale e poi avvisa di eventuali modifiche a tale linea (nuovi file, file modificati, i file eliminati, ecc).
Questo sistema avvisa che un nuovo file (./wp-admin/includes/class-wp-text.php) è stato creato e un componente del sistema è stato modificato (./wp-includes/load.php). Invece di dover passare manualmente oltre un migliaio di file di WordPress, si sa già quali sono stati modificati e quindi si può cominciare da lì.
Sucuri offre un monitoraggio base gratuito dell’integrità dei file con il plugin Sucuri Security disponibile attraverso il repository plugin per WordPress. Offre anche uno scanner lato server che esegue il monitoraggio di file e può essere aggiunto a qualsiasi sito web.
Come viene visualizzato lo spam SEO?
Il file ./wp-includes/load.php è stato modificato da un aggressore con un semplice trigger che comanda al web server di caricare anche il file che contiene il payload (./wp-admin/includes/class-wp-text.php). Come già detto, ogni volta che il sito viene visitato, WordPress esegue il file ./wp-includes/load.php.
Guardiamo più da vicino l’iniezione reale all’interno di ./wp-includes/load.php:
Nella linea 669, la funzione dannosa include_once fa sì che il sito carichi ./wp-admin/includes/class-wp-text.php.
Notate il grande spazio precedente l’injection? Gli aggressori usano questo per cercare di nascondere l’iniezione quando qualcuno apre il file. Questo è il motivo per cui si deve utilizzare il comando “word-wrap” per visualizzare i file, altrimenti l’iniezione potrebbe essere persa.
Ora che sappiamo come il malware viene caricato … cosa vuol realmente fare ./wp-admin/includes/class-wp-text.php?
Sei Googlebot?
Il file contiene funzioni per user-agent, referrer URL e le ricerche inverse di IP al fine di ottenere ulteriori informazioni sul visitatore del sito. Questo è importante per l’attaccante, perché vogliono mostrare i loro dati di spam pornografico solo ai crawler dei motori di ricerca. Rivelare i dati di spam ai visitatori normali determinerebbe che il proprietario del sito web si renda conto del problema ed agisca.
Dopo aver controllato se è un Googlebot, il file utilizza una funzione PHP chiamata file_get_contents che permette ai file PHP per afferrare i dati da varie fonti. Di solito gli aggressori useranno file_get_contents per afferrare i dati direttamente da un URL, e molti scanner di malware hanno delle impostazioni per cercare questo.
Nel tentativo di aumentare l’oscurità, l’aggressore ha usato una variabile per memorizzare l’URL maligno, poi ha utilizzato @file_get_contents per afferrare i dati dalla variabile sopprimendo tutti gli errori che la chiamata funzionale potrebbe mostrare. Questo ottiene lo stesso risultato come se avessero recuperato i dati utilizzando l’URL direttamente con la funzione file_get_contents, ma aiuta a eludere il rilevamento. È possibile visualizzare l’URL dannoso memorizzato nella variabile $ req_uri qui di seguito:
Il payload – in questo caso i dati di spam pornografico – si ottiene attraverso i file_get_contents mostrati sopra. Questo è vantaggioso per l’attaccante in quanto non c’è bisogno di memorizzare le migliaia di termini di spam pornografico nei file del sito web. Se qualcuno avesse effettuato la scansione dei file del sito web infetti alla ricerca di termini pornografici comuni non avrebbe trovato nulla. Questo è un altro metodo per eludere il rilevamento.
Inoltre permette al malintenzionato di modificare i dati di spam al volo semplicemente aggiornando il contenuto dei loro URL maligni, invece di dover modificare i contenuti sul sito hackerato.
Il file di malware utilizza quindi un file di nome secondario template.html (in wp-admin / includes / template.html per WordPress. O librerie / joomla / application / template.html per Joomla). Questo file contiene una pagina generata che imita una pagina del sito di WordPress. In sostanza, si tratta di un modello fatto in casa per la propria iniezione payload sulla SERP.
Se vi ricordate l’output del comando curl con tutto lo spam SEO, ecco come il template dell’attaccante appare, prima di aggiungere lo spam SEO. E ‘formattato per usare comuni meta-tag utilizzati per l’ottimizzazione dei motori di ricerca, come ad esempio Open Graph e tag che colpisce dei motori di ricerca annunci sociali e di ricerca:
Prevenzione
In precedenza abbiamo parlato su come utilizzare il monitoraggio di file per rilevare con precisione, eventualmente, le modifiche non autorizzate al file del sito esistente, ma come possiamo realmente evitare che ciò accada, innanzi tutto?
- Utilizzare sempre password complesse per tutti gli utenti di WordPress.
- Ridurre al minimo il numero di amministratori WP.
- Tenere sempre il software in dotazione (plugin e temi) aggiornato.
- Qualsiasi software che non è più in uso deve essere rimosso al più presto possibile. Spesso un vecchio utente amministratore è lasciato su un sito web e trascurato, e ciò lo rende un ottimo bersaglio. Questo si verifica anche con i plugin, semplicemente disabilitando un plugin vulnerabile non significa che siete al sicuro.
- Utilizzare varie tecniche di hardening come disabilitare l’editor tema WordPress attraverso il vostro wp-config.php e prevenire richieste di file PHP in wp-content / uploads.
- Regolarmente fare la scansione di tutti i computer e dispositivi che vengono utilizzati per accedere a wp-admin o uno dei suoi ambiente di hosting. Il malware sul computer locale può o rubare le credenziali del sito o usare la tua connessione per iniettare malware nel tuo sito web.
- Un’altra opzione per prevenire le infezioni di spam SEO è quello di utilizzare un WAF cloud-based, come il Sucuri Firewall. La piattaforma di protezione aiuta a rendere più sicuro virtualmente il sito e dare virtualmente delle patch ai software obsoleti, impedendo di sfruttare le richieste da sempre raggiungere il server web.
Articolo scritto da Luke Leal
E tu reputi importante la sicurezza e la performance SEO del tuo sito?
chiama 339 848 3250
chiedimi maggiori informazioni sulla sicurezza online!
Lascia un commento