MAC address flooding
Útok pomocí zaplavení MAC adresami. Útočník se snaží vyčerpat paměť switche, určenou pro ukládání tabulky MAC adres (CAM tabulka), pomocí zasílání velkého množství rámců s unikátními (neplatnými) zdrojovými MAC adresami. Ve chvíli, kdy je CAM tabulka plná, tak se nevytváří nové záznamy. Unicastová komunikace, která je určená pro cílovou MAC adresu, která se nenachází v CAM tabulce, je zaslána na všechny porty mimo příchozího (tak se chová hub, provoz je jako broadcast).
Tento útok se používá k tomu, aby útočníkova stanice dostávala i provoz, který není určen jí. Navíc se zvýší celkový provoz v síti a ve výsledku může způsobit příliš velké vytížení switche, takže se jedná o DoS útok (Denial Of Services).
Obrana: Port Security nebo Port Based Authentication
VLAN hopping
Poskakování po VLANách je útok, kdy se útočník snaží dostat k provozu, který je na jiné VLANě (kam by on neměl mít přístup). Využívá se tagování protokolem IEEE 802.1q a jedná se buď o metodu Switch Spoofing nebo Double Tagging.
Switch Spoofing spočívá v tom, že se útočníkova stanice vydává za switch a získává data z trunku, kde je přenášeno množství VLAN (nebo všechny). Může se jednat o zneužití protokolu DTP (Dynamic Trunking Protocol), kdy stanice vyjedná na svém portu trunk.
Double Tagging odesílá rámce s přidanými dvěma 802.1q tagy. Switch přijme rámec, první tag je do jeho správné VLANy, odstraní se, ale rámec se dále nekontroluje a zpracovává switchem, jako by byl v první VLANě. Pokud máme trunk port, kde je nativní VLAN nastavena stejná, jako měl port uživatele. Tak se rámec odesílá netagovaný, jenže on již tag má a ten směřuje do jiné VLANy. Druhý switch odstraní druhý tag a rámec již putuje novou VLANou.
Obrana: nastavovat porty napevno jako switchport mode access (zabránit DTP), nepoužívané porty umísťovat do neroutované VLANy, nepoužívat native VLAN (nastavit ji na nepoužívanou VLAN)
ARP spoofing / poisoning
Tento útok se snaží přesměrovat provoz k útočící stanici pomocí falešných ARP zpráv. Protokol ARP (Address Resolution Protocol) je velice starý a nemá v sobě zabudovaný žádný bezpečnostní nebo ověřovací mechanismus.
Pro komunikaci v rámci subnetu potřebuji znát cílovou MAC adresu, ale většinou mám zadánu pouze IP adresu. Proto se odešle ARP dotaz jako broadcast, kdo má danou IP. Stanice s hledanou IP adresou by měla odpovědět pomocí ARP zprávy. Klient si potom tento údaj uloží do lokální ARP cache. V ARP protokolu se také používají nevyžádané ARP odpovědi zvané Gratuitous ARP (GARP). Pomocí GARP zprávy (nebo v určité situaci normální ARP odpovědi) můžeme jednoduše podvrhnout naši MAC adresu k určité IP.
Často se tato technika využívá pro útok typu Man in the Middle, kdy podvrhneme adresu brány, potom dostáváme veškerý provoz mimo náš subnet, můžeme jej dále přeposílat na standardní gateway a přitom monitorovat/upravovat veškeré informace. Podvržená informace (kombinace IP a MAC) se uloží do ARP cache klienta a CAM tabulky switche.
Obrana: využití Private VLAN nebo ARP Inspection
Dynamic ARP Inspection - DAI
Jedná se o bezpečnostní funkci, která zabraňuje přeposílání neplatných ARP dotazů a odpovědí na jiné porty switche ve stejné VLANě. Tato metoda vyžaduje, aby se na switchích používal DHCP Snooping a vytvářela se DHCP snooping binding database, která obsahuje přiřazení IP adres a MAC adres. Nebo aby se použily ARP ACL, v kterých se tato kombinace zadává ručně.
Jednou funkcí DAI je kontrolovat veškerý ARP provoz přicházející na port a zahazovat rámce, kde informace neodpovídají uloženým kombinacím IP a MAC adres. Druhou funkcí je rate-limiting (omezování množství) ARP rámců. To je z důvodu zabránění DoS útokům. Pokud počet přijatých ARP paketů překročí (defaultně) 15 za sekundu, tak se port přepne do error-disabled stavu.
DAI používá dva stavy interfaců, jedná se o trusted (důvěryhodný), na tomto portu se neprovádí žádná kontrola. A untrusted (nedůvěryhodný), kde se kontrolují všechny ARP rámce. Defaultně je DAI vypnuté pro všechny VLANy a všechny interfacy jsou ve stavu untrusted. DAI funguje per VLAN.
Kontrola pomocí DAI funguje pouze na vstupu (ingress) a může se jednat o přístupové, trunk nebo EtherChannel porty. DAI je doporučeno nastavit na všech přístupových (koncových) portech jako untrusted (nedůvěryhodné) a na trunk portech mezi switchi jako trusted. Konfigurace se ovšem musí provádět s rozmyslem a důkladně. DHCP snooping binding database je lokální pro switch/stack, takže pokud by trunk port z jiného switche nebyl nastaven na trusted, tak by se vše filtrovalo. Nebo pokud na druhém switchi DAI nezapneme a trunk máme trusted, tak přes tento switch může dojít k otrávení ARP tabulky i na filtrovaném switchi.
Jako doplněk můžeme provádět i kontrolu příchozích ARP paketů, zda souhlasí zdrojová MAC adresa odesílatele s odesílatelovou MAC v ARP těle u ARP dotazů a odpovědí. Nebo cílová MAC v rámci u odpovědí. Případně i kontrolu IP adres.
Konfigurace DAI v Cisco IOSu
Zapnutí DAI se provede vyjmenováním VLAN, kde se má povolit.
SWITCH(config)#ip arp inspection vlan 100,200
Důvěryhodné porty musíme přepnout do trust stavu.
SWITCH(config-if)#ip arp inspection trust
Konfigurace DHCP snooping binding diabase je popsána v článku o DHCP na switchi. Pokud chceme použít statické záznamy, tak musíme nakonfigurovat ARP ACL.
SWITCH(config)#arp access-list ARPtest SWITCH(config-arp-acl)#permit ip host 192.168.1.10 mac host 0011.70f1.e051
Po nakonfigurování ARP ACL jej musíme aplikovat pro určitou VLANu.
SWITCH(config)#ip arp inspection filter ARPtest vlan 100
Příkazy, které zobrazí různé informace o DAI.
SWITCH#show ip arp inspection interfaces SWITCH#show ip dhcp snooping binding SWITCH#show ip arp inspection vlan 100,200 SWITCH#show ip arp inspection statistics vlan100,200
Odkazy
- popis Port Security se nachází v článku Cisco IOS 3 - nastavení interface/portu - access, trunk, port securit
- Port Based Authentication, tzn. protokol IEEE 802.1x, je stručně popsán v Cisco IOS 11 - IEEE 802.1x, autentizace k portu, MS IAS
- konfigurace VLAN a DTP protokol - Cisco IOS 7 - konfigurace VLAN, VTP
- technologie Private VLAN - Cisco IOS 19 - Private VLAN a Protected Port
- DHCP Snooping - Cisco IOS 13 - DHCP služby na switchi
- popis útoků na switche z Cisco webu - VLAN Security White Paper
Ahoj,
mám dotaz: co myslíš tím "nepoužívat native VLAN (nastavit ji na nepoužívanou VLAN)"? Jak se to provede?
Dík
odpověď na [1]Honza: Já to dělám tak, jak jsem to zde popisoval na několika místech.
VLAN 1 nepoužívám pro žádné přístupy. Jsou do ní zapojeny všechny nepoužívané porty (ty jsou shutdown-ované). SVI pro VLAN 1 je shutdown. Native VLAN nechávám defaultně, to znamená, že je to VLAN 1. V ní ale nikdo nekomunikuje.
odpověď na [1]Honza: nastavuji uplně jinou nativní vlan pro trunk propoje (i podle toho co je tam zapojeno, jina nat vlan sw-sw, jiná nat vlan sw-server, atd), pro porty kde neni nic zapojeno v dobrem vedomi a svedomi pouzivam jinou vlan nez id 1 a porty jsou i shutnuté, pokud jsou to access porty pro stanice tak tam uz mi to resi 802.1X a porty nejsou shutnute. příkladne zasuvka pro stanici:
interface GigabitEthernet1/0/5
description --> 01-03-03
switchport access vlan 999
switchport mode access
switchport nonegotiate
switchport block multicast
switchport port-security
switchport port-security aging time 1440
authentication event fail action authorize vlan 108
authentication event server dead action authorize vlan 108
authentication event no-response action authorize vlan 108
authentication event server alive action reinitialize
authentication order dot1x mab
authentication port-control auto
authentication periodic
authentication timer restart 30
authentication timer reauthenticate 28800
authentication timer inactivity 36000
mab
dot1x pae authenticator
dot1x timeout tx-period 3
dot1x timeout supp-timeout 3
dot1x timeout start-period 3
storm-control broadcast level 10.00 5.00
storm-control unicast level 10.00 5.00
no keepalive
no cdp enable
u PoE pro telefony pouzivam jediny rozdil v priorite autentizace ze nejdriv mab a pak dot1x, pač telefony jsou na mac via AD/IAS