Arp-spoofing
adv

Questo tipo di attacco permette di dirottare i pacchetti che viaggiano sulla rete, facendoli passare per la propria macchina in modo da poterli leggere o modificare.

Ogni giorno ci colleghiamo a Internet avviando un flusso continuo di informazioni che, sotto forma di pacchetti, solcano la rete da computer a computer, ma come viaggiano questi pacchetti e come sanno dove andare?

MAC address

La comunicazione nella rete si basa sul MAC (Media Access Control) address che rappresenta l codice fisico “unico” assegnato da un produttore ad un dispositivo di rete wired (cablata) o wireless (senza fili)

Esso identifica, quindi, i device, tuttavia noi siamo abituati a sentir parlare sempre di indirizzi IP. Questi, più intellegibili, sono indirizzi ad un livello più elevato nell’architettura di rete TCP/IP, che incapsuleranno quindi i MAC dei computer comunicanti.

Dall’IP al MAC

L’ ARP (Address Resolution Protocol) è il protocollo che collega gli IP ai MAC, si usa perché le macchine conoscono gli IP ma la comunicazione, come anticipato, si basa su MAC.

Secondo il protocollo ARP, il client che vuole comunicare invia un broadcast message, un messaggio a tutti i computer della rete chiamato ARP request, richiedendo chi ha l’IP conosciuto con un messaggio who-has. Tale messaggio sarà letto da tutti ed ignorato da tutti tranne il dispositivo che ha effettivamente l’IP richiesto. Esso risponderà con il suo IP e MAC. La comunicazione sarà quindi possibile.

Va fatto presente che, salvo le macchine collegate con indirizzi pubblici, l’architettura di internet è fatta di sotto-reti, un broadcast non avverrà mai per tutte le macchine collegate ad internet.

Ogni dispositivo della sotto-rete ha un’ ARP table che è la mappatura delle corrispondenze IP-MAC nella stessa rete. La tabella di un dispositivo si popola man mano che esso parla con i vari device presenti sulla rete. La tabella è visibile digitando dalla finestra dei comandi arp -a

ARP poisoning

Questo attacco, detto anche ARP spoofing, consta nell’individuare una macchina vittima ed inviare 2 messaggi, uno al router (dispositivo che veicola il traffico di rete verso l’esterno), dichiarando il proprio IP come quello della macchina vittima ed uno alla stessa vittima dichiarando il proprio IP come quello del router.

In tal modo l’ARP table del router associerà il MAC della macchina hacker all’IP della vittima: il router crederà che la macchina hacker sia il computer vittima.

Analogamente l’ARP table della vittima associerà il MAC della macchina hacker all’IP del router: la macchina vittima crederà che la macchina hacker sia il router.

La macchina hacker sarà, così, il man-in-the-middle.

Per non farsi scoprire il man-in-the-middle dovrà, poi, inoltrare i pacchetti ricevuti al router, consentendo la navigazione alla vittima che genererà il traffico che potrà essere letto e modificato.

Questo attacco è possibile perché ARP non è un protocollo molto sicuro. I sistemi, infatti, accettano risposte (response) da computer senza che essi abbiano richiesto nulla: il computer hacker può prendere l’iniziativa e dichiararsi con un IP che non è il suo. I dispositivi inoltre accettano questa response senza fare alcuna verifica.

L’ARP poisoning funziona sia su reti cablate che wireless, l‘unica differenza è la porta di rete che si indicherà nell’attacco per interloquire con gli altri attori della rete.

I computer che hacker non sono router, molti sistemi operativi hanno modalità di sicurezza che bloccano queste richieste. Per carpire dati, tuttavia, è necessario che i pacchetti raggiungano realmente il router altrimenti la vittima non potrà navigare fornendo i preziosi dati. Il man-in-the-middle dovrà, quindi, abilitare il port-forwarding per inoltrarli correttamente al router, ricevere le risposte e rigirarle alla vittima, stabilendo il flusso desiderato: la vittima deve avere accesso ad Internet o alle risorse desiderate ma passando prima per il computer hacker.

Tale configurazione non dura molto perché i pacchetti vengono continuamente inviati e sovrascritti quindi il man-in-the-middle dovrà inviare i suoi response continuamente.