Consulenze presso Eunet srl, via dell'Artigianato 15, 09122 Cagliari 070 753609 Lun - Ven 08:30-13:00 / 14.30-17.00

Attacchi alle VLAN

Per definizione, le VLAN rappresentano un metodo per segmentare un dominio di broadcast in più domini di dimensione ridotta. A livello 2, ogni VLAN contiene solo il traffico dei dispositivi appartenenti a quella VLAN (vedere l'articolo VLAN per un approfondimento tecnico). Per ogni switch, possiamo assegnare una porta ad una sola VLAN; pertanto le porte assegnate ad una determinata VLAN condivideranno il traffico broadcast di quella VLAN, ma non quello proveniente da porte assegnate a VLAN diverse.

La VLAN possono estendersi su più switch, collegati tra loro con due porte impostate in modalità trunk. Il trunk è quindi un link che permette il trasporto di frame appartenenti a VLAN diverse. Le porte di trunk sono le porte su cui viaggiano le trame con il VLAN TAG, che quindi viene lasciato inalterato, mentre le porte di accesso (access port), sono le porte che privano il frame ethernet del tag VLAN. La trama, al passaggio su una access port, riprende il formato dello standard Ethernet.

 

VLAN Hopping

Tra i diversi attacchi che si possono portare contro le VLAN, il più conosciuto è il VLAN hopping. Con questa tecnica, un attaccante posizionato in una certa VLAN potrebbe essere in grado di catturare i dati che passano su VLAN diverse, sfruttando eventuali configurazioni errate presenti sulle porte di trunk. In maniera predefinita, infatti, le porte di trunk hanno accesso ai dati di tutte le  VLAN e trasmettono questi dati sullo stesso link.

Sfruttando la configurazione automatica per il trunk data dal protocollo DTP (Dynamic Trunking Protocol), attivo di default sulle porte dello switch, l'attaccante può aver accesso a tutte le VLAN falsificando e inviando messaggi DTP verso una porta, che in questo modo si porterà nella modalità di trunk.

La difesa in tal caso è semplice: è sufficiente disabilitare il DTP e il trunking su tutte le porte, tranne quelle che richiedono specificatamente la modalità di trunk. In queste porte, si dovrebbe abilitare il trunking solo manualmente.

Per disabilitare il trunking su una porta, si imposta semplicemente la stessa nella modalità access, con il comando:

Switch(config-if)#switchport mode access

Per disabilitare DTP:

Switch(config-if)#switchport nonegotiate

 

Double tagging VLAN

Il double-tagging VLAN attack, conosciuto anche con il nome di double encapsulated VLAN attack, consiste nell'inserire dei tag 802.1Q "nascondendoli" all'interno di trame VLAN già in possesso di un loro tag VLAN 802.1Q. Questo tipo di attacco può andare a buon fine solo nel caso in cui l'attaccante si trovi nella stessa VLAN nativa delle porte di trunk. La difesa pertanto consiste nell'impostare una VLAN nativa per le porte in trunk diversa dalla VLAN nativa in uso sulle altre porte. Si rivela ancora più efficiente impostare, come VLAN nativa per i collegamenti in trunk, una VLAN fittizia non utilizzata sulle altre porte degli switch.

L'attacco viene portato avanti in questo modo:

viene costruita una trama (ad esempio un broadcast) con doppio tag 802.1Q, dove l'header esterno ha il tag della VLAN da cui parte l'attacco, mentre quello interno, nascosto, ha il tag della VLAN da attaccare. Appena la trama arriva sulla porta di accesso dello switch, quest'ultimo verifica i primi 4 byte del tag 802.1Q, elimina il tag stesso e inoltra la trama sulle porte della VLAN nativa, comprese le porte in trunk. Ricordiamo che le "access ports" sono le porte che privano il frame ethernet del tag VLAN, le porte di trunk sono le porte su cui viaggiano le trame con il VLAN TAG.

Nel passaggio sulle porte in trunk, la nostra trama si ritroverà priva del primo tag 802.1Q, quello esterno, ma ancora in possesso del secondo tag 802.1Q occultato. Il secondo switch utilizzerà quest'ultimo tag per decidere su quale VLAN inoltrare la trama. La VLAN di destinazione sarà ovviamente la VLAN vittima.

Il comando da utilizzare per impostare una VLAN nativa, dedicata alle sole porte in trunk, è il seguente:

Switch(config-if)#switchport trunk native vlan numero-vlan

Ovviamente la VLAN scelta non deve essere in uso su nessun'altra porta dello switch. Inoltre, tutte le porte dello switch non in uso dovrebbero essere disabilitate e posizionate su una VLAN a parte.

(0 Votes)