Recentemente si parla sempre più spesso di attacchi man-in-the-browser (abbreviati con la sigla MITB): si tratta di una variante del classico man in the middle (MITM) nella quale il malware viene inoculato all’interno del browser. In questo modo l’attaccante è in grado di intercettare, registrare e manipolare le comunicazioni tra l’utente e uno o più siti target.
Indice degli argomenti
Man-in-the-browser: evoluzione di un malware
I primi esempi di malware MITB risalgono a quando Internet Explorer era uno dei browser più popolari e le librerie Browser Helper Objects (BHO) rappresentavano l’unico modo per aggiungere funzionalità aggiuntive alle estensioni del browser.
L’attacco avveniva quindi facendo installare all’utente una BHO malevola o iniettando codice malware dentro una BHO già installata. Oggi tutte le BHO sono firmate digitalmente da Microsoft, e quindi questo vettore di attacco, fortunatamente, non è più disponibile.
Ma come spesso accade, di pari passo con l’evolversi dei presidi di sicurezza si sono evolute anche le tecniche di attacco, che oggi fanno leva principalmente sul social engineering e su meccanismi di “browlocking”, ovvero sull’innescare situazioni che obbligano l’utente a installare estensioni o upgrade per poter proseguire nella navigazione. Va da sè che spesso si tratta di codice malevolo.
Un esempio di browlocking con cui il malware man-in-the-browser di fatto obbliga la vittima ad installare estensioni del browser compromesse.
Un caso di studio di malware man-in-the-browser: EKO
Uno degli esempi più recente di attacco MITB è il malware EKO. Inizialmente scoperto sul Facebook russo nel 2015 e successivamente segnalato anche in Francia, EKO è un malware che si è diffuso tramite il servizio di messaggistica di Facebook.
In pratica, la vittima riceve un messaggio diretto da uno dei suoi contatti, che è già stato compromesso. Il messaggio contiene un link che punta ad un (finto) video di YouTube.
Quando la vittima clicca sul link, si ritrova in una pagina di phishing che mima il sito di YouTube; a questo punto, la vittima riceve una notifica in cui gli si chiede di installare un’estensione per riprodurre il video. L’estensione contiene il malware vero e proprio che a questo punto viene installato nel browser della vittima. Questo tipo di attacco è stato osservato sulla piattaforma di Chrome, utilizzando l’extension store ufficiale: tuttavia si ritiene che anche altri browser potrebbero essere stati infettati.
Il malware EKO invia una finta notifica di Facebook alla vittima per convincerla ad installare un’estensione infetta nel browser.
Una volta che l’estensione viene scaricata, succedono diverse cose. L’estensione si connette al server di comando e controllo (C&C) e da questo ottiene un link su GitHub da cui scaricare il payload malevolo, cioè il codice di attivazione del virus stesso.
Gli utenti iniziano a ricevere pubblicità indesiderata. Ma soprattutto, EKO è in grado di spiare il comportamento dell’utente e raccogliere i suoi dati personali, inclusi gli account di home banking. In ultimo, gli utenti infettati diventano veicolo di infezione a loro volta, inviando i medesimi link malevoli a tutti i contatti in rubrica.
Il sorgente di EKO è stato parzialmente decodificato. Qui viene evidenziata la porzione di codice con cui il malware interagisce con il sito di Facebook.
In generale questo tipo di malware risulta piuttosto difficile da rilevare, per diverse ragioni. Le estensioni malevole sembrano spesso legittime agli occhi dell’utente: sono utili e quando scaricate funzionano correttamente, almeno per un po’. Dunque, risulta piuttosto arduo notare qualcosa di strano. Inoltre, anche quando iniziano a comportarsi in maniera anomala, il loro perimetro è circoscritto all’interno del browser e difficilmente lasciano tracce al di fuori di esso. Il malware è estremamente “auto-contenuto” e non ci sono indicatori di compromissione (IOC) affidabili che possono aiutare i classici strumenti di antivirus nelle scansioni.
Le soluzioni per difendersi dal malware man-in-the-browser
Nonostante la rilevazione di questo tipo di malware sia quindi piuttosto complessa, esistono comunque delle contromisure che possono essere adottate, sia lato server che lato client.
Dal punto di vista dell’utente, e quindi dal lato client, si possono adottare le seguenti misure di prevenzioni, entrambe semplici ed efficaci:
- mantenere il proprio browser sempre aggiornato e controllare periodicamente le estensioni e gli add-on installati è una misura di primo livello, di per sé efficace nella maggior parte dei casi. Alcuni browser particolarmente “hardenizzati” utilizzano blacklist di estensioni pericolose che vengono automaticamente bloccate all’avvio;
- adottare un browser specifico da usare esclusivamente per le operazioni sensibili (banking in primis) e usarne un altro per tutte le altre attività di navigazione, che per loro natura presentano un rischio maggiore di infezione.
Anche per quanto riguarda le misure server-side, le contromisure ai malware man-in-the-middle sono abbastanza semplici da approntare ed efficaci:
- un metodo ormai piuttosto diffuso, specialmente nell’ambito del banking, è quello dell’autenticazione a due fattori. In questo caso l’utente che si autentica, dopo aver fornito user e password, deve confermare un codice che tipicamente gli viene inviato tramite SMS o mediante codice OTP. Un malware particolarmente evoluto (come ad esempio i mobile banking trojan) potrebbe tuttavia intercettare i dati di un’operazione, per esempio di un bonifico, e mostrare all’utente i dati originali, ma inviare alla banca quelli alterati (ad esempio, cambiando l’importo e il beneficiario). A quel punto l’utente si troverebbe a confermare l’operazione del malware pensando invece di completare la propria. Per questo motivo è sempre bene controllare tutte le informazioni che la banca ci invia nel messaggio di conferma.
- un altro approccio è quello dell’analisi comportamentale. Il provider del servizio esamina il comportamento degli utenti in modo tale da definire un pattern normale di comportamento e rilevare, così, eventuali azioni “anomale” conseguenza di abusi dell’account. Questo tipo di analisi è già comunemente utilizzato in alcuni ambiti particolari, ad esempio per rilevare movimenti anomali delle carte di credito. In questi casi la banca sospende l’operazione e si mette in contatto con l’utente per verificare la natura dell’operazione.
Policy di sicurezza contro il malware man-in-the-browser
Per quanto riguarda le policy di sicurezza, recentemente è stata proposta l’implementazione delle Content Security Policies (CSP). Si tratta di uno standard di sicurezza inserito nella Recommendation del W3C Working Group: introdotto per prevenire diverse tipologie di inoculazione di codice malevolo (per esempio tramite cross-site scripting e clickjacking), i browser principali lo hanno già adottato.
L’idea è di base è che l’owner (il proprietario) di un sito Web dichiara con un formato standard quali sono i contenuti che i browser sono autorizzati a caricare da quel sito, specificando per esempio le fonti JavaScript, CSS, eventuali file audio e video o altri elementi HTML. Qualora il sito invii dati non conformi alla policy, il browser può notificare la violazione all’utente (report-only mode) oppure bloccare la ricezione del dato (blocking mode).
Infine, può essere vantaggioso affidarsi ad un servizio di Web integrity check (uno dei più famosi è Jscrambler): si tratta, in pratica, di una serie di moduli che proteggono il JavaScript eseguito sul client da tentativi di reverse-engineering, malware injection e tampering del browser. Il vantaggio di questa soluzione è il fatto di essere completamente plug-and-play e di non richiedere nessun tipo di installazione locale. Inoltre, contrariamente alle classiche soluzioni antivirus, non cerca firme digitali conosciute ma è in grado di rilevare ogni cambiamento del codice, riuscendo in questo modo a bloccare anche le minacce di tipo zero-day.
Per il futuro, è probabile che anche gli algoritmi di intelligenza artificiale e machine learning daranno una mano per individuare e prevenire comportamenti sospetti tipici degli attacchi di tipo man-in-the-browser, per esempio analizzando la navigazione per intercettare e bloccare siti sospettati di distribuire codice malware.
Attacchi man-in-the-browser: una lezione per le aziende
Il malware browser-based come il man-in-the-browser rappresenta un settore in forte evoluzione, che richiede un’attenzione particolare per organizzare contromisure di sicurezza valide ed efficaci, soprattutto quando si tratta di proteggere le connessioni aziendali e, quindi, i preziosi asset produttivi.
L’approccio migliore resta quello di combinare più metodi di prevenzione, agendo sia sul lato server che sul lato client.
In questo senso, affiancare alle tecniche più tradizionali le nuove tecnologie di integrity check e di intelligenza artificiale può contribuire a raggiungere un livello di sicurezza adeguato, mentre sensibilizzare gli utenti e perfezionare le buone prassi di validazione è sempre uno strumento utile per la prevenzione dalle infezioni.
Disclaimer: le opinioni e i contenuti riportati dall’autore sono formulati a titolo esclusivamente personale.