Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Extended Summary of "What You See is NOT What You Get: Discovering and Tracking Ad-Driven Social Engineering Attack Campaigns"
1. UNIVERSITÀ DEGLI STUDI DI TRIESTE
__________________________________________
Dipartimento di Ingegneria e Architettura
Corso di Laurea in Ingegneria Elettronica e Informatica
Extended Summary of
"What You See is NOT What You Get: Discovering and
Tracking Ad-Driven Social Engineering Attack Campaigns"
Laureando Relatore
Rocco CALIANDRO Prof. Alberto BARTOLI
ANNO ACCADEMICO 2019/2020
3. Introduzione
È stato fatto un Extended Summary del paper:
Phani Vadrevu and Roberto Perdisci, "What You See is NOT What You Get: Discovering and
Tracking Social Engineering Attack Campaigns" in IMC '19: Proceedings of the Internet
Measurement Conference, 2019, pp. 308-321.
Gli annunci online possono essere distribuiti sui siti dei publisher dalle reti pubblicitarie di grosse
aziende come Google, Facebook, ecc., ma anche da reti gestite da organizzazioni meno importanti
che, a fronte di politiche poco restrittive sui contenuti che veicolano, riescono a garantire guadagni
più elevati. Si ottiene questo risultato con attacchi di Social Engineering (SE), responsabili di far
eseguire azioni dannose per gli utenti, come scaricare software indesiderato, acquistare prodotti o
servizi anch’essi indesiderati, o cedere dati sensibili.
Lo studio in oggetto propone un sistema per l’identificazione di annunci provenienti da campagne
di pubblicità dannose, dette SEACMA (Social Engineering Attack Campaign delivered via
Malicious Ads). Esso studia, partendo da un elenco iniziale di reti pubblicitarie, quali abbiano
maggiori probabilità di distribuire annunci dannosi e si propone di scoprirne di nuove. È inoltre
generico, in quanto non tiene conto del tipo di attacchi lanciati o delle categorie di siti che li
distribuiscono.
Funzionamento
Il sistema, illustrato nella figura 1, è strutturato come segue:
Figura 1: Panoramica del sistema
3
4. 1. Low-tier ad networks
Visitando siti web e forum in cui si discute di come massimizzare le entrate pubblicitarie, si
è stilato un elenco iniziale (seed) di reti pubblicitarie.
2. Publisher websites
Le reti del seed distribuiscono lo stesso codice JavaScript ai loro clienti (publisher) per
diffondere gli annunci. Fingendosi publisher fittizi è stato possibile ottenere questo codice,
ed è stato inserito nel motore di ricerca PublicWWW.com per risalire a tutti quelli che lo
utilizzano.
3. Crawler farm
Per visitare i siti ottenuti nella fase 2, sono stati creati dei bot (i cosiddetti crawler) aventi al
proprio interno una versione headless e strumentata di un browser in grado di funzionare in
parallelo in varie combinazioni useragent / sistema operativo, sia mobile che fisso. I crawler
ordinano per dimensione gli elementi visivi (immagini e iframe) dei siti visitati e simulano
un click o un tap su di essi fino a quando si raggiunge un certo numero di interazioni o un
tempo limite. Un annuncio è considerato tale se dopo l’interazione porta a un nuovo
dominio.
4. Detailed browsing logs
Ad ogni interazione del punto 3, il crawler memorizza diverse informazioni: uno screenshot
della pagina, URL visitato, URL aperto, chiamate ad API JavaScript, codice JS caricato ed
eseguito, e salva eventuali file / eseguibili scaricati.
5. Landing page clustering
A questo punto per scoprire le campagne SEACMA bisogna filtrare gli annunci irrilevanti,
ovvero quelli che non ne fanno parte, quindi si procede ad una classificazione tramite
clustering. Poiché ciascuna campagna fornisce gli stessi annunci a publisher diversi, si usa
una funzione che raggruppa gli annunci visivamente simili, e registra anche i domini di
secondo livello che li ospitano. In base a questi parametri vengono creati dei cluster. Se un
cluster ha almeno 5 domini distinti, rappresenta una campagna SEACMA da tracciare,
altrimenti viene scartato.
6. SE ad campaign milking
Il milking consiste nel tracciare le campagne appena scoperte. Bisogna quindi individuare i
relativi URL da analizzare.
Si è notato che le landing page degli annunci vengono solitamente ospitate su domini che
hanno una durata di poche ore / giorni. Ciò avviene per renderne difficile l’identificazione
da servizi che si occupano di bloccare gli annunci dannosi attraverso black list, come ad
esempio il GSB (Google Safe Browsing, integrato nei browser più comuni). La cosa
interessante è che nella sequenza di URL caricati tra click sull’annuncio e landing page
avvengono più redirection su diversi domini. Mentre gli “ultimi” hanno vita breve, “a
monte” ce n’è sempre uno che tende a durare più a lungo, e che di contro viene inserito con
molto ritardo in GSB. Gli URL ospitati sui domini “a monte” saranno i candidati per il
milking, e possono facilmente essere identificati tramite una strumentazione sui crawler in
grado di eseguire un backtracking dalla landing page al click sull'annuncio.
Gli URL candidati vengono quindi visitati dai crawler, che catturano uno screenshot della
landing page. Se c'è una corrispondenza con quelli catturati nel punto 4, il candidato diventa
"milkable".
4
5. Il milking si realizza visitando periodicamente l'URL con diversi useragent e tenendo traccia
dei domini ai quali viene fatta redirection. Quelli mai visti saranno controllati in GSB per
valutare l'efficienza di questo servizio, mentre i file eventualmente scaricati saranno inviati
per una scansione a VirusTotal, un sito che permette l’analisi di file per scovarne virus o
malware all’interno.
Figura 2: Grafico di backtracking per un attacco SE
7. SE ads analisys
In questa fase ogni annuncio sarà associato ad una specifica rete pubblicitaria. È un passo
necessario in quanto un publisher può adottare diverse reti pubblicitarie, per cui bisogna
risalire a quale di queste l'annuncio appartenga. Si controlla se il codice JS di una rete del
seed iniziale compaia nel percorso tra il click su un annuncio e il caricamento dell’attacco.
In caso di corrispondenza, la campagna dell’annuncio viene attribuita alla relativa rete,
altrimenti l’annuncio è etichettato come “sconosciuto”.
8. New Ad Network
Gli annunci “sconosciuti” possono essere usati per scoprire nuove reti pubblicitarie da
aggiungere all’elenco iniziale per espandere la ricerca.
5
6. Risultati e considerazioni
Per eseguire il test, sono state usate 5 macchine server linux a 12-32 core e 24-128 GB di RAM, che
assegnavano a ciascun crawler in media 1 core e 2 GB di RAM.
Inizialmente è stato stilato un seed di 11 reti. Da esso si sono ricavati 93.427 siti di publisher, ma
solo su 74.541 è stato possibile raccogliere dati (screen, URL, file scaricati, ecc.). Il tutto è avvenuto
con sessioni di navigazione di circa 2 minuti. Per dare un’idea delle interazioni, 39.171 siti hanno
portato a 199.400 landing page.
Con gli screenshot raccolti si sono ottenuti 130 cluster, di cui 108 erano di SEACMA, ottenuti da
11.341 domini di publisher e 28.923 istanze di attacco.
Dal backtracking degli URL SEACMA, si sono ottenute 505 coppie (URL, useragent) da usare
come fonte per il milking, che è stato poi eseguito con i crawler come descritto in precedenza.
La fase di milking, durata 14 giorni e oltre 1 milione di sessioni, ha fatto scoprire 2.042 nuovi
domini. Essi sono stati cercati su GSB subito dopo il milking e dopo 2 mesi. I risultati sono stati
(tabella 1) che il tasso di rilevamento di questi domini è stato rispettivamente di 1,42% e 16,21%.
Anche dopo 2 mesi quindi il dato è rimasto molto basso. Ciò è dovuto probabilmente al fatto che i
siti usati per il milking sono molto veloci a cambiare i domini temporanei nuovi a cui reindirizzano.
Possiamo concludere che il sistema ha evidenziato l’inefficacia di meccanismi come GSB contro
queste tipologie di attacchi. Google nel 2016 aveva annunciato che GBS avrebbe bloccato la
visualizzazione di attacchi sui browser che lo implementano, tuttavia a distanza di 3 anni i risultati
sono scoraggianti.
Category # Domains GSB-init GSB-final
Fake Software 1.665 1,28 % 18,59 %
Technical Support 258 2,99 % 4,70 %
Scareware 45 0,00 % 2,27 %
SE Registration 47 0,00 % 0,00 %
Lottery / Gift 27 3,70 % 55,56 %
Total 2.042 1,42 % 16,21 %
Tabella 1: Monitoraggio delle campagne SEACMA (milking)
I domini analizzati sono stati inoltre classificati per argomento per mezzo di una API pubblica, e il
dato interessante è che, secondo una classifica di popolarità fornita dal sito PublicWWW.com, 52 di
essi sono tra i 10mila domini più popolari, e 4 tra i primi 1.000. Ciò significa che anche i siti
popolari ospitano campagne SEACMA.
Per quanto riguarda i file scaricati, durante il milking ne sono stati raccolti 9.476, per lo più
eseguibili Windows o Mac. Dalla scansione su VirusTotal, è risultato che solo 1.203 erano
contrassegnati come dannosi. La scansione è stata rieseguita dopo 3 mesi, e questa volta i file
dannosi secondo il sito erano oltre 9.000, di cui più di 4.000 erano contrassegnati come dannosi
anche da 15 diversi antivirus.
Analizzando le reti si è visto che su 28.923 attacchi l’81% è stato attribuito al seed iniziale, dato
abbastanza prevedibile. Più nello specifico, per 3 delle reti analizzate, ben oltre il 50% degli
annunci ospitava attacchi di SE (tabella 2, 5° colonna), . Ciò significa che probabilmente i gestori di
alcune reti sono consapevoli che esse sono veicoli di attacco SE ma non hanno i mezzi o la volontà
per combattere questo fenomeno.
6
7. Ad network # Ad network
domains
# Landing Pages # SE Attack Pages % SE Attack
Pages
RevenueHits 517 15.635 3.075 19,67 %
AdSterra 578 15.102 7.644 50,62 %
PopCash 2 9.734 6.256 64,27 %
Propeller 4 8.206 3.470 42,29 %
PopAds 3 4.658 873 18,74 %
Clickadu 10 2.814 848 30,14 %
AdCash 14 1.698 955 56,24 %
HilltopAds 46 1.198 77 6,43 %
PopMyAds 1 1.194 103 8,63 %
AdMaven 39 496 122 24,60 %
Clicksor 4 276 12 4,35 %
Unknown - - 5.488 -
Tabella 2: Attacchi SE da ciascuna rete pubblicitaria
Il sistema è imperfetto e presenta i seguenti limiti:
- Nonostante sia eseguito su browser strumentati appositamente, è basato su semplici regole
empiriche, e quindi è facilmente identificabile dalle reti pubblicitarie, le quali potrebbero evitare di
esporgli gli attacchi dannosi che si stanno cercando.
- Si è notato che di tutti i siti dei publisher visitati, solo il 16% ospitava effettivamente annunci
SEACMA, una bassa percentuale, quindi non è detto che un sito ospiti sempre e comunque un
annuncio SEACMA, ma potrebbero essere necessari più tentativi da parte del sistema per
individuarli.
- Sebbene sia per la maggior parte automatizzato, ci sono alcune operazioni che vanno eseguite
manualmente, come ad esempio compilazione seed, scoperte di reti sconosciute e altre operazioni
più minuziose non citate in questo testo.
Dal punto di vista etico, in termini di mancati introiti, il sistema ha un impatto trascurabile sui siti
dei publisher visitati, stimato a circa 0,04 dollari per dominio, ma porta invece molti vantaggi.
Conclusioni
Questo studio presenta un sistema generico per il rilevamento e il tracciamento automatici su larga
scala delle campagne SEACMA. Partendo da una lista iniziale di reti, il sistema è in grado di
individuare quelle più propense a diffondere annunci malevoli e inoltre di scoprirne di nuove.
Si è visto che gli inserzionisti usano diverse strategie per non comparire nelle black list, e diverse
tattiche per diffondere gli annunci malevoli. Questo studio può essere sfruttato per migliorare il
modo di difendersi dagli attacchi SE e gli annunci dannosi in generale, e il sistema in esso
presentato, data la sua genericità, può essere usato ortogonalmente ad altri sistemi più specifici già
esistenti.
7