在VLAN中可能遇到的九種攻擊方式
原創(chuàng)【51CTO.com 獨(dú)家譯稿】VLAN(虛擬局域網(wǎng))是一群盡管所處物理位置不同,卻相互保持通信的主機(jī)。VLAN可向用戶提供獨(dú)立的網(wǎng)段,在節(jié)省帶寬的同時也有利于設(shè)備的管理,而且通過VLAN所提供的一些功能還可以幫助企業(yè)節(jié)省成本。
VLAN建立在OSI的第二層數(shù)據(jù)鏈路層上,盡管OSI的每一層是獨(dú)立的,但是他們之間是相互關(guān)聯(lián)的。如果某一層出現(xiàn)問題,也必將會影響到其它層的數(shù)據(jù)傳遞,VLAN建立在數(shù)據(jù)鏈路層上,同其它層一樣易于受到攻擊。
VLAN所面臨的安全問題
雖然VLAN適于流量管理但也并非特別安全。下面就列出了一系列VLAN所面臨的安全威脅。
ARP(地址解析協(xié)議)的工作原理實(shí)際是將第三層的IP地址轉(zhuǎn)換成第二層的MAC地址的過程。
一個惡意用戶可以偽造IP地址和MAC地址,然而在ARP協(xié)議中卻無法核實(shí)這些細(xì)節(jié),ARP的這種缺陷就造成了安全問題。利用這些偽造的信息,惡意用戶就會被誤認(rèn)為是一個合法的用戶,他們不僅可以隨意使用網(wǎng)絡(luò)中的資源,甚至可以在VLAN的設(shè)備中發(fā)送ARP數(shù)據(jù)包。
更有甚者,惡意攻擊者可以通過此缺陷制造中間人攻擊。當(dāng)一個網(wǎng)絡(luò)設(shè)備被標(biāo)示成另一個網(wǎng)絡(luò)設(shè)備,例如默認(rèn)網(wǎng)關(guān)之類,中間人攻擊就可能會發(fā)生了,在這種情況下我們也是無法核實(shí)這些細(xì)節(jié)信息的。
當(dāng)攻擊者發(fā)送ARP數(shù)據(jù)包給目標(biāo)受害者,這些ARP報文不能被接收器驗(yàn)證,這是因?yàn)榻邮盏腁RP表其實(shí)已經(jīng)是經(jīng)過攻擊者偽造的信息了。這個時候,攻擊者就可以接收到這個返回消息的設(shè)備的有關(guān)信息了,甚至還可以試圖接收到其他網(wǎng)絡(luò)設(shè)備的信息。最后,攻擊者會將ARP表和網(wǎng)絡(luò)設(shè)備恢復(fù)正常。
像Arpspoof,Arpoison,Cain and Abel,和Ettercap,Trapper(這個工具的創(chuàng)作靈感不少都來自于著名的Cain)這些工具都可以執(zhí)行ARP欺騙。
推薦專題:網(wǎng)絡(luò)安全工具百寶箱
對付ARP攻擊的一個有效策略就是動態(tài)ARP監(jiān)測(DAI)。DAI是一種驗(yàn)證網(wǎng)絡(luò)中所有ARP數(shù)據(jù)包的安全功能,它可將ARP數(shù)據(jù)中的IP地址和MAC地址都丟掉。
VLAN中的DAI狀態(tài)(CISCO中的DHCP環(huán)境)
進(jìn)入全局配置指令
Router# configure terminal
通過使用iparp檢查Vlan{vlan_id|vlan_range} ,在全局配置中允許在VLAN中使用DAI
Router(config)# iparp inspection vlan {vlan_ID |vlan_range}
最后,驗(yàn)證配置
Router(config-if)# do show iparp inspection vlan {vlan_ID |vlan_range} | begin Vlan
MAC泛洪攻擊
MAC泛洪攻擊是VLAN攻擊中常見的一種。在MAC泛洪攻擊中,交換機(jī)內(nèi)充斥的不同的MAC地址,這些地址信息消耗了交換機(jī)中大多數(shù)內(nèi)存空間。在這種情況下,交換機(jī)就變成了"hub"開始與大家分享所有端口的數(shù)據(jù)了。所以,通過這種方法,攻擊者就可以用數(shù)據(jù)嗅探器搜集敏感數(shù)據(jù)了。
舉個例子,比如有3三個工作站,分別是WA,WB和WC。當(dāng)我們試圖用WA給WB發(fā)送一條數(shù)據(jù),因?yàn)榻粨Q機(jī)的緣故WC是看不見這條信息的。現(xiàn)在,把攻擊者看作是WC,它開始在交換機(jī)內(nèi)用不同的MAC地址來制造MAC泛洪攻擊,交換機(jī)的內(nèi)容被耗光了,然后交換機(jī)就像HUB一樣開始收發(fā)信息了,當(dāng)WA再次向WB發(fā)送數(shù)據(jù)時,WC能很容易地看到它們之間傳送的信息了。
在VLAN中,MAC泛洪攻擊防范的最佳方法是配置靜態(tài)安全MAC地址。這個需要進(jìn)行手動配置,具體操作方法是使用命令"switchport port-security mac-address mac-address interface"。另一種防范MAC泛洪攻擊的方法便是限制端口接受MAC地址的數(shù)量。
DHCP攻擊
DHCP(動態(tài)主機(jī)設(shè)置協(xié)議)可以是服務(wù)器自動分配IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)等信息給主機(jī)。在VLAN中有兩種類型的DHCP攻擊,一種是DHCP耗竭攻擊(DHCP starvation Attack),另一種是DHCP欺騙攻擊(DHCP rogue attack)。
DHCP耗竭攻擊:攻擊者使用偽造的MAC地址發(fā)送大量的DHCP請求。這會導(dǎo)致DHCP服務(wù)器發(fā)生拒絕服務(wù)的情況,這樣,正常的用戶就無法使用網(wǎng)絡(luò)了。通過限制MAC地址的數(shù)量可以避免這個情況的發(fā)生。
DHCP欺騙攻擊:攻擊者可以偽裝成一個DHCP服務(wù)器,然后向正常用戶提供錯誤的網(wǎng)關(guān)、錯誤的DNS和錯誤的IP,那么用戶就會遇到許多問題,比如連接問題和與其它主機(jī)通信的問題。通過使用有選擇性丟包功能的多層交換機(jī),可以防范此攻擊。
可以實(shí)現(xiàn)這類攻擊的工具是Yersinia。它是一種網(wǎng)絡(luò)工具,可以發(fā)現(xiàn)許多協(xié)議的漏洞,同時它也可以用來進(jìn)行生成樹協(xié)議攻擊。
生成樹協(xié)議攻擊
攻擊者使用零優(yōu)先級發(fā)送一條STP(Spanning-Tree Protocol,生成樹協(xié)議)消息,創(chuàng)建一個新的根橋接,從而破壞整個網(wǎng)絡(luò),這就是著名的生成樹協(xié)議攻擊。在用戶界面上禁用生成樹功能可以避免這個攻擊,也可以在思科設(shè)備上進(jìn)行Root Guard配置或在用戶端口上設(shè)置DPDU Guard功能,禁止使用零優(yōu)先級值,這樣攻擊者也就不能獲得根橋接了。
在操作系統(tǒng)中使用Root Guard
vega> (enable) set spantree guard root 1/1 Rootguard on port 1/1 is enabled. Warning!! Enabling rootguard may result in a topology change. vega> (enable)
在操作系統(tǒng)中使用DPDU guard
Console> (enable) set spantreeportfastbpdu-guard enablev
Spantreeportfastbpdu-guard enabled on this switch.(在交換機(jī)上激活Spantreeportfastbpdu-guard)
Console> (enable)
#p#
組播暴力攻擊
組播暴力攻擊的實(shí)現(xiàn)依賴于交換機(jī)在非常短的時間內(nèi)輪番接收到一連串的組播幀,這將導(dǎo)致這些幀會泄漏到其它VLAN中,而不是保留于原有的VLAN中。這可能也會引發(fā)拒絕服務(wù)現(xiàn)象。
一臺高品質(zhì)的交換機(jī)可以保證幀不會從原本的VLAN中泄漏到其它VLAN里,從而防止這類攻擊的發(fā)生。
PVLAN攻擊(專用VLAN攻擊)
PVLAN是第二層的功能,用于第二層的通信隔離。當(dāng)一臺三層設(shè)備--例如路由器--連接到某個專用VLAN中,那么該路由器所接收到的所有流量有可能會向任何一處不可知的目的地傳輸。在某些情況下這種特性會成為攻擊者實(shí)現(xiàn)個人目的的有效手段。
通過配置VLAN的訪問列表可以預(yù)防上述情況的發(fā)生。
定義VLAN訪問映射
# vlan access-mapmap_name [0-65535]
刪除VLAN訪問映射圖序列
# no vlan access-mapmap_name 0-65535
刪除VLAN訪問映射
# no vlan access-mapmap_name
VMPS/VQP攻擊
這類攻擊通常發(fā)生在動態(tài)VLAN訪問端口。VMPS(VLAN管理策略服務(wù)器)使用VQP(VLAN查詢)協(xié)議。VMPS有一個缺陷,它并不使用基于MAC地址的指定Vlans身份認(rèn)證,而且UDP讓它在被攻擊中更加脆弱。
通常DoS攻擊都發(fā)生在未經(jīng)驗(yàn)證的VLAN中。
VLAN跨越攻擊
VLAN跨越指的是數(shù)據(jù)包被傳送到不正確的端口上?;旧蟅LAN跨越攻擊有如下兩個類型。
◆交換機(jī)欺騙
◆雙標(biāo)簽
交換機(jī)欺騙
交換機(jī)欺騙:攻擊者試圖通過配置802.1Q或者ISL把自己偽裝成一個交換機(jī),通過DTP(動態(tài)中繼協(xié)議)信號可以幫助攻擊者完成欺騙。
雙標(biāo)簽
雙標(biāo)簽是包括2個802.1Q頭的傳輸幀標(biāo)簽,一個頭用于(受害者)用戶的交換機(jī),另一個用于攻擊者的交換機(jī)。防止VLAN跨越攻擊的最簡單的方法就是在所有來歷不明的端口上禁止DTP協(xié)議。
舉例:
ciscoswitch# conf t
ciscoswitc(config)# int gi1/10
ciscoswitch(config-if)# switchportnonegotiate
From the example "switchportnonegotiate" disables the DTP.
雙封裝802.1Q
IEEE802.1Q有助于在大型網(wǎng)絡(luò)之外創(chuàng)建小規(guī)模網(wǎng)絡(luò)。大型網(wǎng)絡(luò)速度慢而且非常消耗帶寬,然而小型網(wǎng)絡(luò)卻更利于管理,占用的帶寬也少。所以,相比大而復(fù)雜的網(wǎng)絡(luò)來說,有時候我們更需要一個小型網(wǎng)絡(luò),因此在IEEE802的基礎(chǔ)上研發(fā)了IEEE802.1Q。
我們必須在啟用了Trunk(端口匯聚)功能下使用IEEE802.1Q,假設(shè)主干中啟用了IEEE802.1Q,那么就可以執(zhí)行一個特殊的攻擊。這個攻擊被稱作雙封裝攻擊,它在原始幀中增加了兩個標(biāo)簽,在IEEE802.1Q中,對幀的修改基本上要通過消除外部標(biāo)簽完成,然而剩下的原始內(nèi)部標(biāo)簽就成為了攻擊的目標(biāo)。
(TIPs:當(dāng)雙封裝 802.1Q 分組從 VLAN 恰巧與干線的本地 VLAN 相同的設(shè)備進(jìn)入網(wǎng)絡(luò)時,這些分組的 VLAN 標(biāo)識將無法端到端保留,因?yàn)?802.1Q 干線總會對分組進(jìn)行修改,即剝離掉其外部標(biāo)記。刪除外部標(biāo)記之后,內(nèi)部標(biāo)記將成為分組的惟一 VLAN 標(biāo)識符。因此,如果用兩個不同的標(biāo)記對分組進(jìn)行雙封裝,流量就可以在不同 VLAN 之間跳轉(zhuǎn)。
這種情況將被視為誤配置,因?yàn)?802.1Q 標(biāo)準(zhǔn)并不逼迫用戶在這些情況下使用本地 VLAN 。事實(shí)上,應(yīng)一貫使用的適當(dāng)配置是從所有 802.1Q 干線清除本地 VLAN (將其設(shè)置為 802.1q-all-tagged 模式能夠達(dá)到完全相同的效果)。在無法清除本地 VLAN 時, 應(yīng)選擇未使用的 VLAN 作為所有干線的本地 VLAN ,而且不能將該 VLAN 用于任何其它目的 。 STP 、 DTP 和 UDLD 等協(xié)議應(yīng)為本地 VLAN 的唯一合法用戶,而且其流量應(yīng)該與所有數(shù)據(jù)分組完全隔離開。)
為了防止802.1Q中的雙封裝,本地VLAN應(yīng)該不被放配到任何端口。我們必須使主干中的流量都攜帶著標(biāo)簽,而為了實(shí)現(xiàn)這一點(diǎn),我們可以使用命令"Switch(config)# vlan dot1q tag native"。它是一個標(biāo)記本地VLAN的全局命令。
隨機(jī)幀重壓攻擊(Random Frame Stress Attack)
隨機(jī)幀重壓攻擊的表現(xiàn)形式有很多,但通常只存在于幾個領(lǐng)域中。在這種暴力攻擊下,會讓源地址和目標(biāo)地址保持不變。當(dāng)遇到異常的輸入和計(jì)算時,它們主要是對交換機(jī)進(jìn)行測試。
這種攻擊是可以預(yù)防的,可以讓專用VLAN隔離第二層的主機(jī),免受惡意流量的侵害。(Tips:使用時,可以建立互信任主機(jī)組,將第二層網(wǎng)絡(luò)分成多個子域,只讓友好設(shè)備相互交流。)
結(jié)論:
我希望以上內(nèi)容能夠幫助大家了解VLAN的一些攻擊方式,并能夠讓概念簡單化。另外,想要對VLAN進(jìn)行攻擊并不容易的,但是請大家不要忘記更改設(shè)備的默認(rèn)設(shè)置。最后為各位管理員總結(jié)以下幾點(diǎn):
◆以安全的方式管理交換機(jī)
◆本地VLAN ID 不應(yīng)用于中繼。使用專用LVAN ID作為中繼端口。
◆所有用戶端口設(shè)置為非中繼
◆多做一些交換機(jī)端口安全配置,但需要小心。
◆避免使用VLAN 1
◆為用戶端口盡可能設(shè)置安全功能
◆為了緩解STP攻擊啟用BPDU保護(hù)
◆使用專用VLAN并且進(jìn)一步劃分L2網(wǎng)絡(luò)
◆如果使用VTP,請用MD5驗(yàn)證。
◆禁用未使用的端口
原文鏈接:http://resources.infosecinstitute.com/vlan-hacking/
【51CTO.com獨(dú)家譯稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載!合作媒體轉(zhuǎn)載請注明原文出處及出處!】