CDP – Cisco Discovery Protocol
Qualche riflessione sulla sicurezza
Ogni promessa è debito si dice dalle mie parti!
Vi avevo detto che avremmo trattato degli aspetti di sicurezza sul CDP e quindi lo faccio adesso.
Il CDP non ha meccanismi di sicurezza intrinsechi e quindi è vulnerabile ad alcuni tipi di attacchi. Inoltre – come ho spiegato prima – un malintenzionato con le informazioni sul firmware dell’apparato potrebbe sfruttarne eventuali vulnerabilità.
Come fare allora per sfruttare i benefici del CDP mantenendo un livello minimo di sicurezza?
In primo luogo il consiglio è quello di suddividere la nostra rete in due tipologie di zone:
– una di tipo trust, ossia la parte di rete interamente gestita da noi e dove possiamo abilitare tranquillamente il CDP
– una di tipo untrust e cioè ovunque potrebbe collegarsi qualcuno e quindi dove andremo a disabilitare il protocollo.
Qualcosa del genere:

Un secondo consiglio ci viene direttamente da Cisco: creare dei filtri al CDP impostando quali TLV inviare o globalmente o su particolari interfacce (magari proprio quelle delle zona untrust che abbiamo individuato!).
Il procedimento è abbastanza semplice in effetti… a livello di configurazione globale si crea il filtro delle TLV e successivamente si applica.
Facciamo un esempio pratico:
Voglio escludere, nell’invio della frame CDP, le informazioni relativi agli indirizzi IP e alla versione firmware dell’apparato.
SW-A>enable
Password:
SW-A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW-A(config)#cdp tlv-list UntrustZone
SW-A(config-tlv-list)#address
SW-A(config-tlv-list)#ip-prefix
SW-A(config-tlv-list)#mgmt-address
SW-A(config-tlv-list)#version
SW-A(config-tlv-list)#end
SW-A#
Successivamente applico questo filtro alla mia interfaccia di interesse:
SW-A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW-A(config)#interface gigabitEthernet0/0
SW-A(config-if)#cdp filter-tlv-list UntrustZone
*Aug 16 06:39:34.185: %CDP-6-TLV_LIST_INTERFACE: Tlv-list UntrustZone applied on interface GigabitEthernet0/0
SW-A(config-if)#end
Come si può vedere, dopo aver applicato il filtro, mancano le informazioni della Version TLV e sia la Address TLV che la Management TLV non hanno più gli indirizzi al loro interno.

Verificando la tabella dei neighbor sul vicino collegato alla mia interfaccia gi0/0 non avrò più le informazioni che ho esclus0 tramite il filtro.
SW-B>show cdp entry SW-A
-------------------------
Device ID: SW-A
Entry address(es):
Platform: Cisco , Capabilities: Router Switch IGMP
Interface: GigabitEthernet0/1, Port ID (outgoing port): GigabitEthernet0/0
Holdtime : 165 sec
advertisement version: 2
VTP Management Domain: ''
Native VLAN: 1
Duplex: full
Purtroppo però questa funzionalità non è disponibile su tutte le versioni firmware degli apparati Cisco quindi verificate preventivamente se è possibile sfruttarla!




