L’autenticazione a due fattori è uno strumento che serve a evitare che un criminale informatico, venuto in possesso delle altrui credenziali di accesso corrette (username e password), possa accedere a un servizio online con l’identità di un altro soggetto.
In un altro articolo abbiamo visto cos’è l’autenticazione a due fattori e come si gestisce nel modo migliore.
Per accedere a un servizio online protetto con l’autenticazione a due fattori (2FA o Two Factor Authentication, che Google chiama verifica in due passaggi) di solito è necessario autorizzare l’accesso da un dispositivo affidabile (ad esempio utilizzando un app “ad hoc” che informa l’utente circa ogni nuovo tentativo di autenticazione), digitare un codice OTP (one-time-password) generato sul device mobile, utilizzare una chiavetta o token FIDO2 oppure meccanismi biometrici.
Gli accademici dell’Università del Salento Franco Tommasi, Christian Catalano e Ivan Taurino hanno dimostrato che anche l’autenticazione a due fattori può essere superata utilizzando un attacco chiamato Browser-in-the-Middle (BitM).
L’aggressione, almeno dal punto di vista della terminologia, ricorda il noto attacco Man-in-the-Middle (MITM) in cui un aggressore, postosi tra due soggetti che partecipano a una comunicazione, può monitorare e leggere i messaggi scambiati eventualmente modificandoli a suo piacimento. Questo tipo di aggressori possono verificarsi quando si usa un canale insicuro senza applicare alcuna forma di codifica dei dati o scegliendo un algoritmo crittografico poco solido.
Nel caso di BitM un aggressore frappone un suo browser Web tra il sistema della vittima e il sito (legittimo) che l’utente è convinto di visitare.
Come spiegano Tommasi, Catalano e Taurino in una pubblicazione scientifica, il criminale informatico può ad esempio allestire un server VNC su un suo sistema e inviare alla vittima un link facente riferimento a tale installazione.
In rete è disponibile un software open source che si chiama noVNC, un client VNC basato sul libreria JavaScript che permette di interagire con server VNC da qualunque browser, compresi quelli utilizzati sui dispositivi mobili Android e iOS.
Allestendo un server malevolo ed eseguendo il browser Web in modalità kiosk (così da non mostrare alcun elemento della sua interfaccia), l’aggressore può configurarlo in maniera tale che mostri la reale pagina di login di Google, Facebook, Apple, Microsoft o di qualunque banca.
Inviando alla vittima un link che punta al sistema sul quale è installato e configurato noVNC, l’utente visualizzerebbe la pagina di login originale dei vari servizi autorizzando il login con l’autenticazione a due fattori.
Dal momento che, però, l’autenticazione non avviene sul sistema della vittima ma su una macchina sotto il totale controllo dell’aggressore, questi può ad esempio:
– Rilevare e salvare il token di sessione del browser dopo la disconnessione dell’utente in modo da mantenere il controllo sull’account altrui. In Chrome e nei browser derivati da Chromium si può fare premendo il tasto F12
quindi cliccando su Application, Cookies.
– Attivare un proxy HTTP che effettua il logging di qualunque informazione inserita dalla vittima.
– Eseguire un keylogger in background.
– Iniettare codice JavaScript arbitrario nelle pagine caricate dal browser.
– Chiudere la sessione VNC non appena l’utente si è correttamente autenticato.
Il fatto è che tutto parte da un attacco phishing e l’aggressione fa abbondantemente uso delle tecniche di ingegneria sociale.
Attenzione quindi, ancora una volta, ai messaggi che ricevete attraverso i vari canali e alla struttura dei link: gli aggressori possono utilizzare nomi a dominio che ricordano da vicino quelli dei principali siti Web. Bello il quiz di Google che aiuta a riconoscere le email phishing e che è utile per imparare a classificare a colpo d’occhio quali URL non possono mai essere ritenuti legittimi.