Firewall, proxy server, zone de­mi­li­ta­riz­za­te (DMZ): le aziende mi­glio­ra­no di continuo i loro sistemi per pro­teg­ge­re le reti private dai pericoli di Internet. Ma non tutti gli attacchi pro­ven­go­no dall’esterno. Infatti un elemento debole nella catena di sicurezza è la Local Area Network (LAN): se un hacker si trova già nella rete interna, riuscirà fa­cil­men­te ad in­tru­fo­lar­si nel traffico dati e a ma­ni­po­lar­lo a proprio vantaggio, sfrut­tan­do la vul­ne­ra­bi­li­tà del pro­to­col­lo ARP. Questo pro­to­col­lo viene uti­liz­za­to nelle reti Ethernet basate su IPv4 per risolvere gli indirizzi IP in quelli MAC e finora ha messo gli am­mi­ni­stra­to­ri davanti a un problema di sicurezza.

Le tabelle ARP si possono ma­ni­po­la­re fa­cil­men­te tramite pacchetti fal­si­fi­ca­ti. In questo caso si parla di ARP poisoning (dall’inglese “to poison” = av­ve­le­na­re) o ARP spoofing, cioè di un attacco man in the middle che consente agli hacker di inserirsi senza farsi notare tra due sistemi co­mu­ni­can­ti. Vi mostriamo come si può ma­ni­po­la­re la ri­so­lu­zio­ne dell’indirizzo tramite ARP in modo mirato e vi pre­sen­tia­mo delle possibili con­tro­mi­su­re.

De­fi­ni­zio­ne ARP spoofing

Con l’ARP spoofing si indicano gli attacchi Man in the Middle alle tabelle ARP delle reti locali. Ri­cor­ren­do a questo tipo di attacco gli hacker inviano i pacchetti ARP con­traf­fat­ti per inserirsi in­di­stur­ba­ti tra due sistemi co­mu­ni­can­ti, in­ter­cet­tar­ne il traffico dati e ma­ni­po­lar­lo.

ARP: in­di­riz­za­men­to nella LAN

A dif­fe­ren­za di quanto succede su Internet, i di­spo­si­ti­vi presenti nella LAN non co­mu­ni­ca­no di­ret­ta­men­te at­tra­ver­so gli indirizzi IP. Al loro posto, per l’in­di­riz­za­men­to nelle reti locali IPv4, vengono uti­liz­za­ti gli indirizzi fisici dell’hardware, chiamati indirizzi MAC (Media Access Control) formati da numeri unici a 48 bit che con­sen­to­no ad ogni di­spo­si­ti­vo nella LAN di iden­ti­fi­car­si uni­vo­ca­men­te tramite la sua scheda di rete.

Esempio di un indirizzo MAC: 00-80-41-ae-fd-7e

Gli indirizzi MAC vengono at­tri­bui­ti dal ri­spet­ti­vo pro­dut­to­re hardware e sono unici al mondo. Teo­ri­ca­men­te gli indirizzi hardware si adat­te­reb­be­ro quindi per con­sen­ti­re un in­di­riz­za­men­to globale, ma nella prassi questa con­ce­zio­ne non si può applicare, visto che gli indirizzi IPv4 sono troppo brevi per rap­pre­sen­ta­re in modo completo gli indirizzi MAC. Nelle reti basate su IPv4, la ri­so­lu­zio­ne dell’indirizzo tramite ARP è perciò in­di­spen­sa­bi­le.

Se ora un computer A volesse con­tat­ta­re un computer B nella stessa rete, per ottenere il suo indirizzo IP deve prima di tutto in­di­vi­dua­re l’indirizzo MAC ap­pro­pria­to. Così entra in azione l’Address Re­so­lu­tion Protocol (ARP), un pro­to­col­lo di rete che funziona secondo lo schema request-response.

Ri­cer­can­do l’indirizzo MAC giusto, il computer A invia prima di tutto una richiesta broadcast (chiamata richiesta ARP, in inglese “ARP request”) a tutti i di­spo­si­ti­vi in rete. Questa richiesta comprende all’incirca le seguenti in­for­ma­zio­ni:

Un computer con l’indirizzo MAC xx-xx-xx-xx-xx-xx e l’indirizzo IP yyy.yyy.yyy.yyy vorrebbe prendere contatto con un computer con l’indirizzo IP zzz.zzz.zzz.zzz e ha bisogno dell’indirizzo MAC giusto.

La richiesta ARP viene accolta da tutti i computer nella LAN. Ogni computer in rete è collegato a una tabella locale, detta cache ARP, per evitare che prima dell’invio di ogni pacchetto debba venire fatta una richiesta ARP. Qui vengono salvati tem­po­ra­nea­men­te tutti gli indirizzi MAC co­no­sciu­ti, com­pren­si­vi dell’IP assegnato.

Tutti i computer nella rete annotano così nella richiesta broadcast la coppia di indirizzo del mittente con­se­gna­to. Però ci si aspetta una risposta broadcast solo dal computer B, che invia un’ARP reply com­pren­den­te le seguenti in­for­ma­zio­ni:

Qui il sistema con l’indirizzo IP zzz.zzz.zzz.zzz. L’indirizzo MAC ricercato è aa-aa-aa-aa-aa-aa.

Se un’ARP reply giunge al computer A, questo dispone di tutte le in­for­ma­zio­ni ne­ces­sa­rie per inviare i pacchetti al computer B. Perciò la co­mu­ni­ca­zio­ne at­tra­ver­so la rete locale non incontra nessun ostacolo.

Ma cosa succede se non è il computer di de­sti­na­zio­ne ricercato a ri­spon­de­re, bensì un altro di­spo­si­ti­vo che viene con­trol­la­to da un hacker con intenti poco onorevoli? In questo caso entra in gioco l’ARP poisoning.

Che cos’è l’ARP poisoning?

Lo schema request-response del pro­to­col­lo ARP è creato in modo tale che venga accettata e salvata la prima risposta a un’ARP request. Nel campo dell’ARP spoofing, gli hacker cercano perciò di prevenire il reale computer di de­sti­na­zio­ne, di inviare un pacchetto di risposta con in­for­ma­zio­ni false e di ma­ni­po­la­re così la tabella ARP del computer ri­chie­den­te. Si parla quindi anche di ARP poisoning, perché si intende un “av­ve­le­na­men­to” della cache ARP.

Di solito il pacchetto comprende anche l’indirizzo MAC di un di­spo­si­ti­vo di rete, con­trol­la­to dall’hacker. Il sistema della vittima collega così l’IP di uscita con un indirizzo dell’hardware falso e in seguito invia, inos­ser­va­to, tutti i pacchetti al sistema con­trol­la­to dall’hacker, che ha così la pos­si­bi­li­tà di rilevare tutto il traffico dati o di ma­ni­po­lar­lo.

Per rimanere nascosto, il traffico dati ascoltato viene so­li­ta­men­te inoltrato al sistema di de­sti­na­zio­ne reale. Un hacker ottiene così con l’inganno lo status di man in the middle. Se i pacchetti in­ter­cet­ta­ti non vengono inoltrati, bensì rifiutati, l’ARP poisoning può com­por­ta­re un Denial of Service (DoS).  L’ARP poisoning funziona quindi sia negli ambienti LAN che in quelli Wi-Fi. Anche la crit­to­gra­fia tramite Wi-Fi Protected Access (WPA) non offre un’adeguata pro­te­zio­ne contro questa tecnica. Infatti per poter co­mu­ni­ca­re nelle reti locali IPv4, devono essere risolti tutti gli indirizzi MAC collegati e ciò avviene solo at­tra­ver­so il pro­to­col­lo ARP.

Un software co­no­sciu­to che spia in modo mirato le risposte broadcast e gli risponde con ARP reply false, si chiama Cain&Abel. Per “av­ve­le­na­re” la cache ARP dei di­spo­si­ti­vi di rete, un hacker non deve però per forza rimanere in attesa di richieste ARP. Un’altra strategia prevede che la rete venga con­ti­nua­men­te bom­bar­da­ta da ARP reply false. La maggior parte dei sistemi ignorano i pacchetti di risposta che non possono at­tri­bui­re a nessuna richiesta; però questo cambia non appena un computer avvia nella LAN una richiesta ARP e di con­se­guen­za si ha l’in­ten­zio­ne di accettare una risposta.

È quindi una questione di timing, se al mittente arrivi prima la risposta del sistema di de­sti­na­zio­ne o di uno dei pacchetti falsi. Questo schema di attacco si può au­to­ma­tiz­za­re tramite programmi come Ettercap.

Una pa­no­ra­mi­ca dei software di attacco ARP

I programmi che vengono uti­liz­za­ti per l’ARP poisoning come software di attacco vengono trattati so­li­ta­men­te come strumenti di sicurezza e sono di­spo­ni­bi­li in rete li­be­ra­men­te. Gli am­mi­ni­stra­to­ri possono ve­ri­fi­ca­re grazie ai programmi la propria rete e pro­teg­ger­si contro gli schemi di attacco comuni. Tra le ap­pli­ca­zio­ni più co­no­sciu­te rientrano ARP0c/WCI, Arpoison, Cain&Abel, Dsniff, Ettercap, FaceNiff e NetCut.

  • ARP0c/WCI: secondo la pagina del servizio, ARP0c/WCI è un tool che utilizza l’ARP spoofing per in­ter­cet­ta­re le con­nes­sio­ni in una rete privata. Così il software invia pacchetti di risposta ARP falsi, che devia il traffico dati sul sistema, fun­zio­nan­te su ARP0c/WCI. Un rein­di­riz­za­men­to al sistema di de­sti­na­zio­ne vero e proprio avviene tramite il bridging engine integrato. I pacchetti che non vengono con­se­gna­ti in locale, vengono inoltrati da ARP0c/WCI al router cor­ri­spon­den­te. Un attacco man in the middle avviene così in­di­stur­ba­to. Il programma è quindi di­spo­ni­bi­le sia per Linux che per Windows e può essere scaricato gra­tui­ta­men­te sulla pagina del servizio. 
  • Arpoison: il tool da riga di comando Arpoison genera dei pacchetti ARP per­so­na­liz­za­ti, in cui l’utente può stabilire a piacere l’indirizzo del mittente e del de­sti­na­ta­rio. Arpoison si può così uti­liz­za­re nelle analisi di rete, ma viene però usato anche come software per attacchi hacker. Lo strumento è di­spo­ni­bi­le li­be­ra­men­te e con licenza GNU.
  • Cain&Abel: il programma Cain&Abel, creato per re­cu­pe­ra­re le password, offre anche la pos­si­bi­li­tà di ascoltare le reti e di decifrare le password crit­to­gra­fa­te. A partire dalla versione 2.5, il software comprende anche funzioni di ARP poisoning con le quali si può in­ter­cet­ta­re il traffico IP negli switch delle LAN. Anche le con­nes­sio­ni SSH e HTTPS non rap­pre­sen­ta­no un ostacolo per Cain&Abel. Per l’analisi del traffico di rete Wi-Fi, Cain&Abel supporta a partire dalla versione 4.0 l’AirPcap Adapter, che consente di spiare pas­si­va­men­te il traffico dati nelle reti Wi-Fi. Gli attacchi contro le reti senza fili WPA sono possibili a partire dalla versione 4.9.1.
  • Dsniff: Dsniff è una raccolta di programmi che mette a di­spo­si­zio­ne diversi strumenti per l’analisi di rete e i pe­ne­tra­tion test. Con Dsniff, Filesnarf, Mailsnarf, Msgsnarf, Urlsnarf e Webspy si possono ascoltare le reti e in­ter­cet­ta­re file, e-mail o password. Arpspoof, Dnsspoof e Macof con­sen­to­no di rin­trac­cia­re dati che non sono so­li­ta­men­te ac­ces­si­bi­li nelle reti switchate. Gli attacchi man in the middle sulle con­nes­sio­ni SSH e quelle crit­to­gra­fa­te SSL/TLS si possono rea­liz­za­re con i programmi Sshmitm e Webmitm.
  • Ettercap: Ettercap è un tool di ARP poisoning facile da uti­liz­za­re che viene usato so­prat­tut­to per gli attacchi man in the middle. Il software supporta diverse di­stri­bu­zio­ni Linux e Mac OS X (Snow Leopard, Lion); è possibile anche in­stal­lar­lo su Windows, ma sono richieste delle im­po­sta­zio­ni ag­giun­ti­ve. Oltre all’uso tramite console, gli utenti hanno a di­spo­si­zio­ne il front end ncurses e l’in­ter­fac­cia grafica (GUI) GTK2. È possibile au­to­ma­tiz­za­re azioni come quelle di sniffing, degli attacchi ARP e della raccolta di password. Ettercap può ma­ni­po­la­re i dati in­ter­cet­ta­ti e attacca anche le con­nes­sio­ni che sono protette tramite SSH o pro­to­col­lo SSL. Il programma viene uf­fi­cial­men­te offerto come software per la sicurezza e funziona anche per i test di prodotti.
  • FaceNiff: l’app per Android FaceNiff consente agli utenti di spiare i cookie di sessione nelle reti Wi-Fi e di prendere il controllo delle sessioni. Gli hacker uti­liz­za­no il tool per hackerare gli account Facebook, Amazon e Twitter, in­di­pen­den­te­men­te che la rete senza fili sia ac­ces­si­bi­le li­be­ra­men­te o sia cifrata tramite WEP, WPA-PSK o WPA2-PSK. Sia il pro­to­col­lo di au­ten­ti­fi­ca­zio­ne EAP (Ex­ten­si­ble Au­then­ti­ca­tion Protocol) che quello SSL offrono però una pro­te­zio­ne sicura contro FaceNiff. Il software Android si basa sull’esten­sio­ne di Firefox Firesheep e viene uti­liz­za­to sugli smart­pho­ne in com­bi­na­zio­ne con il browser Stock pre­in­stal­la­to.
  • NetCut: con il software per la gestione di rete NetCut gli am­mi­ni­stra­to­ri si occupano della loro rete basata sul pro­to­col­lo ARP. Lo strumento individua tutti i di­spo­si­ti­vi connessi in rete e re­sti­tui­sce i relativi indirizzi MAC. Basta un semplice click su uno degli indirizzi elencati per separare il di­spo­si­ti­vo coinvolto dalla rete. NetCut è par­ti­co­lar­men­te indicato per gli attacchi DoS, a patto che l’hacker si trovi nella stessa rete della vittima. Con il software non si possono rea­liz­za­re gli attacchi man in the middle.

ARP poisoning e crit­to­gra­fia

Se un hacker riesce a in­tru­fo­lar­si senza farsi notare tra due sistemi co­mu­ni­ca­ti­vi, ha campo libero nelle con­nes­sio­ni non protette. Visto che l’intera co­mu­ni­ca­zio­ne di una con­nes­sio­ne hackerata funziona at­tra­ver­so il sistema dell’hacker, questo può spiare a piacere i dati e ma­ni­po­lar­li. Le tecniche di crit­to­gra­fia e i cer­ti­fi­ca­ti per l’au­ten­ti­fi­ca­zio­ne pro­met­to­no una pro­te­zio­ne contro lo spio­nag­gio dei dati. Se un hacker in­ter­cet­ta solo i dati co­di­fi­ca­ti, i danni si limitano nel peggiore dei casi a un Denial of Service at­tra­ver­so i pacchetti rifiutati. La premessa per una crit­to­gra­fia dei dati at­ten­di­bi­le però è che questa venga applicata con­se­guen­te­men­te.

In­nu­me­re­vo­li tool che vengono uti­liz­za­ti per gli attacchi man in the middle offrono, oltre alle funzioni di ARP poisoning, anche un’im­ple­men­ta­zio­ne client e server per i pro­to­col­li SSL/TLS, SSH e altri pro­to­col­li di crit­to­gra­fia, che riescono così a imitare i cer­ti­fi­ca­ti cor­ri­spon­den­ti e a in­stau­ra­re con­nes­sio­ni crit­to­gra­fa­te. Così Cain&Abel simula ad esempio un web server SSL che trasmette al sistema della vittima un cer­ti­fi­ca­to SSL non at­ten­di­bi­le. In questo modo i par­te­ci­pan­ti della rete ricevono in questo caso un messaggio di av­ver­ten­za sulla sicurezza che viene però spesso ignorato dagli utenti o in­ter­pre­ta­to in maniera errata. Sarebbe perciò au­spi­ca­bi­le che i corsi sulla sicurezza delle reti com­pren­des­se­ro nel loro programma anche un utilizzo re­spon­sa­bi­le dei cer­ti­fi­ca­ti digitali.

Con­tro­mi­su­re

Pra­ti­ca­men­te tutte le reti IPv4 sono soggette ad attacchi di questo tipo perché l’ARP spoofing utilizza a proprio vantaggio il fun­zio­na­men­to dell’Address Re­so­lu­tion Protocol. Nemmeno l’in­tro­du­zio­ne degli indirizzi IPv6 è riuscito a risolvere questo problema. Il nuovo standard IP rinuncia infatti all’ARP e regola la ri­so­lu­zio­ne dell’indirizzo nella LAN tramite NDP (Neighbor Discovery Protocol), che è però a sua volta soggetto ad attacchi di spoofing. Si può risolvere questa falla di sicurezza tramite il pro­to­col­lo Secure Neighbor Discovery (SEND), tuttavia tenendo in conto che è sup­por­ta­to ancora da pochi sistemi operativi per il desktop.

Una pro­te­zio­ne possibile per impedire la ma­ni­po­la­zio­ne della cache ARP è offerta dalle tabelle ARP che si possono ad esempio impostare su Windows tramite il programma della riga di comando ARP e l’istru­zio­ne arp –s. Visto che non si devono mo­di­fi­ca­re ma­nual­men­te i record di questo tipo, questa misura pre­ven­ti­va si limita so­li­ta­men­te ai sistemi più im­por­tan­ti della rete.

Un’altra misura contro l’uso indebito del pro­to­col­lo ARP è rap­pre­sen­ta­ta dalla sud­di­vi­sio­ne della rete tramite gli switch del livello 3. Le risposte broadcast rag­giun­go­no così in­con­trol­la­te solo i sistemi che si trovano nello stesso segmento di rete, mentre le richieste ARP negli altri segmenti vengono ve­ri­fi­ca­ti dallo switch. Se questo switch è in funzione sul livello di rete (livello 3), accanto all’indirizzo MAC viene ve­ri­fi­ca­to e portato allo stesso stato anche l’indirizzo IP con i record pre­ce­den­ti.

Se saltano agli occhi in­con­gruen­ze o avvengono fre­quen­te­men­te nuove riat­tri­bu­zio­ni, lo switch suona il cam­pa­nel­lo d’allarme. L’hardware ne­ces­sa­rio richiede però dei costi di rea­liz­za­zio­ne elevati e quindi gli am­mi­ni­stra­to­ri devono ponderare se puntare su una maggiore sicurezza giu­sti­fi­chi l’ingente spesa. Al contrario, non sono adatti i molto più economici switch del livello 2, i quali lavorano sul livello di col­le­ga­men­to e re­gi­stra­no una modifica dell’indirizzo MAC, ma al contempo fanno passare inos­ser­va­ta l’as­se­gna­zio­ne del ri­spet­ti­vo indirizzo IP.

Diversi pro­dut­to­ri di software offrono anche dei programmi di mo­ni­to­ring con i quali si possono con­trol­la­re le reti e rilevare i pro­ce­di­men­ti ARP insoliti. Alcuni tool famosi sono il software open source Arpwatch, ARP Guard e XArp. Inoltre si possono impostare degli Intrusion Detection Systems come Snort, per con­trol­la­re la ri­so­lu­zio­ne dell’indirizzo tramite ARP.

  • Arpwatch: se lo strumento open source e mul­ti­piat­ta­for­ma Arpwatch viene integrato in una rete locale IPv4, vengono mostrate con­ti­nua­men­te tutte le attività ARP che si svolgono nella LAN. Tutti i pacchetti ARP in entrata rilevano dal programma le in­for­ma­zio­ni dell’indirizzo fornite e le salvano in un database centrale. Se qui si trovano dei record più vecchi che non coin­ci­do­no con i dati at­tual­men­te trasmessi, il programma invia un avviso per e-mail all’am­mi­ni­stra­to­re. Questo pro­ce­di­men­to è efficace, ma si adatta solo alle reti con indirizzi IP statici. Se gli IP della LAN vengono di­stri­bui­ti di­na­mi­ca­men­te at­tra­ver­so un server DHCP, ogni modifica dell’as­se­gna­zio­ne dell’indirizzo IP/MAC porta ad un messaggio di avviso.
  • ARP-Guard: anche ARP Guard dell’azienda ISL osserva la rete interna e si basa così su due diversi sensori. Il sensore LAN lavora ana­lo­ga­men­te come Arpwatch, quindi analizza i pacchetti in entrata e avvisa in presenza di anomalie. Inoltre l’ar­chi­tet­tu­ra della gestione del sensore del software dispone di un sensore SNMP che accede tramite il Simple Network Ma­na­ge­ment Protocol (SNMP) ai di­spo­si­ti­vi connessi nella LAN e scansiona le sue tabelle ARP. Così non solo si possono lo­ca­liz­za­re gli attacchi ARP, ma ci si può anche difendere. La gestione degli indirizzi integrata consente inoltre di rin­trac­cia­re i di­spo­si­ti­vi in­de­si­de­ra­ti e di impedirne l’accesso alla rete.
  • XArp: il software XArp si basa su moduli attivi e passivi per pro­teg­ge­re la rete dall’ARP poisoning. I moduli passivi ana­liz­za­no i pacchetti ARP, che vengono inviati in rete e ag­gior­na­no l’as­se­gna­zio­ne dell’indirizzo forniti con i record più vecchi. Se così facendo vengono ri­scon­tra­te delle anomalie, il programma suona l’allarme. Così ci si basa sul mec­ca­ni­smo di controllo sulle analisi sta­ti­sti­che e si verifica il traffico di rete grazie a diversi schemi che gli svi­lup­pa­to­ri segnalano sulla base degli attacchi ARP. La sen­si­bi­li­tà di questo filtro di traffico dati si può adattare per gradi. I moduli attivi del software inviano dei propri pacchetti alla rete per validare le tabelle ARP dei di­spo­si­ti­vi rag­giun­gi­bi­li e com­pi­lar­le con dei record validi.

Anche l’Intrusion Detection System (IDS) Snort dispone di un pre­pro­ces­so­re integrato contro l’ARP spoofing che consente di con­trol­la­re il traffico dati nella rete e di creare ma­nual­men­te delle liste di com­pa­ra­zio­ne. Tale metodo risulta però faticoso rispetto ad altri.

Inoltre i sistemi IDS vengono so­prat­tut­to uti­liz­za­ti nella tran­si­zio­ne dalle reti esterne. Se vale la pena di uti­liz­zar­li anche in una rete LAN, deve venir stabilito caso per caso. A volte una misura simile può in­con­tra­re delle re­si­sten­ze, perché in un’azienda un am­mi­ni­stra­to­re che controlla la rete tramite IDS ha accesso a tutto il traffico di rete e quindi è in grado di sor­ve­glia­re tutte le attività dei di­pen­den­ti. Per questo motivo si tende a non ricorrere a questa funzione di controllo.

Vai al menu prin­ci­pa­le