# DHCP snooping

Nelle reti di computer e nella sicurezza delle reti, lo snooping DHCP è una tecnica di ispezione di un pacchetto IP usato per il protocollo DHCP eseguita dal livello 2 dello stack OSI allo scopo di migliorare la sicurezza dell'infrastruttura.

## Descrizione

Lo snooping DHCP consiste nella lettura preliminare dei contenuti dei pacchetti del protocollo DHCP effettuata non direttamente dal livello di rete (livello 3 del modello OSI) ma dal sottostante livello di comunicazione, ossia il livello 2, che normalmente non esamina i contenuti relativi al livello 3. Con questa tecnica è possibile identificare i pacchetti di protocollo DHCP che si ritengono autorizzati ad essere elaborati, scartando invece tutti gli altri, bloccando così in anticipo un traffico DHCP di tipo dannoso, malevolo o malformato. Dato che si tratta di una funzione del livello 2, tipicamente questa operazione è integrata negli switch.
Il meccanismo di base prevede che sia configurata una porta considerata sicura che è l'unica abilitata a ricevere messaggi dal server per il protocollo DHCP: tutti i messaggi DHCP provenienti da server associati a porte diverse, considerate non sicure, vengono scartati. Lo switch analizza tutti i pacchetti DHCP ricevuti e memorizza poi in un suo database di associazioni (bindings) le informazioni relative al dispositivo (host) da cui provengono, tenendo traccia sia degli accessi considerati sicuri che di quelli non sicuri. In questo modo uno switch su cui è attivo lo snooping DHCP può apprendere e aggiornare nel tempo le informazioni necessarie a garantire la sicurezza del sistema. Le informazioni memorizzate comprendono l'indirizzo MAC, l'indirizzo IP associato, la porta utilizzata, la sottorete (VLAN) e la durata del lease time (validità temporale di un indirizzo assegnato tramite DHCP). Le informazioni memorizzate nel database inoltre sono accessibili anche ad altre funzioni di sicurezza come l'ispezione ARP o l'IP Source Guard.
L'informazione dei messaggi DHCP ricevuti può essere tracciata inoltre in appositi registri (log) che consentono di distinguere tra i casi di errore dovuti a malconfigurazione della rete e i tentativi di accesso di tipo malevolo o comunque sospetto.
Nel meccanismo di base lo switch svolge un ruolo sostanzialmente passivo nel contesto della comunicazione tra client e server, dato che si limita ad ascoltare e filtrare localmente i pacchetti ritenuti non validi. È possibile anche un funzionamento più evoluto detto "DHCP relay agent information" (informazione dell'agente DHCP di scambio), indicato tecnicamente come Option 82 in cui lo switch assume un ruolo attivo e aggiunge al pacchetto DHCP inoltrato verso il server delle informazioni aggiuntive che identificano il passaggio attraverso tale switch. In questo modo, il server DHCP può identificare non solo il dispositivo client originario (tramite l'indirizzo IP) ma anche attraverso quale switch della rete è arrivata la richiesta. Questa informazione viene sfruttata dal server DHCP come dato aggiuntivo per l'assegnazione dell'indirizzo IP al client. Il server DHCP, nel suo messaggio di risposta verso il client, inserisce a sua volta l'informazione aggiuntiva introdotta dallo switch che può quindi controllare se il messaggio di risposta proviene effettivamente dal server. In tal caso, lo switch rimuove l'informazione aggiuntiva prima di inoltrare il messaggio di risposta verso il client. Questa opzione si usa per gli switch che si trovano a cavallo di due sottoreti differenti, ossia nei casi in cui il client appartiene a una sottorete differente rispetto a quella del server, e funziona solo se è abilitata non solo sugli switch ma anche sul server (che in caso contrario ignora l'informazione aggiuntiva).