《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 鏈路層安全隱患及防范技術(shù)
鏈路層安全隱患及防范技術(shù)
來源:電子技術(shù)應(yīng)用2011年第4期
王 群
江蘇警官學(xué)院 公安科技系,江蘇 南京 210012
摘要: 針對數(shù)據(jù)鏈路層的安全隱患,利用ARP、DHCP、STP、DTP、VTP等協(xié)議的網(wǎng)絡(luò)攻擊,提出了相應(yīng)的防范對策。以交換式以太網(wǎng)技術(shù)為基礎(chǔ),分析數(shù)據(jù)鏈路層的不安全因素,有針對性地給出了相應(yīng)的解決方法和思路。
中圖分類號: TP309.2
文獻標識碼: A
文章編號: 0258-7998(2011)04-0133-05
Security risks and defense technology of data link layer
Wang Qun
Department of Science & Technology,Jiangsu Police Institute,Nanjing 210012,China
Abstract: For data link layer security troubles, the attacks using ARP,DHCP,STP,DTP,VTP and other network protocols,this paper puts forward the corresponding preventive measures. Based on the switching ethernet technology, the paper analyzes the security troubles of data link layer through the introduction of implementation details for communication protocol. At last, the paper provides the corresponding solutions and ideas.
Key words : switching Ethernet;data link layer;communication protocol;data frame;network security


    目前,網(wǎng)絡(luò)和信息安全已上升到國家安全的層面。在早期的計算機網(wǎng)絡(luò)安全研究中,普遍存在著重兩頭而輕中間的現(xiàn)象,將網(wǎng)絡(luò)安全的注意力主要集中在網(wǎng)絡(luò)體系結(jié)構(gòu)的高層和低層,而忽視了中間層次的安全問題。如針對物理層的安全提出了大量的涉及物理、電子、電氣和功能等特性的解決方案;針對應(yīng)用層的安全出現(xiàn)了種類豐富、功能完善的面向協(xié)議的技術(shù)和產(chǎn)品。然而,只有當ARP欺騙攻擊在局域網(wǎng)中大范圍爆發(fā)而一時無法找到徹底的解決辦法時,才注意到中間層,尤其是數(shù)據(jù)鏈路層的安全問題。數(shù)據(jù)鏈路層的主要功能是在相鄰節(jié)點之間,通過各種控制協(xié)議和規(guī)程在有差錯的物理信道中實現(xiàn)無差錯的、可靠的數(shù)據(jù)幀傳輸[1]。本文以交換式局域網(wǎng)應(yīng)用為主,集中分析了數(shù)據(jù)鏈路層的安全問題,有針對性地提出了相應(yīng)的解決方法和思路,并以Cisco交換機為例,給出了相應(yīng)的配置方法。
1 數(shù)據(jù)鏈路層主要安全問題
1.1 ARP欺騙攻擊

    ARP(Address Resolution Protocol)的功能是通過IP地址查找對應(yīng)端口的MAC地址,以便在TCP/IP網(wǎng)絡(luò)中實現(xiàn)共享信道的節(jié)點之間利用MAC地址進行通信。由于ARP協(xié)議在設(shè)計中存在主動發(fā)送ARP報文的漏洞,使得主機可以發(fā)送虛假的ARP請求報文或響應(yīng)報文,而報文中的源IP地址和源MAC地址均可以進行偽造。在局域網(wǎng)中,既可以偽造成某一臺主機(如服務(wù)器)的IP地址和MAC地址的組合,也可以偽造成網(wǎng)關(guān)IP地址與MAC地址的組合。這種組合可以根據(jù)攻擊者的意圖進行任意搭配,而現(xiàn)有的局域網(wǎng)卻沒有相應(yīng)的機制和協(xié)議來防止這種偽造行為。近幾年來,幾乎所有局域網(wǎng)都遭遇過ARP欺騙攻擊的侵害。
    圖1所示為假設(shè)主機C為局域網(wǎng)中的網(wǎng)關(guān),主機D為ARP欺騙者。當局域網(wǎng)中的計算機要與其他網(wǎng)絡(luò)進行通信(如訪問Internet)時,所有發(fā)往其他網(wǎng)絡(luò)的數(shù)據(jù)全部發(fā)給了主機D,而主機D并非真正的網(wǎng)關(guān),這樣整個網(wǎng)絡(luò)將無法與其他網(wǎng)絡(luò)進行通信。這種現(xiàn)象在ARP欺騙攻擊中非常普遍。

1.2 DHCP欺騙攻擊
    DHCP(Dynamic Host Configuration Protocol)的功能是對客戶端動態(tài)地分配IP地址及相關(guān)參數(shù)。但DHCP卻存在著一個非常大的安全隱患:當一臺運行有DHCP客戶端程序的計算機連接到網(wǎng)絡(luò)中時,即使是一個沒有權(quán)限使用網(wǎng)絡(luò)的非法用戶也能很容易地從DHCP服務(wù)器獲得一個IP地址及網(wǎng)關(guān)、DNS等信息,成為網(wǎng)絡(luò)的合法使用者[2]。由于DHCP客戶端在獲得DHCP服務(wù)器的IP地址等信息時,系統(tǒng)沒有提供對合法DHCP服務(wù)器的認證,所以DHCP客戶端從首先得到DHCP響應(yīng)(DHCPOFFER)的DHCP服務(wù)器處獲得IP地址等信息。為此,不管是人為的網(wǎng)絡(luò)攻擊、破壞,還是無意的操作,一旦在網(wǎng)絡(luò)中接入了一臺DHCP服務(wù)器,該DHCP服務(wù)器就可以為DHCP客戶端提供IP地址等信息的服務(wù)。其結(jié)果是:(1)客戶端從非法DHCP服務(wù)器獲得了不正確的IP地址、網(wǎng)關(guān)、DNS等參數(shù),無法實現(xiàn)正常的網(wǎng)絡(luò)連接;(2)客戶端從非法DHCP服務(wù)器處獲得的IP地址與網(wǎng)絡(luò)中正常用戶使用的IP地址沖突,影響了網(wǎng)絡(luò)的正常運行。尤其當客戶端獲得的IP地址與網(wǎng)絡(luò)中某些重要的服務(wù)器的IP地址沖突時,整個網(wǎng)絡(luò)將處于混亂狀態(tài);(3)攻擊偽造大量的DHCP請求報文,將DHCP服務(wù)器中可供分配的IP地址耗盡,使正常的用戶無法獲得IP地址。
1.3 生成樹協(xié)議攻擊
    生成樹協(xié)議STP(Spanning Tree Protocol)是用于解決網(wǎng)絡(luò)環(huán)路問題的一種智能算法。在交換式網(wǎng)絡(luò)中,通過在兩個交換節(jié)點之間提供多條物理鏈路來提供線路冗余,以增加設(shè)備之間連接的可靠性。但是,當在兩個交換節(jié)點(如交換機)之間存在兩條以上的物理鏈路時將會形成環(huán)路。如果沒有相應(yīng)的備份策略,環(huán)路的存在將會形成廣播風(fēng)暴。輕則嚴重影響網(wǎng)絡(luò)的性能,重則導(dǎo)致網(wǎng)絡(luò)癱瘓。生成樹協(xié)議的實現(xiàn)基礎(chǔ)是BPDU(Bridge Protocol Data Units)報文,通過在不同交換機之間交換的BPDU報文,在網(wǎng)絡(luò)中選舉一臺網(wǎng)橋ID(Bridge ID)最低的交換機作為根網(wǎng)橋(Root Bridge),并將交換機上發(fā)送該BPDU報文端口ID(Port ID)的值設(shè)置為最低,交換機上端口ID值最低的端口為根端口(Root Port),根端口連接的鏈路為主鏈路。通過計算網(wǎng)絡(luò)中各個交換機到達根網(wǎng)橋的路徑開銷,選擇各交換節(jié)點到達根網(wǎng)橋的最優(yōu)路徑,同時阻斷其他的次優(yōu)路徑(即冗余鏈路),從而形成邏輯上無環(huán)路的樹形拓撲結(jié)構(gòu)。
    根據(jù)STP的工作原理,同一網(wǎng)絡(luò)中的所有交換機之間都可以通過網(wǎng)橋ID的值來選擇根網(wǎng)橋,這樣攻擊者可以在網(wǎng)絡(luò)中接入一臺交換機或一臺計算機,然后通過構(gòu)造網(wǎng)橋ID最低的BPDU報文,使這臺接入的交換機或計算機成為根網(wǎng)橋,進而擾亂正常的網(wǎng)絡(luò)運行,最終導(dǎo)致網(wǎng)絡(luò)癱瘓。
1.4 MAC地址泛洪攻擊
    交換機根據(jù)MAC地址來轉(zhuǎn)發(fā)數(shù)據(jù)幀,交換機端口與所連設(shè)備MAC地址的對應(yīng)關(guān)系存儲在內(nèi)容尋址存儲器CAM(Content Addressable Memory)表中,CAM表中還可能包含MAC地址對應(yīng)的VLAN ID等參數(shù)。當交換機從某一端口接收到一個數(shù)據(jù)幀時,交換機首先從數(shù)據(jù)幀中提取源MAC地址和目的MAC地址,然后將端口與源MAC地址的對應(yīng)關(guān)系記錄在CAM表中。同時,交換機查詢CAM表中是否有目的MAC地址對應(yīng)的記錄,如果有,則可通過對應(yīng)的端口將數(shù)據(jù)幀轉(zhuǎn)發(fā)出去,如果沒有,交換機的作用則類似于集線器,會將數(shù)據(jù)幀廣播到交換機其他所有的端口[3]。
    MAC地址泛洪攻擊也稱為CAM表溢出攻擊。因為任何一臺交換機的CAM表大小是有限制的,當記錄數(shù)填滿CAM表時,凡到達交換機的具有不同源MAC地址的數(shù)據(jù)幀,其端口和MAC地址的對應(yīng)關(guān)系將不會被添加在CAM表中?;诖嗽?,攻擊者將大量虛構(gòu)的具有不同源MAC地址的數(shù)據(jù)幀發(fā)送給交換機,直至交換機的CAM表填滿。之后,交換機將進入fail-open(失效開放)模式,其功能將類似于一臺集線器。此時,交換機接收到的任何一個單播幀都會以廣播方式處理,攻擊者的計算機將會接收到這些單播幀,從而獲得其他用戶的信息。
1.5 VLAN 攻擊
    虛擬局域網(wǎng)VLAN(Virtual Local Area Network)是在交換式局域網(wǎng)基礎(chǔ)上出現(xiàn)的一項管理技術(shù),通過在數(shù)據(jù)幀的頭部添加VLAN tag(VLAN標識)字段,將局域網(wǎng)用戶設(shè)備邏輯地劃分為多個網(wǎng)段,以縮小廣播域,提高用戶通信的安全性及網(wǎng)絡(luò)的可管理性。VLAN在局域網(wǎng)中一般被作為一項安全技術(shù)使用,但VLAN本身卻存在安全隱患。目前針對VLAN的攻擊主要集中在VLAN Hopping攻擊和VTP攻擊兩個方面。
    (1)VLAN Hopping攻擊。VLAN Hopping(VLAN跳躍)攻擊是基于動態(tài)主干協(xié)議DTP(Dynamic Trunk Protocol)來實現(xiàn)的。當兩臺交換機互聯(lián)時,通過DTP可以對互聯(lián)端口進行協(xié)商,確認是否設(shè)置為支持IEEE 802.1Q的主干(trunk)端口。如果設(shè)置為主干端口,則允許轉(zhuǎn)發(fā)所有VLAN中的數(shù)據(jù)幀。VLAN Hopping攻擊又分為基本VLAN Hopping攻擊和雙重封裝VLAN跳躍攻擊兩類。①基本VLAN Hopping攻擊是攻擊者將計算機偽裝成為一臺交換機,并發(fā)送虛假的DTP協(xié)商報文,請求成為主干端口。局域網(wǎng)中交換機在收到這個DTP報文后,便啟用基于IEEE 802.1Q的Trunk功能,將攻擊者的計算機誤認為一臺合法的交換機。之后,所有VLAN的數(shù)據(jù)幀都會發(fā)送到攻擊者的計算機上。②雙重封裝VLAN跳躍攻擊是指利用目前大部分局域網(wǎng)交換機僅支持單層VLAN tag的特點,攻擊者根據(jù)要入侵的VLAN ID,首先構(gòu)造一個包含該VLAN ID的IEEE 802.1Q數(shù)據(jù)幀,然后在該IEEE 802.1Q數(shù)據(jù)幀的外層再封裝一層適合當前網(wǎng)絡(luò)的VLAN tag,從而通過外層VLAN ID實現(xiàn)對非授權(quán)VLAN ID的非法訪問,以獲取非授權(quán)VLAN ID中的用戶數(shù)據(jù)。
    (2)VTP攻擊。VTP(VLAN Trunk Protocol)以組播方式在同一個管理域中同步VLAN信息,從而實現(xiàn)對管理域中VLAN信息的集中管理。VTP報文只能在trunk端口上轉(zhuǎn)發(fā)。VTP的三種工作模式及對應(yīng)的功能如下:
    ①Server(缺?。?。可以添加、刪除、修改VLAN,并同步VLAN信息。VLAN信息存放在NVRAM中。
  ②Client。不允許添加、刪除、修改VLAN,但會同步VLAN信息。VLAN信息不存放在NVRAM中,斷電后會自動消失。
  ③Transparent??梢蕴砑?、刪除、修改VLAN,但不同步VLAN信息。VLAN信息存放在NVRAM中。
  使用VTP的主要目的是實現(xiàn)對局域網(wǎng)中VLAN信息的集中管理,以減少網(wǎng)絡(luò)管理員的工作量。但攻擊者可以接入一臺交換機或直接使用一臺計算機,并與上聯(lián)交換機之間建立一條主干(trunk)通道后,通過修改自己的修訂號(Configuration Revision)來擁有Server的權(quán)限,進而對局域網(wǎng)的VLAN架構(gòu)進行任意更改,以獲得所需要的信息或擾亂網(wǎng)絡(luò)的正常運行。
2 數(shù)據(jù)鏈路層安全防范方法
2.1 針對ARP欺騙攻擊的防范方法

    ARP緩存表中的記錄既可以是動態(tài)的,也可以是靜態(tài)的。如果ARP緩存表中的記錄是動態(tài)的,則可以通過老化機制減少ARP緩存表的長度并加快查詢速度;靜態(tài)ARP緩存表中的記錄是永久性的,用戶可以使用TCP/IP工具來創(chuàng)建和修改,如Windows操作系統(tǒng)自帶的ARP工具。對于計算機來說,可以通過綁定網(wǎng)關(guān)等重要設(shè)備的IP與MAC地址記錄來防止ARP欺騙攻擊。在交換機上防范ARP欺騙攻擊的方法與在計算機上基本相同,可以將下連設(shè)備的MAC地址與交換機端口進行綁定,并通過端口安全功能(Port Security feature)對違背規(guī)則的主機(攻擊者)進行相應(yīng)的處理。通過Cisco交換機可以在DHCP Snooping綁定表的基礎(chǔ)上,使用DAI(Dynamic ARP Inspection)技術(shù)來檢測ARP請求,攔截非法的ARP報文,具體配置如下:
    Switch(config)#ip arp inspection vlan 20-30,100-110,315(定義ARP檢測的VLAN范圍,該范圍根據(jù)DHCP snooping binding表做判斷)
    Switch(config-if)#ip arp inspection limit rate 30 (限制端口每秒轉(zhuǎn)發(fā)ARP報文的數(shù)量為30)
2.2 針對DHCP欺騙攻擊的防范方法
    對于DHCP欺騙攻擊的防洪可以采用兩種方法。
    (1)采用DHCP Snooping過濾來自網(wǎng)絡(luò)中非法DHCP服務(wù)器或其他設(shè)備的非信任DHCP響應(yīng)報文。在交換機上,當某一端口設(shè)置為非信任端口時,可以限制客戶端特定的IP地址、MAC地址或VLAN ID等報文通過。為此,可以使用DHCP Snooping特性中的可信任端口來防止用戶私置DHCP服務(wù)器或DHCP代理[4]。一旦將交換機的某一端口設(shè)置為指向正確DHCP服務(wù)器的接入端口,則交換機會自動丟失從其他端口上接收到的DHCP響應(yīng)報文。例如,在Cisco交換機上通過以下命令將指定端口設(shè)置為信任端口:
     Switch(config-if)# ip dhcp snooping trust(定義該端口為DHCP信任端口)
     Switch(config)#ip dhcp snooping (啟用DHCP snooping功能)
     Switch(config)#ip dhcp snooping vlan 20-30,100-110,315 (定義DHCP snooping作用的VLAN)
  (2)通過DHCP服務(wù)器(如基于Windows 2003/2008操作系統(tǒng)的DHCP服務(wù)器)綁定IP與MAC地址,實現(xiàn)對指定計算機IP地址的安全分配。
2.3 針對生成樹協(xié)議攻擊的防范方法
    對于STP攻擊可以采取STP環(huán)路保護機制來防范。為了防止客戶端交換機偶然成為根網(wǎng)橋,在Cisco交換機中可以使用Root Guard特性來避免這種現(xiàn)象的發(fā)生[5]。如圖2所示,如果STP偶然選擇出客戶端交換機(交換機D)成為根網(wǎng)橋,即交換機C與交換機D相連接的端口成為根端口(Root Port),則Root Guard特性自動將交換機C與交換機D相連接的端口設(shè)置為root-inconsistent狀態(tài)(根阻塞狀態(tài)),以防止客戶端交換機D成為根網(wǎng)橋。一旦在交換機中配置了Root Guard特性,其將對所有的VLAN都有效。

    在Cicsco交換機中配置Root Guard特性的命令如下:
    Switch(config-if)#spanning-tree guard root
2.4 針對MAC地址泛洪攻擊的防范方法
    針對MAC地址泛洪攻擊,可以采取以下多種方法進行防范:
    (1)限制未知目的MAC地址的組播(multicast)幀和單播(unicast)幀通過本端口進行轉(zhuǎn)發(fā)。在Cisco交換機的配置如下:
    Switch(config-if)# switchport block multicast
    Switch(config-if)# switchport block unicast
    (2)限制端口學(xué)習(xí)到的最大MAC地址數(shù)量。以下配置中將該端口最大能夠?qū)W習(xí)到的MAC地址數(shù)限制為10:
    Switch(config-if)#switchport port-security maximum 10
    (3)限制端口單位時間(一般為每秒)通過的最大數(shù)據(jù)幀數(shù)量,可以分別針對單播幀、組播幀和廣播幀進行設(shè)置。以下配置中將該端口每秒通過的單播幀、組播幀和廣播幀的數(shù)量分別限制為10:
    Switch(config-if)# storm-control unicast level 10
    Switch(config-if)# storm-control multicast level 10
    Switch(config-if)# storm-control broadcast level 10
    當通過以上方式對交換機的端口進行限制后,對于違背安全規(guī)則的端口,交換機將自動采取protect(丟棄非法流量,不報警)、restrict(丟棄非法流量,報警)、shutdown(關(guān)閉端口)和shutdown vlan(關(guān)閉VLAN)等安全保護方式。
2.5 針對VLAN攻擊的防范方法
    (1)針對基本VLAN Hopping攻擊,最有效的解決方法是關(guān)閉交換機的DTP功能,將交換機之間的互聯(lián)端口手動設(shè)置為Trunk即可。在Cisco交換機上將某一端口設(shè)置為Trunk的配置如下:
  Switch(config-if)# switchport(設(shè)置為二層端口)
  Switch(config-if)#switchport trunk encapsulation dot1q(啟用IEEE 802.1Q)
  Switch(config-if)#switchport mode trunk(設(shè)置該端口為trunk)或
  Switch(config-if)# switchport mode dynamic desirable(使該端口既主動發(fā)送DTP報文,也允許對DTP報文進行響應(yīng),這是以太網(wǎng)端口的默認狀態(tài))
  關(guān)閉交換機上DTP功能的配置如下:
  Switch(config-if)# switchport mode access(設(shè)置為訪問端口,不具有DTP功能)或
  Switch(config-if)# switchport mode dynamic auto(使該端口可以響應(yīng)DTP報文,但不允許主動發(fā)送DTP報文)
  針對雙重封裝VLAN Hopping攻擊,目前最有效的解決辦法是為trunk端口單獨設(shè)置一個native VLAN,且在native VLAN中不加入任何用戶的端口。配置方法如下:
  Switch(config-if)#switchport trunk native vlan vlan-id
  (2)由于實現(xiàn)VTP攻擊的前提是攻擊者與上聯(lián)交換機之間要建立一條主干(trunk)通道,所以可以采取與防范基本VLAN Hopping攻擊相同的方法來解決這一問題。另外,可以為VTP域設(shè)置密碼,當域中要加入新的交換機時必須輸入正確的密碼,通過對VTP域密碼的管理便可以防范VTP攻擊。在Cisco交換機中的配置實例如下:
  Switch(config)# vtp mode server(將VTP的工作模式設(shè)置為Server)
  Switch(config)# vtp domain VTP-JSPI(設(shè)置VTP的域名為VTP-JSPI)
  Switch(config)#vtp pruning (設(shè)置VTP修剪,以減少trunk端口上不必要的流量)
  Switch(config)#vtp version 2(設(shè)置VTP的版本號為2)
  Switch(config)#vtp password cisco-jspi(將VTP域的密碼設(shè)置為cisco-jspi)
    需要說明的是:VTP域中的所有交換機必須設(shè)置相同的密碼,否則無法正確工作。另外,VTP的域密碼是以明文方式在網(wǎng)絡(luò)中傳輸,安全性較差。
    在OSI參考模型中,局域網(wǎng)僅涉及到物理層和數(shù)據(jù)鏈路層,以上各層的功能由局域網(wǎng)操作系統(tǒng)來完成。在網(wǎng)絡(luò)體系結(jié)構(gòu)中,越是低層的安全問題所產(chǎn)生的影響也越大,而且越不容易徹底解決。正因為如此,當ARP、DHCP、VLAN、STP等主要針對數(shù)據(jù)鏈路層協(xié)議的攻擊出現(xiàn)時,一般借助于對交換機等數(shù)據(jù)鏈路層設(shè)備的安全管理來解決。針對局域網(wǎng)應(yīng)用和管理實際,本文僅對數(shù)據(jù)鏈路層的主要安全問題進行了分析,并給出了Cisco交換機上的配置方法,其他品牌交換機的配置讀者可參閱相關(guān)的技術(shù)文檔。隨著網(wǎng)絡(luò)應(yīng)用不斷深入,新的安全問題也將不斷出現(xiàn),針對數(shù)據(jù)鏈路層的安全研究也將是一項長期的工作。
參考文獻
[1] TANENBAUM A S. Computer networks fourth edition(影印版)[M].北京:清華大學(xué)出版,2008.
[2] 任鳳姣,王 洪,賈卓生.DHCP安全系統(tǒng)[J].計算機工程,2004,17(9):127-129.
[3] 王群.計算機網(wǎng)絡(luò)安全技術(shù)[M].北京:清華大學(xué)出版,2008.
[4] PATRICK M. Motorola BCS. DHCP relay agent information option[EB/OL]. http://www.rfc-editor.org/rfc/rfc3046.txt, January 2001.
[5] Cisco Systems, Inc. Spanning tree protocol root guard enhancement[EB/OL]. http://www.cisco.com/application/pdf/paws/10588/74.pdf, August 2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。