《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 鏈路層安全隱患及防范技術
鏈路層安全隱患及防范技術
來源:電子技術應用2011年第4期
王 群
江蘇警官學院 公安科技系,江蘇 南京 210012
摘要: 針對數據鏈路層的安全隱患,利用ARP、DHCP、STP、DTP、VTP等協(xié)議的網絡攻擊,提出了相應的防范對策。以交換式以太網技術為基礎,分析數據鏈路層的不安全因素,有針對性地給出了相應的解決方法和思路。
中圖分類號: 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


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

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

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

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

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。