Il Cavallo di legno impiegato da Ulisse nel suo piano strategico per espugnare la città di Ilio è lo strumento bellico più celebre della storia. Al giorno d’oggi il termine “Cavallo di Troia”, già adottato da tempo nel linguaggio comune, nel gergo informatico viene adoperato per indicare i sotterfugi con cui ingannare i sistemi di sicurezza e/o qualificare una tipologia di malware.
In questo articolo non tratterò però di un codice malevolo con queste caratteristiche, ma piuttosto di una strategia di attacco informatico che utilizza come Cavallo di Troia la pubblicità via web per infettare pc, portali o addirittura intere reti pubblicitarie: il cosiddetto Malvertising (Malicious-Advertising).
Si è portati a pensare che le semplici regole di buona pratica per individuare link improbabili, richieste di download sospette siano sufficienti a far focalizzare l’attenzione sulla possibile minaccia. Purtroppo, con il malvertising non è detto che sia necessario il coinvolgimento dell’utente. Le infezioni possono contrarsi semplicemente sfogliando pagine, guardando video on line di siti legittimi, anche loro vittime inconsapevoli.
È sufficiente uno script nascosto in un annuncio per collegare un computer a server remoti e successivamente installare un malware, senza che nessuna pagina o popup del browser venga aperto. Spesso l’utente ignaro si accorge del rischio quando ormai è troppo tardi e il software maligno ha espletato la sua azione.
Un sito legittimo può diventare un vettore malvertising a causa della prassi usuale di esternalizzare il servizio pubblicitario a terze parti, che a loro volta rivendono spazi agli inserzionisti tramite procedure automatizzate e spesso non sufficientemente controllate. Questo punto debole può essere sfruttato dagli attaccanti per inserire il proprio codice maligno.
L’attacco può avvenire:
In entrambi i casi, solitamente, vengono sfruttate le falle di sicurezza dei browser e le vulnerabilità delle versioni software non aggiornate affinché:
Il javascript è uno dei linguaggi di programmazione usati per creare contenuti web. Le pagine web in formato html possono essere rese dinamiche anche grazie all’uso di codice javascript innestato attraverso i tag dedicati (<script> e </script>). Il motivo che rende appetibile ai criminali questo linguaggio è che la sua computazione avviene in locale, direttamente sul client e che è supportato da tutti i browser senza l’utilizzo di alcun plug-in aggiuntivo. La peculiarità di questo codice sta nel fatto che viene eseguito tramite l’accadimento di certi eventi, quali per l’appunto quelli particolarmente adatti per il malvertising:
Per uso esclusivamente didattico, di seguito riporto alcuni pezzi di codice javascript che potrebbero essere utili allo scopo:
Codice che chiama ed esegue script da un sito [1]
<script type='text/javascript' src=’http:/Sitomalevolo/…/filej666.js’></script>
Codice che reindirizza il browser a un altro sito [2]
<script> if (document.referrer.match(sitolegittimo.xx)) {window.location(“http://sitomalevolo”);} </script>
Codice per realizzare un popup [3]
<script type=”text/javascript”> var stile = “top=10, left=10, width=250, height=200, status=no, menubar=no, toolbar=no scrollbars=no”; window.open(“http://sitomalevolo”, “”, stile); </script>
Codice per realizzare un banner [4]
<script language=”JavaScript”> var banner_pic = new Array() banner_pic[0] = “pic0.jpg” banner_pic[1] = “pic1.jpg” banner_pic[2] = “pic2.jpg” var banner_url = new Array() banner_url[0] = “http://sitomalevolo0” banner_url[1] = “http://sitomalevolo1” banner_url[2] =“http://sitomalevolo2” var num = Math.floor(Math.random()*banner_pic.length) document.write(‘<a href=”'+banner_url[num]+’” target=”_blank”>’) document.write(‘<img border=”0” src=”’+banner_pic[num]+’”></a>’) </script>
Pagina html con un elemento iframe [5]
Attraverso l’elemento iframe e il relativo tag è possibile creare un frame all’interno di una pagina html. Nell’esempio che segue è stata creata una semplice pagina html che contiene all’interno un iframe che mostra il banner d’intestazione della home page del nostro magazine.
<html> <title>iFrame</title><body> <div align=”center”>Ecco un <b><iframe></b>di esempio che si apre su https://www.ictsecuritymagazine.com/:<br><br> <iframe src=”https://www.ictsecuritymagazine.com/” width=”600” height=”300”> <p>Su <a href=”https://www.ictsecuritymagazine.com/”>https://www.ictsecuritymagazine.com/</a> </p></iframe></div></body> </html>
Come già accennato, il codice javascript implementato all’interno di una pagina web consente di eseguire la routine programmata sulla postazione locale dell’utente che visita la pagina stessa. Se tale codice dovesse svolgere delle funzioni dannose si può ben capire quali potrebbero essere le conseguenze. È bene però precisare che non sono le modalità di esecuzione del codice in sé ad essere poco sicure ma le eventuali implementazioni fraudolente.
Se un sito web implementa delle linee di codice javascript, quando la pagina viene caricata dal browser, mentre l’utente compila un form oppure fa un download o semplicemente guarda i suoi contenuti e annunci, vengono scaricati in background dei file con estensione .js. Ovviamente le recenti versioni di browser se correttamente configurati dovrebbero per lo meno avvisare e chiedere il consenso di fare eseguire quegli script che eventualmente la pagina carica in fase di apertura. Ma è altrettanto vero che non si può conoscere a priori la vera natura del codice e, spesso, non dare il consenso può compromettere la corretta visualizzazione della pagina. Quindi ci si trova a dover fare una scelta e i criminali puntano esattamente su questo aspetto adottando ogni tipo di strategia per invogliare il visitatore a proseguire nell’esecuzione.
L’attacco può così essere schematizzato:
se si tratta di un iframe:
Se si tratta di codice javascript:
Negli ultimi anni piattaforme on line ben note sono cadute vittima di malvertising a causa di un exploit kit diffuso in applicativi web per la visualizzazione di file multimediali. Nell’agosto 2018 una ricerca Check Point ha scoperto una campagna del genere che, partendo dalla compromissione preventiva di centinaia di siti e coinvolgendo diversi attori della catena pubblicitaria, procedeva:
Per contrastare anche il fenomeno del malvertising, non del tutto calmierato, di recente una nota piattaforma web ha rilasciato numerose patch e funzionalità di sicurezza per il browser di sua proprietà risolvendo alcune vulnerabilità relative all’esecuzione di codice arbitrario, all’accesso a informazioni sensibili, all’elusione di restrizioni di sicurezza e agli attacchi di tipo DoS, così come fatto anche da altre piattaforme concorrenti.
A fronte di ciò il potenziale pericolo che un sito web possa essere utilizzato come vettore per diffondere codice infetto rende il malvertising una minaccia da non sottovalutare.
Pertanto, per mitigare i rischi legati a queste tipologie di attacchi, è consigliabile:
[1] https://www.html.it/pag/15249/includere-un-file-esterno/
[2] http://www.strivingprogrammers.com/how-to-redirect-users-based-on-referrer-url-using-javascript
[3] https://www.html.it/articoli/esempi-di-finestre-popup/
[4] https://www.mrwebmaster.it/javascript/gestire-banner-javascript_6495.html
[5] https://www.html.it/pag/16066/liframe/
Articolo a cura di Salvatore Lombardo
Nel panorama odierno della sicurezza informatica, la protezione degli endpoint rappresenta un obiettivo imprescindibile per…
I numeri dell’evento Oltre 1000 ospiti, 42 relatori, 20 interventi tematici e 5 Tavole Rotonde:…
Group-IB è un fornitore, con sede a Singapore, di sistemi ad elevata attendibilità per il…
Le interazioni di natura digitale, su rete pubblica o all’interno di reti private, hanno assunto…
La Commissione Europea ha di recente ricordato come “Artificial intelligence (AI) is not science fiction;…
Di seguito il programma della Cyber Crime Conference 2024, che avrà luogo a Roma nei…