See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
ARP poisoning - Wikipedia

ARP poisoning

Da Wikipedia, l'enciclopedia libera.

In ambito informatico, l'ARP poisoning (detto anche ARP spoofing) è una tecnica di hacking che consente ad un attacker, in una switched lan, di concretizzare un attacco di tipo MITM verso tutte le macchine che si trovano nello stesso segmento di rete. L'ARP poisoning è oggi la principale tecnica di attacco alle lan switchate. Consiste nell'inviare intenzionalmente e in modo forzato risposte ARP contenenti dati inesatti o, meglio, non corrispondenti a quelli reali. In questo modo la tabella ARP (ARP entry cache) di un host conterrà dati alterati (da qui i termini poisoning, letteralmente, "avvelenamento" e spoofing, "raggiro"). Molto spesso lo scopo di questo tipo di attacco è quello di redirigere, in una rete switchata, 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.

Indice

[modifica] Introduzione

L'esigenza 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, riescono ad inoltrare il traffico soltanto all'host di destinazione rendendo così inefficace qualsiasi tentativo di sniffing.

[modifica] Funzionamento

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

Lo standard 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 l'associazione tra indirizzi IP e indirizzi MAC. Quest'associazione, 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 l'host 192.168.1.2 manderà una ARP request in broadcast con il proprio MAC il proprio indirizzo IP e l'indirizzo IP di destinazione; quando 192.168.1.2 ricevera' l'ARP request risponderà con un'ARP reply destinato al MAC sorgente e contenente il proprio MAC. Per ottimizzare le prestazioni e limitare il traffico queste informazioni vengono memorizzate nella tabella ARP (ARP cache) di ciascun host, così che non sia necessario effettuare continue richieste. 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 l'attacker, anche se è di facile risoluzione: basta infatti inviare un pacchetto ICMP echo request all'host Solaris per costringerlo a rispondere ed invitabilmente usare l'ARP aggiungendo così un record alla propria tabella ARP.

Ora si analizzi il seguente scenario:
- Attacker: IP = 192.168.1.2, MAC = 00:00:00:ZZ:ZZ:ZZ
- John: IP = 192.168.1.13, MAC = 00:00:00:JJ:JJ:JJ
- Linus: IP = 192.168.1.88, MAC = 00:00:00:LL:LL:LL

Le ARP cache di ciascun host prima dell'attacco saranno:
- Per l'attacker:
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 John:
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 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 l'ARP poisoning l'attacker invierà delle ARP reply appositamente fatte: 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 l'attacco è necessario inviare delle ARP reply ogni 10 secondi poiché spesso i sistemi operativi cancellano sistematicamente le voci dell'ARP cache.

Quindi dopo l'attacco le ARP cache di ciascun host saranno:
- Per l'attacker:
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 John:
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:ZZ:ZZ:ZZ
- Per Linus:
192.168.1.2, MAC = 00:00:00:ZZ:ZZ:ZZ
192.168.1.13, MAC = 00:00:00:ZZ:ZZ:ZZ
192.168.1.88, MAC = 00:00:00:LL:LL:LL

Le due vittime John e Linus crederanno di comunicare tra di loro, ma in realtà comunicheranno con l'attacker il quale 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, l'attacker sarà in grado di modificare, leggere e creare nuovi pacchetti. Potrà quindi facilmente sniffare tutto il traffico in chiaro come password telnet, ftp, pop3, irc, ecc.

[modifica] In pratica

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 X. Questo evoluto e potente strumento offre molte possibilità di configurazione. È possibile usarlo sia via gui che via linea 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 -T -q -M ARP /nomeHost1/ /nomeHost2/

Per arpoisonare l'intero segmento di rete, basterà questo comando:

ettercap -T -q -M ARP // //

[modifica] Tracce lasciate

Le tracce lasciate dall'attaccante sono costituite dal proprio MAC address contenuto nella ARP cache delle vittime.

[modifica] Contromisure

L'utilizzo 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. Altre soluzioni potrebbero essere:
- usare un software come arpwatch che esamina le attività di rete e ne evidenzia le discordanze o come OpenAAPD, un demone anti ARP poisoning per OpenBSD o ancora un intrusion detection system (IDS) come Snort.
- usare il port security sugli switch ovvero fare in modo che per ciascuna porta del dispositivo possa esserci solo un MAC address.
- SARP ovvero Secure ARP, un'estensione del protocollo ARP che si basa sulla crittografia asimmetrica, così da poter autenticare il mittente.
- implementare 802.1x nella propria rete.

Avendone la possibilità (è necessario avere switch che supportano 802.1x e un server RADIUS), di sicuro la migliore soluzione è implementare 802.1x.

[modifica] Utilizzo legittimo dell'ARP spoofing

L'ARP 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.

[modifica] Tecniche alternative

Esistono tecniche alternative all'ARP 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 dell'intero segmento di rete.

[modifica] Voci correlate

[modifica] Collegamenti esterni


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -