Attacco man in the middle: tipi di attacco e contromisure

Da quando si è iniziato a mandare messaggi, ci sono sempre state delle persone che hanno cercato di intercettarli e di manipolarli, passando inosservati. Se prima i messaggi dovevano essere intercettati in maniera concreta per essere letti, oggi Internet offre possibilità di spionaggio più sottili. In tutto il mondo, la maggior parte del traffico dati avviene tramite reti aperte e spesso anche non sufficientemente cifrate. Inoltre, gli utenti spesso non sanno come funziona la trasmissione dei messaggi nel World Wide Web. Di regola i pacchetti dati attraversano molte stazioni intermedie, con livelli di sicurezza diversi, nel loro percorso fatto a partire dal mittente per arrivare al destinatario.

Gli hacker, ma anche i servizi segreti, si mettono in azione per riuscire a leggere informazioni sensibili e usarle per i loro scopi. Sempre più utenti cercano quindi, a seconda delle possibilità, di configurare metodi di trasmissione su Internet sempre più sicuri. Ma cosa accade quando un criminale si spaccia per il destinatario durante il processo di trasmissione di informazioni? Questo metodo di spionaggio si chiama attacco man in the middle.

Che cos’è un attacco man in the middle?

Con attacco man in the middle (MITM) viene descritto un metodo nel quale un hacker si inserisce nel traffico dati tra due utenti che comunicano e fa credere ad entrambe le parti che stiano interagendo tra di loro. Prima attacchi di questo tipo avvenivano attraverso una manipolazione concreta dei canali di comunicazione (ad esempio l’apertura di una lettera). Ai tempi del World Wide Web, dove si usano reti di comunicazione aperte, terzi non autorizzati si inseriscono principalmente tra due o più parti che comunicano. Gli attacchi man in the middle nelle reti di computer avvengono soprattutto per bypassare la cifratura via SSL/TLS e conquistare così l’accesso alle informazioni segrete, password o database. Il procedimento di un attacco man in the middle è il seguente:

un sistema A cerca di stabilire una connessione cifrata con un sistema B, ma il flusso di dati viene deviato da un estraneo (il criminale) in modo che la connessione cifrata passi da un sistema A ad uno C, prima di essere inoltrata a quello B. Questo ha come conseguenza il fatto che colui che detiene il controllo del sistema C (di solito il criminale) possa vedere tutto il traffico di dati, registrarlo e manipolarlo, spesso senza che le altre due parti in causa se ne accorgano. Applicato al Word Wide Web significa che un sistema C si presenta come web server al sistema A e come browser al sistema B.

Schema di attacco

Per infiltrarsi nel traffico dati tra due o più sistemi, gli hacker ricorrono a diverse tecniche, sfruttando i punti deboli delle comunicazioni su Internet. Una delle superfici di attacco per un attacco man in the middle alla LAN, lo offre ad esempio il servizio DHCP (Dynamic Host Configuration Protocol), che è responsabile dell’assegnazione degli indirizzi IP locali, così come il sistema ARP (Address Resolution Protocol) che determina gli indirizzi hardware (Media-Access-Control, MAC). A livello globale gli attacchi man in the middle si possono realizzare attraverso una manipolazione dei server DNS, che sono responsabili per la risoluzione degli indirizzi IP pubblici. Inoltre, gli hacker approfittano delle falle di sicurezza nei software dei browser obsoleti o mettono a disposizione accessi WLAN corrotti agli utenti ignari.

Di regola questi tipi di attacchi avvengono in maniera automatica attraverso l’uso di software. Se gli attacchi vengono supportati anche da un intervento umano, si parla di human assisted attack.

Attacchi basati sul server DHCP

Negli attacchi basati su DHCP, un hacker fa passare il proprio computer (o uno che si trova sotto il suo controllo) all’interno di una Local Area Network (LAN) come server DHCP. Il server DHCP è uno dei componenti centrali nella rete locale, che è responsabile per l’assegnazione della configurazione di rete verso altri computer nella LAN. Questo avviene di regola in automatico: non appena un computer stabilisce una prima connessione alla LAN, il client DHCP del sistema operativo richiede informazioni quali un indirizzo IP locale, la maschera di rete, l’indirizzo del gateway predefinito e gli indirizzi del server DNS preposto. Per questo scopo, il client invia un messaggio broadcast a tutti i dispositivi nella LAN e aspetta la conferma di un server DHCP. La prima risposta in entrata viene accettata.

Questo offre agli hacker la possibilità di controllare a loro piacimento l’assegnazione degli indirizzi IP locali attraverso il server DHCP fasullo, registrare i gateway predefiniti e il server DNS dei computer tratti in inganno e, in questo modo, deviare il traffico dati uscente a un computer qualsiasi, per intercettare o manipolare i contenuti trasmessi.

Dal momento che questo modello di attacco si basa sulla manipolazione del sistema DHCP, si parla di DHCP spoofing (in italiano inganno, manipolazione). Il presupposto per un attacco man in the middle di questo tipo è che il criminale si trovi nella stessa LAN della vittima: si corre il rischio di essere presi di mira da un attacco basato su DHCP ad esempio quando si usano le LAN degli hotel o altre connessioni Wi-Fi pubbliche. Se qualcuno si volesse infiltrare in una rete aziendale via cavo, dovrebbe prima creare un accesso fisico alla LAN, per introdurre di nascosto nella comunicazione un falso server DHCP.

Le misure che gli utenti possono prendere preventivamente contro il DHCP spoofing, si limitano di regola al prestare attenzione quando si accede a reti sconosciute. In generale si consiglia di usare solo le applicazioni web sicure di banche online o dei portali di shopping, LAN affidabili e le reti private a casa o in azienda.

ARP poisoning/ARP spoofing

L’ARP è un protocollo di rete che serve per fornire una mappatura tra l’indirizzo IP interno alla LAN e l’indirizzo hardware (indirizzo MAC). Affinché un computer possa inviare all’interno di una rete pacchetti dati, deve conoscere l’indirizzo MAC del sistema del destinatario, ragion per cui viene inviata una richiesta ARP come messaggio MAC a tutti i sistemi nella LAN, che contiene sia l’indirizzo MAC che l’IP del computer richiedente sia l’IP del sistema cercato. Se un computer riceve nel network una richiesta ARP di questo tipo, viene verificato se il pacchetto contiene il proprio indirizzo IP tra quelli dei destinatari. Se così fosse, viene rinviata una risposta ARP (reply) con l’indirizzo MAC del sistema cercato a quello che lo richiede.

Questa combinazione di indirizzi MAC e IP locali viene salvata in forma di tabella nei cosiddetti cache ARP del computer che li richiede. Qui avviene l’ARP poisoning (letteralmente avvelenamento). Lo scopo di questo tipo di attacco è quello di manipolare le tabelle ARP di diversi computer nella rete attraverso false risposte ARP, per ad esempio fare passare un computer, che si trova sotto il controllo del criminale, come un punto di accesso Wi-Fi o un gateway a Internet.

Se un ARP spoofing di questo tipo va a buon fine, i criminali hanno la possibilità di leggere, registrare o manipolare tutto il traffico dati in uscita dal computer compromesso, prima che questo venga inoltrato al gateway giusto. Come nel DHCP spoofing, anche l’ARP poisoning è possibile solo quando il criminale si trova nella stessa LAN della vittima. Un attacco man in the middle di questo tipo si può realizzare attraverso programmi semplici come lo strumento freeware Cain & Abel, che fu sviluppato originariamente per ritrovare le password perse, o attraverso il software Ettercap.

Come con gli attacchi basati su DHCP, gli utenti, che si trovano nella LAN corrotta, non hanno alcuna possibilità di proteggersi dall’ARP spoofing. Come misura preventiva bisogna, anche in questo caso, cercare di evitare di accedere a reti sconosciute o usarle con attenzione.

DNS spoofing

Mentre l’ARP poisoning prende di mira i punti deboli della risoluzione dell’indirizzo nell’ethernet, il cache poisoning basato su DNS prende di mira il sistema dei nomi di dominio (Domain Name System) su Internet, che è responsabile per la risoluzione degli URL negli indirizzi IP pubblici. In un attacco di questo tipo gli hacker manipolano le modifiche nella cache di un server DNS, per portarle a rispondere a richieste con falsi indirizzi di destinazione. Se un attacco man in the middle di questo tipo va a buon fine, l’hacker può deviare, passando inosservato, l’altro utente su di un sito web qualsiasi in rete. Per questo scopo, si serve principalmente delle falle di sicurezza di un server DNS obsoleto.

In sostanza le informazioni DNS vengono depositate non su di un singolo server DNS, ma distribuite tra più computer nella rete. Quando un utente vuole aprire un sito web, di regola si serve del nome del dominio, ma per poter rivolgersi al server adatto, ha bisogno di un indirizzo IP. Questo IP localizza il router dell’utente, inviando una richiesta DNS al server DNS predefinito specificato nella configurazione. Di regola, si tratta di un server DNS dell’Internet Service Provider (ISP), dove si trovano diverse tipologie di record DNS (resource record) per gli URL richiesti: il server DNS risponde così alla richiesta con l’indirizzo IP adatto, altrimenti il server DNS trasmette l’IP cercato con l’aiuto di un altro server con funzioni DNS. Inoltre, questo invia una corrispondente richiesta all’altro server DNS e salva le sue risposte temporaneamente nella cache.

In primo luogo, un punto di partenza per gli attacchi hacker lo offrono i server, che usano una versione obsoleta del software DNS. Questi accettano e salvano di regola non solo le informazioni, che vengono esplicitamente richieste, ma anche quelle che vengono consegnate in maniera opzionale. Se gli hacker riescono in questo modo a ottenere anche solo un singolo server DNS, è poi facile per loro consegnare con ogni indirizzo IP corretto anche record fasulli in aggiunta e così “avvelenare” la cache del server DNS richiedente.

Quanto siano efficaci gli attacchi man in the middle, lo dimostrano episodi passati nei quali fu bypassato tutto il namespace. Per gli utenti è praticamente impossibile proteggersi da un attacco di questo tipo perché avviene direttamente nell’infrastruttura di Internet. Quindi è innanzitutto compito del gestore preoccuparsi che i server DNS messi a disposizione usino software attuali e siano sufficientemente protetti. Così, ad esempio sotto il nome di DNSSEC (Domain Name System Security Extensions) sono stati sviluppati diversi standard su Internet, che ampliano il sistema DNS con diversi meccanismi di sicurezza per garantire l’autenticità dei dati e la loro integrità, ma la diffusione di questi standard avanza ancora lentamente.

Simulare un punto di accesso alla rete Wi-Fi

Uno schema di attacco che prende di mira soprattutto gli utenti connessi da dispositivi mobili, si basa sulla simulazione di un punto di accesso di una rete Wi-Fi pubblica, come quella messa a disposizione in un café o all’aeroporto. Un criminale configura il suo computer in modo che questo offra un altro accesso a Internet, possibilmente con una migliore qualità del segnale rispetto al vero punto di accesso. Se un criminale riesce ad ingannare così un utente ignaro, può visualizzare e manipolare tutto il traffico dati, che passa attraverso il suo sistema, prima che questo venga inoltrato al vero punto di accesso. Se viene richiesto di autentificarsi, l’hacker ottiene così il nome utente e la password, che vengono usati per l’iscrizione. Il rischio di diventare la vittima di un attacco man in the middle di questo tipo si presenta soprattutto quando i dispositivi mobili sono configurati in modo tale da collegarsi in maniera automatica ai punto di accesso con segnale forte.

Per proteggersi da questo tipo di attacco, l’utente dovrebbe fondamentalmente collegarsi solo alle reti Wi-Fi conosciute e prestare attenzione nell’usare il punto di accesso ufficiale del gestore che lo mette a disposizione.

Attacco man in the browser

Una variante dell’attacco man in the middle, nella quale un criminale installa un software dannoso sul browser di un utente per bloccare il traffico dati, viene chiamata attacco man in the browser. Soprattutto i computer non aggiornati completamente presentano falle di sicurezza che permettono ai criminali di infiltrarsi nel sistema. Se un programma specifico è entrato in precedenza di nascosto nel browser di un utente, questo registra in background tutti i dati, che vengono scambiati tra il sistema della vittima e diversi siti web nella rete. Questo tipo di attacco permette agli hacker di intercettare un grande numero di sistemi in modo facile e veloce. Intanto, lo spionaggio di dati avviene di regola prima che sia possibile ricorrere a una eventuale crittografia del trasporto dati via TLS/SSL.

Gli utenti si proteggono dagli attacchi man in the browser in maniera efficace, prestando attenzione ad aggiornare sempre i componenti del software del sistema in uso e a risolvere tutte le falle di sicurezza effettuando gli aggiornamenti.

Human assisted attack

Gli attacchi human assisted sono attacchi che non avvengono solo in maniera automatica, ma sono eseguiti da uno o più hacker in carne e ossa in tempo reale. In pratica un attacco man in the middle di questo tipo potrebbe avvenire in questo modo: non appena un utente si logga sul sito web della sua banca, un hacker, che si è posizionato tra il browser dell’utente e il server, riceve un segnale. Questo ha ora la possibilità di rubare in un batter d’occhio i cookie di sessione, le informazioni di autentificazione e arrivare così al nome utente e alle password dell’ignaro visitatore.

Furto di dati nonostante la crittografia?

Con la crescente importanza della possibilità di comunicare su Internet in quasi tutti gli aspetti della vita quotidiana, aumenta l’interesse verso le tecniche, attraverso le quali si possono trasmettere dati per via cifrata. Per la comunicazione tra i browser (client) e i server nel World Wide Web si è affermato il protocollo di comunicazione HTTPS. Questo esegue un’autentificazione del server web in base al protocollo handshake SSL e sviluppa alla fine un canale di trasporto cifrato in base a tutte le chiavi simmetriche della sessione. Così l’autentificazione del server avviene tramite un certificato SSL.

In teoria, questa autentificazione offre una protezione affidabile contro gli attacchi man in the middle: sulla base dello schema istituito in precedenza, un sistema C avrebbe bisogno di un certificato SSL affidabile per spacciarsi come sistema B nei confronti di un sistema A, ma in pratica questa protezione è collegata all’integrità del certificato in uso. Infatti, con il protocollo handshake SSL il browser verifica solo se il certificato presentato dal server è stato assegnato da un organismo di certificazione (Certification Authority, CA) affidabile. Ma molti di questi CA sono stati compromessi negli anni passati cosicché gli hacker, i servizi segreti e i governi sono stati in grado di creare certificati apparentemente affidabili e approfittare di questi per eseguire attacchi man in the middle.

Alternativamente, gli hacker possono anche utilizzare certificati SSL self-signed, che però generano un avviso nel browser che classifica il sito web aperto come insicuro, ma ciò non impedisce agli utenti di visitare ugualmente la pagina a loro rischio e pericolo.  

Con l’aiuto di un certificato SSL falso, gli hacker hanno così la possibilità di spacciarsi come il server desiderato all’apertura del sito web cifrato con SSL, che deve essere ingannato per poter bloccare o manipolare i dati senza essere notati. Per questo, il criminale inoltra la richiesta originaria al destinatario reale, proprio come un proxy, se necessario anche in maniera cifrata. Fondamentalmente il protocollo di handshake SSL permette anche un’autentificazione lato client via certificato, ma un attacco di questo tipo viene messo in pratica solo raramente.