Ormai quasi tutti sappiamo cosa sia il phishing: una truffa finalizzata al furto dei nostri dati personali, coordinate di accesso al conto corrente e via dicendo.
Di solito la "pesca" degli ignari utenti avviene tramite una mail di un noto istituto di credito che, raccontandoci le scuse più disparate, chiede di inserire la nostra password in una pagina appositamente studiata per assomigliare in tutto e per tutto al sito reale.
Sono state indette svariate campagne di sensibilizzazione e sono stati costruiti vari siti per rendere conscio l'utente di queste truffe: un esempio è antiphishing.poste.it, un portale dedicato alla sicurezza online creato da Poste Italiane.
La tecnica del tabnabbing è stata inventata nel 2010 da Aza Raskin, un imprenditore ed esperto nel campo dell'interazione umano-computer (HCI).
Tramite un Javascript, di cui in seguito illustrerò il funzionamento, un ipotetico truffatore potrebbe modificare il contenuto di una propria pagina web contenente informazioni interessanti e non malevole, in un inferfaccia di login dopo il cambiamento di un tab del browser.
Quanti di noi, sommersi dalle nostre quotidiane 10 o 15 tabs, dovendo scrivere una mail di fretta, fanno il login usando la prima che incontrano?
Noi, pensando che la nostra sessione su Gmail o Hotmail sia scaduta, inseriamo ignari le nostre credenziali e cadiamo nella trappola. Magari venendo reindirizzati al sito corretto per non destare sospetti nell'utente.
Un link che sfrutta questa tecnica può essere diffuso in molteplici modi: non più solamente per email, ma anche tramite social network come Facebook: ciò implica che dobbiamo stare molto più attenti.
Il source di un esempio dimostrativo creato da Raskin è disponibile qua, mentre la pagina a cui è stata applicata la tecnica è questa, in lingua inglese: essa reindirizza ad uno screen della pagina di login di Gmail, del tutto innocua.
Vediamo in dettaglio come lo script è stato inserito nella pagina e che operazioni compie.
Nella riga 176 del secondo link possiamo trovare il seguente tag:
Chiunque mastichi un po' di HTML, sa che questa linea serve semplicemente per richiamare lo script, inserito nel percorso src.
Cominciamo l'analisi delle prime righe.
Saltiamo la parte relativa alle dichiarazioni delle variabili utilizzate, per concentrarci sui due eventi che partono dalla linea 24 fino alla 31.
Questa riga determina che quando la finestra perde il focus, ovvero viene cambiato tab, verrà eseguita la funzione changeItUp dopo 5000 ms, 5 secondi. Inoltre viene assegnato un numero alla variabile TIMER per la gestione dell'evento successivo.
La funzione changeItUp è praticamente il "motore" di questo interessante codice. Essa verrà descritta più avanti.
Questo evento invece previene che il conto alla rovescia cominci se la finestra ritorna ad avere il focus (tab selezionato) prima che siano passati 5000 ms.
Dalla linea 33 comincia la dichiarazione delle funzioni dello script.
Questa ha lo scopo di settare come titolo della pagina il valore text passato in input.
Per commentare questo source, mi riferisco al numero di righe riportato a lato.
La riga 2 crea un nuovo elemento nella pagina di tipo div, che conterrà l'immagine esempio. Dalla riga 3 alla riga 10 vengono indicati parametri riguardanti l'impostazione grafica di questo elemento, come la posizione e il colore di sfondo.
Tramite la funzione createElement viene creato un elemento img (r. 12) e successivamente nella riga 18 si inserisce l'immagine nel div creato in precedenza e si aggiunge al documento tramite document.body.appendChild(div).
Nelle linee 16 e 17 si salvano rispettivamente il titolo della pagina corrente e la favicon corrente, in modo da ripristinarle al click del mouse sull'immagine (r. 21): viene rimosso il div creato e vengono ripristinati il vecchio titolo (r. 24) e la favicon (r. 25).
La riga 2 controlla che la variabile HAS_SWITCHED sia impostata su false, quindi esegue le funzioni createShield(), setTitle() e favicon.set()
Infine imposta la variabile HAS_SWITCHED a true, per evitare un loop dello script.
La descrizione della funzione favicon.set sarebbe stata troppo lunga, inoltre riguarda un aspetto marginale, nemmeno compatibile con Internet Explorer e Safari. Chiunque volesse approfondire può controllare questa pagina.
Premettendo che questo stratagemma non è utilizzato per ora dai phisher (vedi paragrafo Conclusioni), vorrei analizzare come è possibile contrastare questa tecnica.
Questa tecnica ha tutto il potenziale per creare una nuova forma di phishing: come già detto, le pagine che ci vengono proposte all'inizio non sembrano malevole, ma basta uno semplice script per creare una trappola molto ingegnosa.
Sono in corso perfezionamenti della tecnica, come l'utilizzo di iframes per reindirizzare l'utente anche cliccando link interni alla pagina: questo è un filmato dimostrativo.
Finora non sono state trovate pagine malevole che sfruttano il tabnabbing, sia per la relativa complessità della creazione della pagina ad hoc, sia perché la localizzazione in italiano richiede del tempo; ma non è escluso che in un futuro prossimo le esche in mano ai phisher saranno di più.
Non abboccate!
MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .
Copyright 2008 MegaLab.it - Tutti i diritti sono riservati