networking

ARP (Address Resolution Protocol): Cos’è, Come Funziona e Come Sfruttarlo in un Pentest

ARP (Address Resolution Protocol): Cos’è, Come Funziona e Come Sfruttarlo in un Pentest

Scopri cos’è ARP, come funziona davvero e come viene sfruttato in un pentest: ARP cache, gratuitous ARP, spoofing, MITM, detection, difese e tool pratici.

  • Pubblicato il 2026-03-22
  • Tempo di lettura: 8 min

ARP è il protocollo che mappa gli indirizzi IP agli indirizzi MAC nelle reti locali. Capire cos’è ARP e come funziona è fondamentale per chiunque voglia fare pentesting su reti LAN: senza ARP non esiste comunicazione a livello 2, e senza capire ARP non si capisce come funzionano attacchi come lo spoofing e il man-in-the-middle.

In questo articolo trovi tutto quello che serve: dal funzionamento interno del protocollo, agli attacchi reali, fino agli strumenti pratici usati in un engagement.


Cos’è ARP #

ARP (Address Resolution Protocol) è un protocollo di rete definito nell’RFC 826 del 1982. Opera al confine tra il livello 2 (Data Link) e il livello 3 (Network) del modello OSI.

Il suo compito è semplice ma essenziale: tradurre un indirizzo IP in un indirizzo MAC.

Quando un host vuole comunicare con un altro host sulla stessa rete locale, conosce l’indirizzo IP di destinazione ma non conosce l’indirizzo MAC necessario per costruire il frame Ethernet. ARP risolve questo problema.

ARP è un protocollo stateless e non autenticato. Chiunque sulla rete locale può rispondere a una richiesta ARP, anche se non è il legittimo proprietario dell’indirizzo IP. Questa caratteristica è la fonte di quasi tutti gli attacchi basati su ARP.


Come funziona ARP #

Il flusso di una richiesta ARP #

Il meccanismo è diretto:

  1. L’host A vuole raggiungere l’host B (IP: 192.168.1.10)
  2. L’host A non ha il MAC di B nella propria ARP cache
  3. L’host A invia un ARP Request in broadcast: “Chi ha l’IP 192.168.1.10? Rispondimi tu con il tuo MAC”
  4. L’host B riceve la richiesta e risponde con un ARP Reply in unicast: “192.168.1.10 ce l’ho io, il mio MAC è aa:bb:cc:dd:ee:ff
  5. L’host A salva la risposta nella propria ARP cache e costruisce il frame Ethernet

Struttura del pacchetto ARP #

Un pacchetto ARP ha una struttura fissa:

CampoDimensioneDescrizione
Hardware Type2 byteTipo di rete (1 = Ethernet)
Protocol Type2 byteTipo di protocollo (0x0800 = IPv4)
Hardware Size1 byteLunghezza MAC (6 byte)
Protocol Size1 byteLunghezza IP (4 byte)
Opcode2 byte1 = Request, 2 = Reply
Sender MAC6 byteMAC del mittente
Sender IP4 byteIP del mittente
Target MAC6 byteMAC del destinatario (FF:FF:FF:FF:FF:FF in request)
Target IP4 byteIP del destinatario

La ARP cache #

Ogni sistema operativo mantiene una ARP cache: una tabella temporanea che associa indirizzi IP a indirizzi MAC. Consultarla è la prima cosa che fa un host prima di inviare una richiesta ARP.

Le entry della cache hanno un TTL (Time To Live): scadono dopo un periodo variabile (tipicamente 20-60 secondi su sistemi Linux/Windows) e vengono rinnovate alla prossima comunicazione.

Visualizzarla su Linux:

bash
arp -n
ip neigh show

Gratuitous ARP #

Il Gratuitous ARP è un caso particolare: un host invia una ARP Reply senza che nessuno abbia fatto una Request. Viene usato legittimamente per:

  • Annunciare il proprio indirizzo IP dopo un cambio di configurazione
  • Aggiornare le ARP cache dei vicini dopo un failover (es. HSRP, VRRP)
  • Rilevare conflitti di IP sulla rete

È anche la tecnica alla base dell’ARP spoofing: inviare Gratuitous ARP con informazioni false per avvelenare le cache degli altri host.

Proxy ARP #

Il Proxy ARP è una funzionalità di alcuni router e firewall: il dispositivo risponde a richieste ARP per conto di host in altri segmenti di rete, permettendo la comunicazione tra subnet diverse senza routing esplicito lato client. È una configurazione legacy, oggi rara, ma ancora presente in ambienti OT/ICS.


Dove viene usato ARP nelle reti #

ARP è presente in qualsiasi rete IPv4 con segmento Ethernet:

  • LAN aziendali: ogni pacchetto verso un host locale passa prima da ARP
  • Reti datacenter: fondamentale per la comunicazione tra VM sullo stesso hypervisor o stesso segmento L2
  • Ambienti cloud privati: OpenStack, VMware NSX e altri usano ARP (o suoi sostituti come ARP proxy centralizzati) per gestire la rete overlay
  • Reti industriali OT/ICS: protocolli come Modbus/TCP e EtherNet/IP usano ARP per la risoluzione degli indirizzi
  • Reti domestiche e SOHO: ogni dispositivo connesso al router usa ARP per trovare il gateway

ARP non esiste in IPv6, che usa il Neighbor Discovery Protocol (NDP) basato su ICMPv6. Tuttavia IPv4 è ancora dominante nelle reti enterprise, rendendo ARP un protocollo critico da conoscere.


Perché ARP è importante in cybersecurity #

ARP è uno dei protocolli più abusati in un attacco di rete interno. Il motivo è strutturale: non prevede autenticazione. Qualsiasi host può inviare un ARP Reply con qualsiasi coppia IP/MAC, e gli altri host lo accetteranno aggiornando la propria cache.

Un pentester che conosce ARP a fondo può:

  • Intercettare traffico tra due host sulla stessa LAN (MITM classico)
  • Reindirizzare il traffico verso un host controllato
  • Bloccare la comunicazione di un host specifico (DoS selettivo)
  • Mappare la rete locale in modo passivo e attivo
  • Identificare dispositivi di rete come gateway e switch tramite l’analisi delle risposte ARP

Per approfondire il livello sottostante su cui viaggiano i pacchetti ARP, leggi l’articolo su Ethernet e IEEE 802.3.


ARP in un engagement di pentesting #

Reconnaissance con ARP #

ARP è uno degli strumenti di discovery più efficaci in fase di reconnaissance. A differenza di un port scan ICMP (che può essere bloccato da firewall), le richieste ARP non attraversano i router e operano direttamente sul segmento L2.

bash
arp-scan --localnet

In pochi secondi restituisce tutti gli host attivi nel segmento, con IP, MAC e vendor (OUI). Funziona anche quando ICMP è filtrato. Integra i risultati con Nmap per il port scanning successivo.

Enumeration #

Analizzare la ARP cache di un host compromesso rivela immediatamente con chi ha comunicato di recente:

bash
ip neigh show
arp -n

Combinando queste informazioni con un ARP scan attivo si ottiene una mappa L2 del segmento: numero di host, vendor, gateway.

Attack surface: MITM via ARP spoofing #

Una volta identificati i target, l’ARP spoofing permette di posizionarsi tra due host come man-in-the-middle. Il traffico passa attraverso l’attaccante, che può:

  • Sniffarlo in chiaro (HTTP, FTP, Telnet, credenziali)
  • Modificarlo in transito (SSL stripping, inject di payload)
  • Loggarlo per analisi offline

Il forwarding del traffico deve essere abilitato sull’attaccante per evitare interruzioni evidenti:

bash
echo 1 > /proc/sys/net/ipv4/ip_forward

Pivoting #

Dopo aver ottenuto una posizione MITM, l’attaccante può analizzare il traffico alla ricerca di credenziali, sessioni autenticate, o comunicazioni verso sistemi interni non direttamente raggiungibili. ARP spoofing è spesso il primo passo per il pivoting verso altri segmenti. Approfondisci le tecniche di man-in-the-middle e sniffing.


Attacchi ARP: tipologie e tecniche #

ARP Spoofing #

L’attacco principale. L’attaccante invia ARP Reply false ai target, avvelenando le loro cache:

  • Alla vittima A dice: “L’IP del gateway è il mio MAC”
  • Al gateway dice: “L’IP di A è il mio MAC”

Risultato: tutto il traffico tra A e il gateway passa per l’attaccante.

Tool principali:

  • arpspoof (dsniff suite)
  • ettercap
  • bettercap
  • scapy (per costruire pacchetti ARP custom)

Esempio con bettercap:

bash
bettercap -iface eth0
# dentro bettercap:
net.probe on
set arp.spoof.targets 192.168.1.10
arp.spoof on
net.sniff on

ARP Cache Poisoning #

Variante dell’ARP spoofing: l’obiettivo è avvelenare la cache di un host specifico, non necessariamente per fare MITM. Può essere usato per reindirizzare il traffico verso un server malevolo (es. DNS falso, server web per phishing interno).

ARP DoS (Denial of Service) #

Inviando ARP Reply false in modo continuo, è possibile associare l’IP del gateway a un MAC inesistente. Gli host del segmento non riescono più a raggiungere il gateway: DoS selettivo senza attaccare il gateway direttamente.

ARP Flood / Reconnaissance aggressiva #

Inviare ARP Request per ogni IP del segmento in rapidissima successione. Più aggressivo di arp-scan standard, può saturare switch a basse prestazioni e generare log anomali. Usato raramente in pentest reali per il rumore generato.


Esempi pratici con ARP in laboratorio #

Visualizzare il traffico ARP con tcpdump #

bash
tcpdump -i eth0 -nn arp

Mostra in tempo reale tutte le richieste e risposte ARP sul segmento. Utile per osservare il comportamento della rete e rilevare eventuali anomalie.

Analisi ARP con Wireshark #

Filtro diretto:

text
arp

Per identificare Gratuitous ARP (potenziale spoofing):

text
arp.opcode == 2 && arp.src.proto_ipv4 == arp.dst.proto_ipv4

Discovery con arp-scan #

bash
arp-scan --localnet --interface eth0

Con output verboso per vedere i pacchetti raw:

bash
arp-scan --localnet -v

Verifica ARP spoofing in corso con arpwatch #

arpwatch monitora la rete e notifica quando un MAC address cambia per un IP già conosciuto:

bash
arpwatch -i eth0

Log anomalo tipico:

text
changed ethernet address 192.168.1.1 00:11:22:33:44:55 (old: aa:bb:cc:dd:ee:ff)

Questo tipo di evento è un indicatore forte di ARP spoofing in corso.


Detection e difesa ARP #

Un difensore che monitora il traffico ARP può rilevare:

  • Gratuitous ARP non attesi: un host annuncia il proprio MAC senza che nessuno lo abbia richiesto
  • ARP Reply senza Request corrispondente: classico indicatore di spoofing
  • Stesso IP associato a MAC diversi in breve tempo: avvelenamento della cache in corso
  • Volume anomalo di ARP Request: possibile ARP scan aggressivo o flooding
  • MAC address OUI sconosciuti o incoerenti: dispositivi non autorizzati o MAC spoofati

Tool consigliati per il defender: arpwatch, XArp, Zeek con script di rilevamento ARP anomalo, regole Suricata per ARP spoofing.


Hardening e mitigazioni ARP #

Dynamic ARP Inspection (DAI) #

È la difesa più efficace disponibile su switch managed. DAI intercetta tutti i pacchetti ARP e li valida contro una tabella di binding DHCP Snooping (IP ↔ MAC ↔ porta):

text
ip arp inspection vlan 10
ip arp inspection validate src-mac dst-mac ip

I pacchetti ARP con binding non valido vengono scartati. Mitiga completamente l’ARP spoofing su segmenti protetti.

DHCP Snooping #

Prerequisito per DAI. Costruisce la tabella di binding autorizzati IP/MAC/porta monitorando il traffico DHCP:

text
ip dhcp snooping
ip dhcp snooping vlan 10

Static ARP entries #

Per host critici (gateway, DNS server, domain controller) è possibile configurare entry ARP statiche che non vengono sovrascritte da ARP Reply:

bash
arp -s 192.168.1.1 aa:bb:cc:dd:ee:ff

Su Windows:

cmd
netsh interface ipv4 add neighbors "Ethernet" 192.168.1.1 aa-bb-cc-dd-ee-ff

Soluzione efficace ma difficile da scalare in reti grandi.

Port Security + 802.1X #

Limitare il numero di MAC per porta e autenticare i dispositivi prima di concedere accesso alla rete riduce drasticamente la superficie di attacco. Vedi l’articolo su Ethernet e sicurezza L2 per la configurazione.

Segmentazione con VLAN #

Isolare i segmenti sensibili in VLAN dedicate limita il raggio d’azione di un attacco ARP, che per definizione non attraversa i router.


Errori comuni su ARP #

“ARP funziona anche tra subnet diverse” No. ARP è un protocollo broadcast e i broadcast non attraversano i router. Tra subnet diverse si usa il routing, non ARP. Eccezione: Proxy ARP, che è una configurazione specifica e non lo standard.

“Usare HTTPS rende l’ARP spoofing inutile” Parzialmente vero. HTTPS cifra il contenuto, ma l’attaccante MITM può vedere i metadati (chi parla con chi, frequenza, volumi), fare SSL stripping se il client non usa HSTS, e intercettare traffico in chiaro su altri protocolli (DNS, ICMP, ecc.).

“La ARP cache è permanente” No. Le entry hanno un TTL e vengono aggiornate ogni volta che arriva una nuova risposta ARP. Questo è esattamente ciò che rende possibile il cache poisoning.

“IPv6 ha gli stessi problemi di ARP” IPv6 usa NDP (Neighbor Discovery Protocol) che ha meccanismi simili ma diversi. Ha le sue vulnerabilità (NS/NA spoofing), ma non è identico ad ARP.


FAQ su ARP #

Cos’è ARP e a cosa serve? ARP (Address Resolution Protocol) è il protocollo che traduce un indirizzo IP in un indirizzo MAC. Serve per permettere la comunicazione a livello 2 su reti Ethernet: senza ARP, due host sulla stessa LAN non possono scambiarsi dati.

Cos’è l’ARP spoofing e come funziona? L’ARP spoofing è un attacco in cui un host malevolo invia risposte ARP false per avvelenare le cache degli altri host. L’attaccante associa il proprio MAC a un IP legittimo (es. il gateway), intercettando tutto il traffico destinato a quell’IP.

Come si rileva un attacco ARP spoofing? I segnali principali sono: Gratuitous ARP non attesi, ARP Reply senza Request precedente, cambio frequente di MAC per lo stesso IP. Tool come arpwatch e XArp automatizzano il rilevamento.

ARP spoofing funziona su reti con switch? Sì. A differenza del CAM table overflow, l’ARP spoofing funziona perfettamente su reti switchate perché agisce sulla cache degli host, non sullo switch.

Come si protegge una rete dall’ARP spoofing? La difesa più efficace su reti enterprise è il Dynamic ARP Inspection (DAI) combinato con DHCP Snooping. Per host critici si possono usare entry ARP statiche. Il protocollo 802.1X aggiunge un layer di autenticazione che riduce la superficie di attacco.


Conclusione su ARP #

ARP è un protocollo semplice nella struttura ma critico nella sicurezza. La sua assenza totale di autenticazione lo rende uno dei vettori di attacco più sfruttati nelle reti interne.

Conoscere ARP significa capire come funziona davvero la comunicazione a livello 2, come un attaccante può posizionarsi come man-in-the-middle senza toccare nessun firewall, e come un difensore può rilevare e bloccare questi attacchi prima che causino danni.

In un engagement di internal pentesting, ARP spoofing è spesso il primo strumento da considerare dopo la fase di discovery. Combinato con tool come bettercap e tecniche di sniffing, apre scenari di attacco che vanno ben oltre la semplice intercettazione del traffico.

Approfondisci i protocolli e le tecniche correlate:

Riferimento ufficiale: RFC 826 — An Ethernet Address Resolution Protocol


Vuoi migliorare le tue competenze in network security con percorsi 1:1 o hai bisogno di un penetration test professionale sulla tua infrastruttura?

Visita hackita.it/servizi.

Se HackITA ti è utile e vuoi supportare il progetto: hackita.it/supporto

#arp-spoofing #lan

DIVENTA PARTE DELL’ÉLITE DELL’HACKING ETICO.

Accedi a risorse avanzate, lab esclusivi e strategie usate dai veri professionisti della cybersecurity.

Non sono un robot

Iscrivendoti accetti di ricevere la newsletter di HACKITA. Ti puoi disiscrivere in qualsiasi momento.