Indietro

ⓘ ARP poisoning




                                     

ⓘ ARP poisoning

Nellambito della sicurezza informatica, l ARP poisoning è una tecnica di hacking che consente ad un attacker, in una switched lan, di concretizzare un attacco di tipo man in the middle verso tutte le macchine che si trovano nello stesso segmento di rete quando queste operano a livello 3 cioè di internetworking con altre sottoreti scambiandosi traffico IP grazie al ricorso ad opportune manipolazioni tramite i protocolli di livello 2. LARP poisoning è oggi la principale tecnica di attacco alle lan commutate. Consiste nellinviare intenzionalmente e in modo forzato risposte ARP contenenti dati inesatti o, meglio, non corrispondenti a quelli reali. In questo modo la tabella ARP di un host conterrà dati alterati. Molto spesso lo scopo di questo tipo di attacco è quello di ridirezionare, in una rete commutata, i pacchetti destinati ad un host verso un altro al fine di leggere il contenuto di questi per catturare le password che in alcuni protocolli viaggiano in chiaro.

                                     

1. Introduzione

Lesigenza di praticare questo attacco è dovuta al fatto che ormai nelle recenti reti ethernet gli hub sono stati sostituiti dagli switch, i quali a differenza dei primi, grazie alla CAM table, permettono di inoltrare il traffico soltanto allhost di destinazione rendendo così inefficace qualsiasi tentativo di sniffing.

                                     

2. Funzionamento

Questo attacco si basa su una debolezza intrinseca nel protocollo ARP: la mancanza di un meccanismo di autenticazione.

Ethernet, il più diffuso standard per le reti locali, identifica gli host in base ad un indirizzo a 48 bit chiamato MAC, a differenza di Internet, dove ciascun host viene mappato grazie ai 32 bit del protocollo IP.

Il protocollo ARP si occupa di gestire lassociazione tra indirizzi IP e indirizzi MAC. Questassociazione, in Ethernet, viene fatta prima di ogni tipo di comunicazione. Sono previsti due tipi di messaggi dal protocollo ARP: ARP request effettuata in broadcast e ARP reply effettuata in unicast. Un ipotetico host 192.168.1.1 che vuole comunicare con lhost 192.168.1.2 manderà una ARP request in broadcast con il proprio MAC, il proprio indirizzo IP e lindirizzo IP di destinazione; quando 192.168.1.2 riceverà lARP request risponderà con unARP reply destinato al MAC sorgente e contenente il proprio MAC. Per ottimizzare le prestazioni e limitare il traffico queste informazioni associazione indirizzo IP/indirizzo MAC vengono memorizzate nella tabella ARP cache di ciascun host così che non sia necessario effettuare continue richieste per successivi eventuali indirizzamenti verso terminali host già noti. Per migliorare ancora di più le prestazioni quando si ricevono delle ARP reply alcuni anche con le ARP request, anche se non sollecitate, gli host aggiornano le informazioni della propria ARP cache.

Solaris implementa una gestione personalizzata delle ARP request/reply, infatti aggiorna i record della propria tabella ARP solo se sono già presenti. Questo è un problema in più, per lattacker, anche se è di facile risoluzione: basta infatti inviare un pacchetto ICMP echo request allhost Solaris per costringerlo a rispondere ed inevitabilmente usare lARP aggiungendo così un record alla propria tabella ARP.

Ora si analizzi il seguente scenario:

  • John: IP = 192.168.1.13, MAC = 00:00:00:JJ:JJ:JJ
  • Attacker: IP = 192.168.1.2, MAC = 00:00:00:ZZ:ZZ:ZZ
  • Linus: IP = 192.168.1.88, MAC = 00:00:00:LL:LL:LL

Le ARP cache di ciascun host prima dellattacco saranno:

  • 192.168.1.13, MAC = 00:00:00:JJ:JJ:JJ
  • 192.168.1.2, MAC = 00:00:00:ZZ:ZZ:ZZ
  • Per lattacker
  • 192.168.1.88, MAC = 00:00:00:LL:LL:LL
  • 192.168.1.88, MAC = 00:00:00:LL:LL:LL
  • 192.168.1.2, MAC = 00:00:00:ZZ:ZZ:ZZ
  • 192.168.1.13, MAC = 00:00:00:JJ:JJ:JJ
  • Per John
  • Per Linus
  • 192.168.1.2, MAC = 00:00:00:ZZ:ZZ:ZZ
  • 192.168.1.13, MAC = 00:00:00:JJ:JJ:JJ
  • 192.168.1.88, MAC = 00:00:00:LL:LL:LL

Per realizzare lARP poisoning lattacker invierà delle ARP reply opportunamente costruite/modificate: a John invierà una reply che ha come IP quello di Linus 192.168.1.88 ma come MAC il proprio 00:00:00:ZZ:ZZ:ZZ, a Linus invierà una reply con IP quello di John 192.168.1.13 e con MAC, anche questa volta, il proprio 00:00:00:ZZ:ZZ:ZZ. Per protrarre lattacco è necessario inviare delle ARP reply ogni 10 secondi poiché spesso i sistemi operativi cancellano sistematicamente le voci dellARP cache dopo un certo periodo di tempo.

Quindi dopo lattacco le ARP cache di ciascun host saranno appunto avvelenate ovvero falsificate o corrotte:

  • 192.168.1.88, MAC = 00:00:00:LL:LL:LL
  • Per lattacker
  • 192.168.1.2, MAC = 00:00:00:ZZ:ZZ:ZZ
  • 192.168.1.13, MAC = 00:00:00:JJ:JJ:JJ
  • Per John
  • 192.168.1.88, MAC = 00:00:00:ZZ:ZZ:ZZ
  • 192.168.1.2, MAC = 00:00:00:ZZ:ZZ:ZZ
  • 192.168.1.13, MAC = 00:00:00:JJ:JJ:JJ
  • 192.168.1.13, MAC = 00:00:00:ZZ:ZZ:ZZ
  • Per Linus
  • 192.168.1.88, MAC = 00:00:00:LL:LL:LL
  • 192.168.1.2, MAC = 00:00:00:ZZ:ZZ:ZZ

Quando le due vittime, John e Linus, instaureranno una comunicazione tra loro, crederanno di comunicare reciprocamente, ma in realtà comunicheranno con lattacker il quale, per mostrare trasparenza e regolarità nella comunicazione tra i due host e continuare quindi a sniffare il relativo traffico, inoltrerà il traffico proveniente da John verso Linus e viceversa il traffico proveniente da Linus verso John, realizzando così un MITM.

Dopo aver concretizzato il MITM, lattacker sarà quindi in grado di sniffare ovvero leggere tutto il traffico in chiaro come password telnet, ftp, pop3, irc, ecc. ed eventualmente anche modificare e creare nuovi pacchetti.

                                     

2.1. Funzionamento Implementazione

Esistono svariati tool per attacchi di questo tipo, ma probabilmente il più completo è Ettercap, disponibile per diversi sistemi operativi come Linux, *BSD, Windows e macOS. Questo evoluto e potente strumento offre molte possibilità di configurazione. È possibile usarlo sia via gui che via riga di comando. Esiste inoltre la possibilità di creare dei filtri personalizzati, per lo sniffing, usando un linguaggio derivato dal Berkeley Packet Filter. Con Ettercap per realizzare un ARP poisoning e il conseguente MITM, basta dare il seguente comando:

ettercap -i interface -T -q -M ARP /nomeHost1/ /nomeHost2/

Per effettuare larp poisoning sullintero segmento di rete, basterà questo comando:

ettercap -i interface -T -q -M ARP // //
                                     

2.2. Funzionamento Tracce lasciate

Le tracce lasciate dallattaccante sono costituite dal proprio MAC address contenuto nella ARP cache delle vittime e questo fatto è effettivamente sfruttato in alcune tecniche di protezione da questo tipo di attacco tramite semplice rilevazione delle anomalie.

                                     

3. Contromisure

Lutilizzo di IPv6, IPsec o di tabelle ARP statiche sono metodi che possono rivelarsi una difesa efficace contro attacchi di tipo ARP spoofing. Ovviamente è impensabile mantenere aggiornate le tabelle ARP di ogni host in una rete di grande dimensioni per tener traccia di eventuali discordanze tra indirizzo Ip e indirizzo MAC nellattacco. Altre soluzioni potrebbero essere:

  • usare un software come arpwatch che esamina le attività di rete ne evidenzia le discordanze o come OpenAAPD, un demone anti ARP poisoning per OpenBSD o ancora un intrusion detection system IDS come Snort.
  • SARP ovvero Secure ARP, unestensione del protocollo ARP che si basa sulla crittografia asimmetrica, così da poter autenticare il mittente.
  • usare il port security sugli switch ovvero fare in modo che per ciascuna porta del dispositivo possa esserci solo un MAC address.
  • Una soluzione open source è ArpON "ARP handler inspection". ArpON è un demone portabile che rende il protocollo ARP sicuro contro attacchi Man in The Middle MITM attraverso tecniche ARP Spoofing, ARP Cache Poisoning, ARP Poison Routing APR.


                                     

4. Utilizzo legittimo dellARP spoofing

LARP spoofing può essere utilizzato anche per fini legittimi. Un esempio può essere quello di tool di autenticazione di rete che effettuino la redirezione di host non registrati ad una pagina di login prima di permetterne il completo accesso alla rete, come nel caso della tecnica Captive portal.

                                     

5. Tecniche alternative

Esistono tecniche alternative allARP poisoning per effettuare lo sniffing su switched lan. Il MAC flooding infatti, permette di sfruttare una debolezza nel funzionamento degli switch, basata sul fatto che la CAM table, la memoria con cui questi dispositivi tengono traccia dei MAC address e della relativa porta associata, ha risorse finite. Quando questa viene inondata da MAC address, che ne esauriscono le risorse, lo switch entra in uno stato detto fail open e invia il traffico a tutte le porte, proprio come un qualsiasi hub, rendendo possibile lo sniffing. Talvolta alcuni switch non entrano in fail open ma in fail close bloccando così tutte le porte e quindi tutto il traffico dellintero segmento di rete. Questo tipo di attacco, coinvolgendo solo gli indirizzi MAC e non gli indirizzi IP, può essere considerato dunque di livello 2. Sempre di livello 2 è anche lattacco di Port stealing.