Skip to main content
  1. Concetti/

Attacker-in-the-Browser - Form Grabbing e Zeus Case Study

Alessio Barnini
Author
Alessio Barnini
Table of Contents

Attacker-in-the-Browser - Form Grabbing e Zeus Case Study
#

L'Attacker-in-the-Browser (AiTB) e' una variante dell'attacco on-path che non agisce sulla rete ma direttamente dentro il processo del browser della vittima, tramite malware installato come estensione, plugin o BHO (Browser Helper Object). Il malware intercetta le transazioni dopo che TLS le ha gia' decifrate: da quel punto di vista, TLS non offre alcuna protezione.

attacker-in-the-browser-trojan.webp

Come bypassa TLS
#

TLS cifra il canale di rete tra browser e server. Il browser deve pero' decifrare il traffico ricevuto per mostrarlo all'utente -- e a quel punto il malware AiTB si inserisce. Il malware opera dopo la decifrazione, dentro il processo del browser, con accesso diretto al DOM e ai form HTML. Dal punto di vista della rete, tutto sembra normale: la connessione HTTPS e' integra, nessun certificato sospetto, nessuna anomalia di latenza.

Questa e' la differenza fondamentale rispetto a un attacco on-path classico: un MITM esterno deve interporsi sul canale di rete, gestire i certificati TLS e rischia di generare certificate warnings nel browser della vittima. L'AiTB non ha nessuno di questi problemi perche' agisce gia' dentro il processo dove i dati sono in chiaro.

On-path classico (AiTM)Attacker-in-the-Browser
Posizionetra i due sistemi, layer retedentro il browser, dopo TLS
Vede traffico cifrato?si', deve gestire certificatino, vede gia' il plaintext
Certificate warnings?si'no
Introduce delay?si'no
Rilevabile via rete?piu' facile (Wireshark)molto difficile
Rilevabile via endpoint?meno ovvioEDR puo' rilevare hook sul processo

Tecniche principali
#

Form Grabbing -- il malware aggiunge un hook all'evento submit dei form HTML. Quando l'utente clicca "Conferma bonifico" o "Accedi", il malware cattura tutti i campi del form dal DOM prima che la richiesta HTTPS parta verso il server. Cattura username, password, numero carta, IBAN -- qualsiasi dato l'utente abbia inserito. Funziona anche se il campo e' type="password": il DOM contiene il valore in chiaro nel processo browser.

Transaction Tampering -- tecnica piu' sofisticata usata in attacchi bancari. Il malware intercetta la transazione in uscita, modifica i campi critici (IBAN destinatario, importo) prima che vengano inviati al server, poi ripristina la visualizzazione originale per non insospettire l'utente. L'utente vede la schermata di conferma con i propri dati corretti; il server riceve i dati modificati dall'attaccante.

Keystroke Logging -- il malware registra ogni tasto digitato nel contesto del browser. Piu' grezzo del form grabbing ma piu' universale: cattura qualsiasi campo, in qualsiasi pagina, anche senza attendere il submit.

Zeus Trojan -- il case study classico
#

Zeus (ZeuS, Zbot) e' il malware AiTB piu' documentato della storia. Attivo dal 2007, raggiunse il picco tra il 2009 e il 2010 infettando oltre 3,6 milioni di PC Windows. Il vettore principale era il drive-by download da siti compromessi e campagne phishing.

Zeus implementava form grabbing preciso sui siti bancari: aspettava che l'utente visitasse la propria banca online, catturava le credenziali al login, e applicava transaction tampering sui bonifici -- cambiando l'IBAN del destinatario mantenendo importo e causale identici. L'utente vedeva la schermata di conferma normale; il denaro finiva su conti mulo offshore.

Il codice sorgente di Zeus fu rilasciato pubblicamente nel 2011, generando una proliferazione di varianti: Citadel (2012), GameOver Zeus (2011-2014, con infrastruttura P2P), e numerosi fork ancora attivi.

Difese
#

Transaction signing out-of-band -- la difesa piu' efficace contro il transaction tampering. Il server invia un SMS con i dettagli reali della transazione (importo + IBAN destinatario come ricevuto lato server) e richiede conferma con OTP. Anche se il malware ha modificato i dati nel browser, l'SMS mostra i dati arrivati al server -- l'utente vede la discrepanza tra cio' che ha inserito e cio' che il server ha ricevuto.

EDR comportamentale -- un Endpoint Detection and Response con analisi comportamentale puo' rilevare processi browser che caricano DLL insolite, hook su API di sistema, o connessioni di rete inattese da processi browser.

Allowlist estensioni -- in ambienti enterprise (Chrome Enterprise, Edge for Business), si possono consentire solo estensioni approvate. Riduce drasticamente la superficie di attacco via plugin.

Content Security Policy -- aiuta parzialmente: blocca script da domini non autorizzati caricati nelle pagine. Non protegge pero' da un'estensione malevola gia' installata, che ha accesso diretto al DOM indipendentemente dalla CSP.

Tecnica AiTBCosa catturaQuando agisceDifesa specifica
Form Grabbingdati form (username, password, carta)al submit, prima della richiesta HTTPSVirtual keyboard, EDR
Transaction Tamperingmodifica IBAN/importo in volodurante invio transazioneOTP out-of-band su dati server-side
Keystroke Loggingqualsiasi tasto digitato nel browsercontinuo durante la sessioneEDR, virtual keyboard

Dev parallel: In un'app bancaria Node/PHP, la difesa contro AiTB e' la transaction signing out-of-band: il server invia un SMS con i dettagli della transazione cosi' come li ha ricevuti (importo + IBAN destinatario) e richiede conferma con OTP. Anche se il malware ha modificato i dati nel browser prima dell'invio, l'SMS mostra i dati reali arrivati al server -- l'utente vede la discrepanza e puo' annullare. L'implementazione richiede che il back-end invii l'SMS con i dati gia' validati, non con quelli del form originale.

Dev parallel: Content Security Policy nel back-end PHP/Node aiuta solo parzialmente: blocca script iniettati da domini esterni non in allowlist, ma un'estensione browser malevola ha accesso diretto al DOM con permessi superiori alla CSP. La CSP e' difesa contro XSS (Stored/Reflected), non contro malware installato sull'endpoint.

Related