Referrer spam: modelli di attacco e contromisure

Il traffico dati in entrata, il cosiddetto Traffic, è uno dei principali indicatori di successo di un sito web. I gestori utilizzano metriche quali Hits, Visits e Page Impressions, per misurare i flussi di visitatori e valutare le prestazioni dei propri progetti web. Tutto questo viene fatto nel contesto dell’analisi dei file di log. I gestori di siti web utilizzano inoltre soluzioni software web based come Google Analytics, Piwik o etracker per raccogliere i dati relativi al traffico e valutarli. Eventuali irregolarità possono essere dovute al referrer spam (detto anche referral spam). Vi mostriamo come riconoscere questo tipo di attacchi spam e come prevenire di conseguenza la falsificazione delle statistiche.

Che cos’è il referrer spam?

Con referrer spam si intende una forma di spam dei motori di ricerca in cui gli hacker tentano di manipolare i file di log e le statistiche di analisi di determinati siti web. L’obiettivo è quello di generare il cosiddetto fake traffic, così da simulare un flusso di visitatori o per generare nuovi accessi al proprio sito web.  Entrambi i modelli di attacco si basano su programmi per computer in gran parte indipendenti: i cosiddetti bot (abbreviazione di “robot”).

Cosa sono gli spam bot?

I programmi che eseguono automaticamente compiti ripetitivi sono una componente centrale del World Wide Web, così come lo conosciamo oggi. I motori di ricerca come Google o Bing utilizzano programmi di questo tipo per esaminare il web e indicizzare le pagine rilevanti. Si parla in questo caso di web crawler o searchbot.

Anche gli hacker si servono di bot per automatizzare le operazioni sul web. A differenza dei crawler dei motori di ricerca, l’attenzione qui non è focalizzata sugli interessi degli utenti. Questi programmi sono utilizzati durante gli attacchi spam con i seguenti scopi:

  • automatizzare i click sugli annunci pubblicitari - Click Fraud;
  • raccogliere indirizzi e-mail – E-Mail-Harvesting;
  • creare account generati automaticamente;
  • distribuire pubblicità sotto forma di commenti generati automaticamente;
  • diffondere malware

Anche il referrer spam è solitamente basato su bot. Si distinguono due tipi di spam bot:

  • Programmi che simulano le visite ai siti web: gli spam bot di questo tipo imitano i comuni browser come Chrome, Firefox o Safari e inviano in massa richieste HTTP ai server web selezionati. Questi programmi sono simili ai crawler dei motori di ricerca, che a volte si camuffano da browser. I programmi in questo tipo di spam simulano la visita di un sito web da parte di un utente umano e per questo prendono il nome di crawling spam. Gli effetti del crawling spam sono visibili nel file di log del server. Per questo si parla anche di spam dei file di log.
  • Programmi che falsificano i dati sul traffico: i bot spam di questo tipo imitano i dati sul traffico di altri siti web e li immettono di nascosto nei server degli strumenti di analisi web più utilizzati. Un tale modello di attacco permette di manipolare le statistiche web senza interagire con il sito di destinazione e non appare nel file di log del server, ma esclusivamente nei report del software di analisi manipolato. In questo caso si parla di ghost spam.

Esaminiamo ora nel dettaglio entrambi i modelli di attacco e le relative contromisure.

Crawler-Spam

La maggior parte dei server web mantiene un file di registro centrale (il registro degli accessi) in cui tutti gli accessi sono registrati in ordine cronologico con una marca temporale. L’esempio seguente mostra la voce di registro di accesso di un server Apache in formato di registro combinato:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"

La voce contiene le seguenti informazioni:

Informazione

Esempio

Indirizzo IP dell'host richiedente

127.0.0.1

Nome utente all'autenticazione HTTP

frank

Marca temporale

[10/Oct/2000:13:55:36 -0700]

Richiesta HTTP

GET /apache_pb.gif HTTP/1.0

Codice di stato HTTP

200

Dimensioni file

2326

Referer [sic]

"http://www.example.com/start.html"

User Agent

Mozilla/4.08 [en] (Win98; I ;Nav)

Gli hacker utilizzano la registrazione automatica tramite file di log al fine di inserire il proprio URL nei log dei server dei siti web selezionati, servendosi di richieste HTTP di massa. In primo piano c'è il campo referer [sic] della richiesta http, che contiene l'URL del sito web di riferimento.

N.B.

A causa di un errore di ortografia nella specificazione HTTP, si è affermato l’uso del termine “referer”. In altri standard viene invece utilizzata la dicitura corretta con la doppia r.

Quando un utente clicca su un collegamento ipertestuale, viene portato dal sito web corrente alla pagina di destinazione. In questo caso il referrer contiene l’URL del sito web su cui si trova il link. Attraverso un’analisi dei file di log, il gestore della pagina di destinazione apprende quali pagine su Internet rimandano al suo progetto web e può identificare così potenziali fonti di traffico.

In passato era prassi comune tra i blogger pubblicare le informazioni di riferimento dal file di log in un widget sul proprio sito web e quindi mostrare l’origine dei flussi di visitatori. L’inserimento in questi elenchi avveniva di solito sotto forma di link alla sorgente del traffico. Gli hacker ne approfittavano per manipolare i file di log dei blog e di altri siti web allo scopo di posizionare i propri progetti web il più in alto possibile negli elenchi di link pubblici e generare così backlink e visualizzazioni della pagina.

Ancora oggi, speciali spam bot vengono utilizzati per interrogare in massa le pagine di destinazione e trasmettere l’URL del sito web di cui si vuole aumentare la visibilità come referrer. Tuttavia gli attacchi di spam di questo tipo sono diminuiti drasticamente, poiché oggi è difficile trovare sui siti web liste di referrer generate automaticamente. Ciò è in parte dovuto a cambiamenti significativi nell’algoritmo di ranking del leader dei motori di ricerca, Google.

Dopo l’aggiornamento Penguin, ovvero circa dall’aprile 2012, Google ha preso delle misure per contrastare lo spam web in relazione ai backlink. I progetti web che si distinguono per un’eccessiva ottimizzazione devono essere penalizzati. È il caso, ad esempio, di siti web con un numero notevolmente elevato di backlink provenienti da pagine irrilevanti, elenchi e reti di link, directory di articoli o commenti a blog.

Oggi le analisi dei file di log sono raramente eseguite manualmente. Vengono invece utilizzati strumenti come Webalizer, AWStats o Piwik. Inoltre, gli strumenti di analisi come Google Analytics offrono la possibilità di valutare i dati sul traffico senza utilizzare i file di log del server. Rimangono però sempre vulnerabili ad attacchi di crawler spam e ghost spam.

Identificare il crawler spam

Nel seguente esempio vi mostriamo come riconoscere il crawler spam nelle statistiche del vostro sito web e come filtrare i referrer più evidenti con Google Analytics.

1. Aprire un account su Google Analytics: aprite l’account Google Analytics del vostro progetto web.

N.B.

Tutti gli screenshot di Google Analytics provengono dal Google Merchandise Store, fornito dal provider come account dimostrativo. Il link all’account è disponibile nelle pagine della guida di Analytics. L’accesso richiede un account Google gratuito.

2. Richiamare le statistiche dei referrer: selezionate “Acquisizione” e cliccate su “Referral” sotto la voce “Tutto il traffico”.

3.  Impostare il periodo in esame: selezionate come periodo di osservazione gli ultimi tre mesi.

4.  Ordinare/filtrare le statistiche del referrer: alla voce “Acquisizione” > “Tutto il traffico” > “Referral” Google Analytics presenta come prima voce del report di riepilogo tutte le sorgenti dei link dei collegamenti ipertestuali in entrata al vostro sito web. Verrà visualizzato un elenco di tutti gli URL di referral registrati da Google Analytics nel periodo di visualizzazione selezionato, nonché i rispettivi valori di misurazione che possono essere assegnati a tali URL.

Google Analytics visualizza per ogni referrer il numero di utenti e sessioni. Inoltre, dalle statistiche è possibile leggere la frequenza di rimbalzo media (bounce rate), il numero di pagine visualizzate per sessione, la durata media della sessione, i tassi di conversione, le transazioni e le entrate generate.

Per la prevenzione dello spam, hanno particolare importanza il numero di pagine viste (sessioni) per fonte di riferimento e la frequenza di rimbalzo media.

In "Comportamento", fate clic sul campo "Frequenza di rimbalzo" per ordinare la visualizzazione in base alle cifre chiave di questa colonna in ordine decrescente.

La frequenza di rimbalzo è una percentuale che mostra le impressioni di pagina provenienti dalla medesima sorgente, senza interazioni con il vostro sito web. Una frequenza di rimbalzo del 100% o dello 0% per più di 10 sessioni che utilizzano le stessa sorgente di riferimento è un chiaro indizio della presenza di query automatiche.

In alternativa è possibile utilizzare un’espressione regolare (Regular Expression o RegEx) per filtrare la visualizzazione per spam referrer già noti. Si tratta, ad esempio, di siti web come questo:

  • semalt.com
  • darodar.com
  • hulfingtonpost.com
  • buttons-for-website.com
  • best-seo-solution.com
  • free-share-buttons.com
Consiglio

L’agenzia digitale olandese Stijlbreuk mette a disposizione una vasta blacklist di referrer spam costantemente aggiornata sul sito referrerspamblocker.com.

Un modello di filtro corrispondente potrebbe assomigliare, ad esempio, a questo:

semalt|darodar|hulfingtonpost|buttons-for-website|best-seo-solution

La barra verticale (|) corrisponde all’operatore logico oppure. I metacaratteri come i punti (.) devono essere mascherati con una barra rovesciata (\).

Per applicare il filtro bisogna cliccare su “Avanzata”.

Viene visualizzata una maschera filtro.

Create un filtro inclusivo per il parametro “Sorgente” e scegliete l’opzione filtro “Con espr. reg”. Inserite un’espressione regolare come modello di filtro. Confermate il processo di filtraggio facendo clic su “Applica”.

5. Annotare i referrer sospetti: create una blacklist di referrer spam che includa tutti gli URL di origine sospetta. Questo elenco servirà successivamente come base per un filtro di esclusione.

Bloccare il crawler spam tramite .htaccess

Il crawler spam richiede un accesso al vostro sito web. È quindi possibile avviare contromisure affidabili già lato server. Vi mostreremo come farlo utilizzando il file di configurazione .htaccess di Apache, il server web più utilizzato al mondo.

Se notate degli URL sospetti nelle vostre statistiche dei referrer, è possibile utilizzare le seguenti procedure per impedire agli spam bot di accedere alle pagine web:

  • Bloccare i referrer
  • Bloccare gli indirizzi IP
  • Bloccare gli User Agent

Bloccare il referrer via .htaccess

Per bloccare URL di riferimento selezionati, aprite il file .htaccess del server web e aggiungete una porzione di codice utilizzando l’esempio seguente:

RewriteEngine on
  RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*semalt\.com\ [NC,OR]
  RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*darodar\.com\ [NC,OR]
  RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*hulfingtonpost\.com\ [NC,OR]
  RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*buttons\-for\-website\.com\ [NC,OR]
  RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*best\-seo\-solution\.com\ [NC,OR]
  RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*free\-share\-buttons\.com\ [NC]
RewriteRule .* - [F]
  

La difesa antispam lato server si basa su RewriteRule:

.* - [F]

Questo indica al server web di rispondere a tutte le richieste HTTP in arrivo con il codice di stato 403 Forbidden (“proibito”), se una o più condizioni (RewriteCond) sono soddisfatte. L’accesso per i bot spam non è più possibile.

Nell'esempio attuale, ogni referrer da bloccare è stato definito in un RewriteCond separato come espressione regolare, secondo l'esempio seguente:

RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*semalt\.com\ [NC,OR]

La condizione è soddisfatta se la variabile server %{HTTP_REFERER} corrisponde all'espressione regolare definita nel RewriteCond, ad esempio:

^https?://([^.]+\.)*semalt\.com\ 

Le singole condizioni sono collegate dal flag [OR], che si riferisce all’operatore logico oppure. Pertanto, per applicare la RewriteRule, deve essere soddisfatto un solo RewriteCond. Il flag [NC] definisce la stringa di caratteri precedente come non sensibile alle maiuscole (non c’è quindi nessuna differenza semantica tra maiuscole e minuscole).

In alternativa è possibile definire alcune parole chiave in RewriteCond che portano a un’esclusione se appaiono nel referrer di una richiesta HTTP. Nell’esempio seguente, vengono bloccate tutte le richieste HTTP il cui referrer contiene keyword come porno, pillola o poker.

I confini delle parole chiave dovrebbero essere indicati tramite RegEx. Per farlo utilizzate il metacarattere \b.

RewriteEngine on
RewriteCond %{HTTP_REFERER} \bporn\b [NC,OR]
RewriteCond %{HTTP_REFERER} \bpill\b [NC,OR]
RewriteCond %{HTTP_REFERER} \bpoker\b [NC]
RewriteRule .* - [F]

L’esclusione delle parole non delimitate avrebbe lo svantaggio di bloccare le richieste HTTP anche se le combinazioni di lettere definite in RewriteCond sono utilizzate in un altro contesto semantico, come nel caso delle richieste HTTP tramite siti del tipo:

http://manu.sporny.org/

www.rittersporn-zuchter.de/

http://www.fersensporn-online.de/

Blocco degli indirizzi IP tramite .htaccess

Notate che gli attacchi spam sul vostro sito web provengono sempre dagli stessi indirizzi Internet? In questo caso si consiglia di bloccare gli IP corrispondenti o interi campi di indirizzi tramite .htaccess.

Se desiderate bloccare un solo indirizzo IP lato server, basterà inserire un blocco di codice nel vostro file .htaccess, come nell’esempio seguente:

RewriteEngine On
Order Deny,Allow
Deny from 203.0.113.100
Allow from all

In questo modo, tutte le richieste HTTP provenienti dall’indirizzo IP 203.0.113.100 verranno rifiutate automaticamente. Un blocco di codice di questo tipo può contenere numerosi indirizzi IP, basterà elencarli come di seguito:

RewriteEngine On
Order Deny,Allow
Deny from 203.0.113.100
Deny from 192.168.0.23
Allow from all

Per bloccare l’accesso al vostro sito web a un intero intervallo di indirizzi, lo si deve scrivere in formato CIDA (Classless Inter-Domain Routing) secondo lo schema seguente:

RewriteEngine On
Order Deny,Allow
Deny from 198.51.100.0/24
Allow from all

Tutte le richiesteprovenienti dal gruppo di indirizzi Ip compresi tra 198.51.100.0 e 198.51.100.255 verranno così bloccate.

Attenzione: per interrogare rapidamente le pagine di destinazioni da molteplici indirizzi IP differenti, gli hacker di solito usano i cosiddetti botnet. Ciò rende praticamente impossibile impedire in modo sostenibile l’accesso allo spam tramite il blocco degli indirizzi IP.

N.B.

Una botnet è una rete di computer infettati (i cosiddetti PC zombie) che viene utilizzata come base per attacchi spam o per l’invio di malware. Per creare una rete di questo tipo gli hacker (i cosiddetti botmaster) infettano i computer non adeguatamente protetti con il loro malware e utilizzano le risorse di rete per lanciare attacchi contro altri utenti. Le botnet sono generalmente controllate a livello centrale e costituiscono il punto di partenza per enormi ondate di spam e di attacchi DDOS su larga scala.

Blocco degli user agent tramite .htaccess

Un altro modo per prevenire gli attacchi spam è quello di bloccare gli user agent il cui ID è utilizzato dai bot spam per fingersi visitatori reali.

Per fare ciò è necessario creare una porzione di codice secondo l’esempio seguente:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Baiduspider [NC]
RewriteRule .* – [F,L]

In passato molti gestori di siti web hanno ripetutamente registrato accessi da spam bot che fungevano da searchbot per il motore di ricerca cinese Baidu (Baiduspider). Se non vi aspettate traffico naturale dalla Cina sul vostro sito web, potete tranquillamente bloccare questo crawler per prevenire gli attacchi spam.

Filtro di Google Analytics

La prevenzione dello spam lato server tramite .htaccess è il modo più sostenibile per prevenire lo spam da parte dei crawler. Tuttavia, l’adattamento del file .htaccess richiede molto tempo ed è soggetto a errori. Non tutti i gestori di siti web osano riformulare le proprie regole di riscrittura. E c’è un motivo: gli errori possono avere infatti gravi effetti sull’accessibilità di un sito web. In alternativa è possibile filtrare i bot automatici di spam dalle statistiche del programma di analisi utilizzato per prevenire i report corrotti. Vi mostreremo come farlo utilizzando Google Analytics come esempio.

Google Analytics offre due opzioni per filtrare il referral spam dalla visualizzazione dei dati.

  • La blacklist del referrer spam di Google
  • I filtri personalizzati

Il seguente video di YouTube fa parte del “Digital Analytics Fundamentals Course” della Analytics Academy e offre un’introduzione alla funzione filtro di Google Analytics (per chi lo desideri, è possibile impostare i sottotitoli in italiano):

Per visualizzare questo video, sono necessari i cookie di terze parti. Puoi accedere e modificare le impostazioni dei cookie qui.

La blacklist del referrer spam di Google

Anche Google ha riconosciuto il problema del referrer spam nell’analisi delle statistiche degli utenti. Pertanto consente di filtrare automaticamente tutti i bot e gli spider conosciuti. Per fare ciò, procedete come segue:

1. Aprire le impostazioni di visualizzazione dati: aprite il vostro account Google Analytics e cliccate nel menu sulla voce “Amministrazione”. Poi selezionate nel menu Vista la voce “Impostazioni vista”.

2. Attivare la blacklist del referrer spam di Google: scendete in basso fino a “Filtro bot” e selezionate la voce “Escludi tutti gli hit da bot e spider noti”.

Google mostrerà così una versione pulita delle statistiche del vostro sito web.

Attenzione: vengono filtrati solo i dati utente che lo strumento può assegnare ai bot spam noti. Il filtro si applica quindi solo ai bot e agli spider presenti nella blacklist di Google.

Filtri personalizzati

Google Analytics consente inoltre di impostare filtri a livello di account o di visualizzazione dati. I filtri definiti a livello di account possono essere applicati a una o più viste dati, a seconda delle esigenze. Se è stato creato un filtro a livello di vista dati, esso si applica solo alla vista selezionata.

Per prima cosa testate i filtri appena creati, applicandoli a una copia della vista dati desiderata. Poi procedete come segue.

2. Fare una copia della visualizzazione dei dati: Andate su “Amministrazione” > “Vista” fino al menu “Impostazioni vista” e cliccate su “Copia vista”.

Nominate la copia come preferite e confermate la procedura cliccando sul pulsante “Copia vista”.

2. Definire i filtri personalizzati: selezionate la copia appena creata in “Amministrazione” > “Vista” e cliccate nel menu alla voce “Filtri”.

Se avete già creato dei filtri per questa vista dati, Google Analytics li visualizzerà in una panoramica.

Per definire un nuovo filtro personalizzato, fate clic sul pulsante “+ Nuovo filtro” e selezionate “Crea nuovo filtro”.

Assegnate un nome al nuovo filtro (ad esempio referrer spam blocker).

Selezionate le seguenti opzioni su “Informazioni sul filtro”:

  • Tipo di filtro: “Personalizzato”
  • “Escludi”
  • Campo filtro: “Sorgente campagna”
N.B.

Il nome del campo “Sorgente campagna” specifica la dimensione “Sorgente” per i report di Google Analytics.

Ora avete la possibilità di definire un pattern di filtro sotto forma di espressione regolare. Utilizzata la lista nera di referrer spam creata in precedenza. Un tale modello di filtro potrebbe assomigliare al seguente:

(?:([^. ]+)\.)?(?:([^.]+)\.)?(semalt|hulfingtonpost|buttons-for-website|best-seo-solution)\.(com|de|net|org|ru)

3. Verficare i filtri: fate clic su “Controlla filtro” per verificare in che modo il filtro influisce sulla visualizzazione dei dati corrente.

N.B.

La verifica funziona solo se la vista selezionata contiene dati sufficienti.

Fate clic su Salva per completare l’impostazione del filtro. Il nuovo filtro di esclusione viene visualizzato nella panoramica.

4. Applicare i filtri alla vista principale: se il filtro personalizzato funziona, applicatelo alla vista principale del vostro account Google Analytics.

N.B.

I filtri dati sono un buon modo per ripulire i report di analisi del referrer spam. Ma attenzione: l’opzione filtro di Google Analytics nasconde solo il traffico generato dai bot. Il vero problema, il sovraccarico dei server da parte di attacchi spam, non è quindi risolto. Una prevenzione dello spam di tipo sostenibile dovrebbe pertanto basarsi su misure lato server per impedire le visite automatiche ai siti web da parte degli spam bot.

Bloccare il referrer spam attraverso plug-in di WordPress

In qualità di gestore di una home page realizzata tramite WordPress, è possibile proteggere il proprio sito web da crawler spam, attraverso plug-in specifici. Il software di terze parti è disponibile gratuitamente sulla pagina di WordPress.

Ecco alcuni dei plug-in per bloccare il referrer spam disponibili su WordPress:

Vi mostriamo come installare e configurare i plug-in di WordPress contro il referrer spam, utilizzando Block Referer Spam come esempio.

Installare il plug-in per il referrer spam

Il CMS WordPress consente di gestire i plug-in direttamente dall’area amministrativa del software. Per fare ciò, procedete come segue:

1. Aprire l’area amministrativa di WordPress: per attivare il plug-in per il referrer spam, accedete all’area amministrativa della vostra pagina WordPress utilizzando i dati di accesso.

2. Cercare e installare il plug-in: Andate alla voce di menu “Plugins” e seleziona “Install” per aggiungere altri plug-in alla vostra pagina WordPress.

Inserite “Block Referer Spam” nella barra di ricerca e cliccate su “Install” per integrare il plug-in nel vostro sito web.

Il plug-in verrà aggiunto all'elenco dei plug-in, ma sarà disattivato.

3. Attivare i plug-in: attivate Block Referer Spam cliccando su “Attiva”.

La nuova voce di menu "Referer Spam" appare nella barra laterale dell'area di amministrazione di WordPress.

Configurare i plug-in per il referrer spam

Nell’area di configurazione di Block Referer Spam troverete una breve descrizione del plug-in e diverse opzioni per gli aggiornamenti e le funzioni di blocco.

1. Aprire l’area di configurazione: cliccate sulla voce di menu “Referer Spam” per personalizzare il plug-in.

2. Impostare un piano di aggiornamento: selezionate l’opzione di aggiornamento software preferita, automatica o manuale.

Consiglio

Utilizzate l’aggiornamento automatico per assicurarvi che la blacklist dei plug-in sia continuamente ampliata con gli indirizzi spam e risulti sempre attuale.

3. Aggiornare la modalità di blocco: selezionate la modalità blocco preferita. Il plug-in distingue tra un blocco della riscrittura e un blocco di WordPress.

Consiglio

Se possibile, selezionate il blocco di riscrittura per impedire in modo rapido ed efficace l'accesso allo spam a livello di server web.

4. Creare una blacklist personalizzata per il referrer spam: per prevenire efficacemente lo spam, è possibile ampliare manualmente la blacklist del plug-in. Per fare questo, inserite i siti web ben visibili nel campo fornito a tale scopo sotto la voce “I miei blocchi”.

Salvate la configurazione facendo clic su "Applica modifiche".

Alla voce di menu "Tutte le pagine bloccate" è possibile accedere alla blacklist completa del plug in.

Ghost spam

A differenza del crawler spam, il ghost spam non interagisce affatto con la pagina di destinazione. Invece, i bot inviano dati sul traffico falsificati direttamente ai server degli strumenti di analisi web based. Questi elaborano il traffico falso insieme ai dati reali dell’utente e inoltrano le informazioni sotto forma di report ai gestori del sito web. Poiché questo modello di attacco non comporta una visita al sito web, è conosciuto con il termine ghost spam. Ma qual è lo scopo di tali misure da parte degli hacker?

L’obiettivo degli attacchi di ghost spam è quello di attirare l’attenzione dei gestori dei siti web. Gli hacker fanno affidamento sulla curiosità delle loro vittime. L’idea che c’è dietro è: più spesso il proprio URL compare nei report di analisi di altri siti web, maggiore è la possibilità che i gestori delle pagine attaccate richiamino la sorgente di riferimento per vedere chi sta generando così tanto traffico. Di solito dietro agli URL dei referrer si nascondono siti web con annunci display da cui generano dei profitti. Nel peggiore dei casi, i gestori di tali siti web utilizzano il referrer spam per infettare con malware i computer di visitatori ignari.

Utilizzando Google Analytics come esempio, vi mostriamo come funziona il ghost spam e cosa potete fare contro questo modello di attacco.

Come funziona il ghost spam?

Nel modelli di attacco ghost spam, gli hacker sfruttano il protocollo di misurazione di Google Analytics. Questo viene utilizzato per trasferire i dati di traffico tra il vostro sito web e il server web dello strumento di analisi.

Tutto quello di cui gli hacker hanno bisogno per inserire dati su Google Analytics sono dei tracking ID validi. Questo può essere fatto in due modi:

  • gli hacker usano spam bot per leggere il codice HTML dei siti web e leggere gli ID in esso contenuti;
  • i tracking ID vengono creati in modo casuale utilizzando un generatore.

Numerosi gestori di siti web integrano il codice di tracciamento di Google Analytics direttamente nel codice HTML del loro sito web. Viene utilizzato il seguente snippet: 

<!-- Google Analytics -->
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
<!-- End Google Analytics -->

Affinché lo script possa trasmettere Google Analytics, il segnaposto di UA-XXXXX-Y deve essere sostituito dal tracking ID personale. Questo è quindi accessibile da qualsiasi programma che legge il codice HTML di un sito web appositamente preparato.

Questa vulnerabilità può essere risolta con Google Tag Manager. In questo modo i gestori di siti web dispongono di un’interfaccia utente che consente di gestire centralmente gli snippet di codice di Google (i cosiddetti tag). Invece di vari tag per diversi servizi Google, viene incluso nel codice HTML solo uno snippet per Google Tag Manager. Il codice di tracking di Google Analytics, compreso l’ID personale, rimane quindi protetto dall’accesso per conto di terzi.

In linea di principio, il ghost spam può influire su qualsiasi rapporto di Google Analytics. Oltre alle informazioni sui referrer, per manipolare i dati sul traffico gli hacker utilizzano report su top event, parole chiave, landing page e impostazioni della lingua.

Il russo Vitaly Popov è uno vero e proprio professionista del ghost spam. Dal 2014 l’hacker è riuscito ripetutamente a inserire gli URL dei propri siti all’interno degli account di Google Analytics. Alla fine del 2016, l’hacker ha ingannato la comunità di Internet con una pagina di Google per così dire “segreta”. Oltre alle classiche abbreviazioni come it, it-it o en-us, migliaia di utenti di Analytics in tutto il mondo hanno trovato il seguente messaggio nei rapporti sulle impostazioni linguistiche dei visitatori del loro sito web:

“Secret.ɢoogle.com You are invited! Enter only with this ticket URL. Copy it. Vote for Trump!“

Ma i gestori di siti web più curiosi, quelli che hanno accettato l’invito, non sono arrivati su Google. Per un semplice motivo:

ɢoogle.com ≠ Google.com

Sono stati invece reindirizzati al sito di Popov, il cui URL contiene quasi tutto il testo della famosa hit dei Pink Floyd “Money”, dall’album del 1973 “The Dark Side of the Moon”.

http://money.get.away.get.a.good.job.with.more.pay.and.you.are.okay.money.it.is.a.gas.grab.that.cash.with.both.hands.and.make.a.stash.new.car.caviar.four.star.daydream.think.i.ll.buy.me.a.football.team.money.get.back.i.am.alright.jack.ilovevitaly.com/#.keep.off.my.stack.money.it.is.a.hit.do.not.give.me.that.do.goody.good.bullshit.i.am.in.the.hi.fidelity.first.class.travelling.set.and.i.think.i.need.a.lear.jet.money.it.is.a.secret.%C9%A2oogle.com/#.share.it.fairly.but.dont.take.a.slice.of.my.pie.money.so.they.say.is.the.root.of.all.evil.today.but.if.you.ask.for.a.rise.it’s.no.surprise.that.they.are.giving.none.and.secret.%C9%A2oogle.com

Lo scopo dell’URL era un sito web simile a un catalogo web dei primi anni 2000 con collegamenti a vari motori di ricerca e negozi online. Oggi l’URL non porta da nessuna parte. Rimane poco chiaro quale fosse l’obiettivo che Popov avrebbe voluto raggiungere con il suo attacco spam. Forse l’hacker era interessato solo a testare il potenziale di inganno dell’URL di typosquatting ɢoogle.com.

In sostanza: il ghost spam è fastidioso, ma non rappresenta una minaccia per il vostro sito web. Dal momento che il traffico falso non si traduce in vere e proprie aperture del sito web, né il server né i file di log sono gravati da query automatiche. Tuttavia, il ghost spam può rappresentare un problema per chi desidera valutare le statistiche del sito web tramite Google Analytics.

N.B.

Evitate di inserire referrer sospetti sul vostro browser. Altrimenti c’è il rischio che la pagina di destinazione possa infettare il vostro sistema con malware.

Identificare il ghost spam

Il ghost spam si basa solitamente su tracking ID generati in modo casuale. Lo spam bot non sa quindi quale sito web sia interessato all’attacco. Ciò è riscontrabile da incoerenze nei dati di Google Analytics.

Se un utente autorizzato accede al vostro sito web tramite un link, l’header della richiesta nel campo HTTP “Host” contiene inevitabilmente un nome host che può essere assegnato alla vostra rete.

I bot che inviano traffico falso, tuttavia, non conoscono questi nomi e riempiono il campo host con un segnaposto casuale. In alternativa, il campo rimane vuoto e Google Analytics definisce l’host come non impostato. Utilizzate questo schema per identificare il ghost spam nel vostro account Google Analytics. Si raccomanda la seguente procedura:

1. Visualizzare il rapporto di rete: visualizzate il rapporto di rete selezionando dal menu “Pubblico” > “Tecnologia” > “Rete” e scegliete “Nome host” come “Dimensione principale”.

2. Impostare il periodo di visualizzazione: impostate il periodo di osservazione agli ultimi tre mesi.

3. Identificare i nomi host: nella prima colonna del report, Google Analytics mostra tutti i nomi host che hanno indirizzato al vostro sito web. Qui dovrebbero apparire principalmente i nomi che possono essere assegnati ai domini attraverso i quali si mette a disposizione il proprio sito web. Inoltre, troverete qui i domini di Google che sono responsabili per le traduzioni e le versioni web cache del vostro sito web.

translate.googleusercontent.com

webcache.googleusercontent.com

Se nel report di rete trovate altri nomi host che non corrispondono ai domini o alle pagine di supporto di Google, si tratta di ghost spam.

4. Creare un’espressione di rete regolare: annotate tutti i nomi host per i quali si desidera valutare i dati relativi al traffico sotto forma di espressione regolare. Ad esempio:

^(www\.)?(example|googleusercontent)\.com

Questo vi servirà più tardi come modello di filtro. Assicuratevi che l’espressione regolare comprenda tutti i nomi host di cui si desidera analizzare il traffico tramite Google Analytics.

In sintesi

Il ghost spam può essere identificato dal fatto che l’host specificato nella richiesta HTTP non corrisponde agli host della rete.

Filtra il ghost spam

Per nascondere il ghost spam dal vostro account Google Analytics tutto quello che dovete fare è filtrare tutti i nomi host che non fanno parte della rete, utilizzando il filtro apposito per la visualizzazione dei dati.

1. Selezionare la copia della vista dati: passate alla gestione del vostro account Google Analytics e create una copia della vista dati oppure selezionate la copia creata in precedenza.

2. Definire i filtri: selezionate la voce di menu “Filtro” e cliccate su “+ Nuovo Filtro” > “Crea Nuovo Filtro”.

Immettete il nome di un filtro (ad esempio hostname blocker).

Effettuate le seguenti impostazioni in “Informazioni sul filtro”:

  • Tipo di filtro: “Personalizzato”
  • “Includi”
  • Campo filtro: “Nome host “

In “Pattern filtro” inserite l’espressione regolare creata in precedenza per includere solo i nomi host della rete nella visualizzazione dei dati.

3. Verificare i filtri: fate clic su “Controlla filtro” per verificare in che modo il filtro influisce sulla visualizzazione dei dati selezionati. Cliccate su “Salva”.

4. Applicare i filtri alla visualizzazione: se il filtro funziona come desiderato, trasferitelo nella vista principale dei dati.

Tutti i dati utente trasmessi tramite ghost spam saranno così nascosti. Ora potrete finalmente analizzare le statistiche del vostro sito web senza preoccuparvi di eventuali contaminazioni da questo tipo di spam.

Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.