ARP攻擊防範技術白皮書
關鍵詞:ARP,仿冒網關,欺騙網關,欺騙其他用戶,泛洪攻擊
摘 要:本文針對目前常見的ARP攻擊,介紹了H3C網絡設備所能提供的防範ARP攻擊的方法以及典型組網應用。
縮略語:
縮略語 | 英文全名 | 中文解釋 |
ARP | Address Resolution Protocol | 地址解析協議 |
DHCP | Dynamic Host Configuration Protocol | 動態主機配置協議 |
MAC | Media Access Control | 媒體訪問控製 |
iMC | Intelligent Management Center | 開放智能管理中樞 |
ARP協議是以太網等數據鏈路層的基礎協議,負責完成IP地址到硬件地址的映射。工作過程簡述如下:
(1) 當主機或者網絡設備需要解析一個IP地址對應的MAC地址時,會廣播發送ARP請求報文。
(2) 主機或者網絡設備接收到ARP請求後,會進行應答。同時,根據請求發送者的IP地址和MAC地址的對應關係建立ARP表項。
(3) 發起請求的主機或者網絡設備接收到應答後,同樣會將應答報文中發送者的IP地址和MAC地址的映射關係記錄下來,生成ARP表項。
從ARP工作機製可以看出,ARP協議簡單易用,但是卻沒有任何安全機製,攻擊者可以發送偽造ARP報文對網絡進行攻擊。偽造ARP報文具有如下特點:
l 偽造的ARP報文中源MAC地址/目的MAC地址和以太網幀封裝中的源MAC地址/目的MAC地址不一致。
l 偽造的ARP報文中源IP地址和源MAC地址的映射關係不是合法用戶真實的映射關係。
目前主要的ARP攻擊方式有如下幾類:
l 仿冒網關攻擊
l 仿冒用戶攻擊(欺騙網關或者其他主機)
l 泛洪攻擊
如圖1所示,因為主機A仿冒網關向主機B發送了偽造的網關ARP報文,導致主機B的ARP表中記錄了錯誤的網關地址映射關係,從而正常的數據不能被網關接收。
仿冒網關攻擊是一種比較常見的攻擊方式,如果攻擊源發送的是廣播ARP報文,或者根據其自身所掌握的局域網內主機的信息依次地發送攻擊報文,就可能會導致整個局域網通信的中斷,是ARP攻擊中影響較為嚴重的一種。
(1) 欺騙網關
如圖2所示,主機A仿冒主機B向網關發送了偽造的ARP報文,導致網關的ARP表中記錄了錯誤的主機B地址映射關係,從而正常的數據報文不能正確地被主機B接收。
(2) 欺騙其他用戶
如圖3所示,主機A仿冒主機B向主機C發送了偽造的ARP報文,導致主機C的ARP表中記錄了錯誤的主機B地址映射關係,從而正常的數據報文不能正確地被主機B接收。
網絡設備在處理ARP報文時需要占用係統資源,同時因為係統內存和查找ARP表效率的要求,一般網絡設備會限製ARP表的大小。攻擊者就利用這一點,通過偽造大量源IP地址變化的ARP報文,使設備ARP表溢出,合法用戶的ARP報文不能生成有效的ARP表項,導致正常通信中斷。
另外,通過向設備發送大量目標IP地址不能解析的IP報文,使設備反複地對目標IP地址進行解析,導致CPU負荷過重,也是泛洪攻擊的一種。
ARP攻擊是一種非常惡劣的網絡攻擊行為:
l 會造成網絡不穩定,引發用戶無法上網或者企業斷網導致重大生產事故。
l 利用ARP攻擊可進一步實施攻擊,非法獲取遊戲、網銀、文件服務等係統的帳號和口令,使被攻擊者造成利益上的重大損失。
針對上述網絡中常見的ARP攻擊行為,H3C提出了較為完整的解決方案,可以徹底解決客戶網絡受到ARP攻擊的問題。
如圖4所示,ARP攻擊防範技術的思路是以設備角色為線索,通過分析二三層網絡設備可能會麵對哪些類型的攻擊,從而提供有效的防範措施。
攻擊源一般來自於主機側,因此接入交換機在ARP攻擊防範中是一個關鍵的控製點。針對攻擊的特點,接入交換機上的防範主要從兩個方麵考慮:
l 建立正確的ARP映射關係、檢測並過濾偽造的ARP報文,保證經過其轉發的ARP報文正確合法。
l 抑製短時間內大量ARP報文的衝擊。
由於防範措施部署在接入側,因此無需在網關上部署,可以減輕網關負擔。
如果接入交換機上不支持ARP攻擊防範功能,或者主機直接接入網關,則需要在網關上部署防範措施,部署思路從兩個方麵考慮:
l 建立正確的ARP表項,防止攻擊者修改。
l 抑製短時間內大量ARP報文或者需觸發ARP解析的IP報文的衝擊。
直接在網關上進行部署對接入交換機的依賴較小,可以較好的支持現有網絡,有效地保護用戶投資。
實際應用時,建議分析網絡的實際場景,選擇合適的攻擊防範技術。
接入設備可能受到的攻擊類型為仿冒網關、仿冒用戶和泛洪攻擊。針對這三種攻擊可以采用的防範措施為:
對ARP報文的合法性進行檢查,如果合法則進行後續處理,如果非法則丟棄報文。
l ARP Detection功能
l ARP過濾保護功能
l ARP網關保護功能
對ARP報文的合法性進行檢查,如果合法則進行後續處理,如果非法則丟棄報文。
l ARP Detection功能
l ARP過濾保護功能
l ARP報文限速功能
某VLAN內開啟ARP Detection功能後,該VLAN內所有端口接收到的ARP(請求與應答)報文將被重定向到CPU進行報文的用戶合法性檢查和報文有效性檢查:如果認為該ARP報文合法,則進行轉發;否則直接丟棄。
目前包括三個功能:
l ARP報文有效性檢查
l 用戶合法性檢查
l ARP報文強製轉發
對於ARP信任端口,不進行報文有效性檢查;對於ARP非信任端口,需要根據配置對MAC地址和IP地址不合法的報文進行過濾。可以選擇配置源MAC地址、目的MAC地址或IP地址檢查模式。
l 對於源MAC地址的檢查模式,會檢查ARP報文中的源MAC地址和以太網報文頭中的源MAC地址是否一致,一致認為有效,否則丟棄。
l 對於目的MAC地址的檢查模式(隻針對ARP應答報文),會檢查ARP應答報文中的目的MAC地址是否為全0或者全1,是否和以太網報文頭中的目的MAC地址一致。全0、全1、不一致的報文都是無效的,無效的報文需要被丟棄。
l 對於IP地址檢查模式,會檢查ARP報文中的源IP和目的IP地址,全0、全1、或者組播IP地址都是不合法的,需要丟棄。對於ARP應答報文,源IP和目的IP地址都進行檢查;對於ARP請求報文,隻檢查源IP地址。
對於ARP信任端口,不進行用戶合法性檢查;對於ARP非信任端口,需要進行用戶合法性檢查,以防止仿冒用戶的攻擊。
用戶合法性檢查是根據ARP報文中源IP地址和源MAC地址檢查用戶是否是所屬VLAN所在端口上的合法用戶,包括基於IP Source Guard靜態綁定表項的檢查、基於DHCP Snooping安全表項的檢查、基於802.1X安全表項的檢查和OUI MAC地址的檢查。
l 首先進行基於IP Source Guard靜態綁定表項檢查。如果找到了對應源IP地址和源MAC地址的靜態綁定表項,認為該ARP報文合法,進行轉發。如果找到了對應源IP地址的靜態綁定表項但源MAC地址不符,認為該ARP報文非法,進行丟棄。如果沒有找到對應源IP地址的靜態綁定表項,繼續進行DHCP Snooping安全表項、802.1X安全表項和OUI MAC地址檢查。
l 在基於IP Source Guard靜態綁定表項檢查之後進行基於DHCP Snooping安全表項、802.1X安全表項和OUI MAC地址檢查,隻要符合三者中任何一個,就認為該ARP報文合法,進行轉發。其中,OUI MAC地址檢查指的是,隻要ARP報文的源MAC地址為OUI MAC地址,並且使能了Voice VLAN功能,就認為是合法報文,檢查通過。
l 如果所有檢查都沒有找到匹配的表項,則認為是非法報文,直接丟棄。
ARP報文強製轉發功能是將ARP非信任端口接收到的已經通過用戶合法性檢查的ARP報文,按照一定的規則進行轉發的防攻擊功能,此功能不對ARP信任端口接收到的通過用戶合法性檢查的ARP報文進行限製。
對於從ARP非信任端口收到的已經通過用戶合法性檢查的合法ARP報文的處理過程如下:
l 對於ARP請求報文,通過信任端口進行轉發。
l 對於ARP應答報文,首先按照報文中的以太網目的MAC地址進行轉發,若在MAC地址表中沒有查到目的MAC地址對應的表項,則將此ARP應答報文通過信任端口進行轉發。
在設備不與網關相連的端口上配置此功能,可以防止仿冒網關攻擊。
在端口配置此功能後,當端口收到ARP報文時,將檢查ARP報文的源IP地址是否和配置的被保護網關的IP地址相同。如果相同,則認為此報文非法,將其丟棄;否則,認為此報文合法,繼續進行後續處理。
本功能用來限製端口下允許通過的ARP報文,可以防止仿冒網關和仿冒用戶的攻擊。
在端口配置此功能後,當端口收到ARP報文時,將檢查ARP報文的源IP地址和源MAC地址是否和允許通過的IP地址和MAC地址相同:
l 如果相同,則認為此報文合法,繼續進行後續處理。
l 如果不相同,則認為此報文非法,將其丟棄。
ARP報文限速功能是指對上送CPU的ARP報文進行限速,可以防止大量ARP報文對CPU進行衝擊。例如,在配置了ARP Detection功能後,設備會將收到的ARP報文重定向到CPU進行檢查,這樣引入了新的問題:如果攻擊者惡意構造大量ARP報文發往設備,會導致設備的CPU負擔過重,從而造成其他功能無法正常運行甚至設備癱瘓,這個時候可以啟用ARP報文限速功能來控製上送CPU的ARP報文的速率。
推薦用戶在配置了ARP Detection或者發現有ARP泛洪攻擊的情況下,使用ARP報文限速功能。
網關設備可能受到的攻擊類型為仿冒用戶和泛洪攻擊。針對這兩種攻擊可以采用的防範措施為:
(1) 通過合法方式建立正確的ARP表項,並阻止攻擊者修改
l 授權ARP功能
l ARP自動掃描和固化功能
l 配置靜態ARP表項
(2) 動態學習ARP表項前進行確認,保證學習到的是真實、正確的映射關係
l ARP主動確認功能
l ARP報文源MAC一致性檢查功能
l 源MAC地址固定的ARP攻擊檢測功能
l 限製接口學習動態ARP表項的最大數目
l ARP防IP報文攻擊功能
授權ARP功能是指根據DHCP服務器生成的租約或者DHCP中繼生成的安全表項同步生成ARP表項。適用於采用DHCP協議動態分配主機IP地址的網絡環境。
使能接口的授權ARP功能後:
l 隻有靜態ARP表項才可以覆蓋授權ARP表項,授權ARP表項不會被被偽造的ARP報文動態改寫(即動態ARP表項不能覆蓋授權ARP表項),因此保證了表項的正確性。
l 如果發送者冒用其它合法主機的IP地址發送ARP請求,因為MAC地址不是網關所記錄的授權ARP表項中的合法MAC地址,偽造的ARP請求將不能得到應答,從而限製冒用合法IP地址的主機上網。
l 禁止該接口學習動態ARP表項,可以防止用戶仿冒其他用戶的IP地址或MAC地址對網絡進行攻擊,保證隻有合法的用戶才能使用網絡資源,增加了網絡的安全性。
l 接口下授權ARP表項的老化探測功能,可以檢測用戶的非正常下線,及時刪除對應的授權ARP表項。
ARP自動掃描功能一般與ARP固化功能配合使用:
l 啟用ARP自動掃描功能後,設備會對局域網內的鄰居自動進行掃描(向鄰居發送ARP請求報文,獲取鄰居的MAC地址,從而建立動態ARP表項)。
l ARP固化功能用來將當前的ARP動態表項(包括ARP自動掃描生成的動態ARP表項)轉換為靜態ARP表項。通過對動態ARP表項的固化,可以有效的防止攻擊者修改ARP表項。
推薦在網吧這種環境穩定的小型網絡中使用這兩個功能。
對於網絡中重要的服務器等設備,可以將其IP地址和MAC地址的映射關係配置為靜態ARP表項。這種靜態映射關係不但不能被偽造的ARP報文動態改寫,而且同樣會限製對非法ARP請求的應答,從而保護服務器不受到攻擊。
配置靜態ARP表項雖然可以保護ARP表不被改寫,但是配置工作量大,不適用於主機IP地址可能發生更改的網絡環境,建議在比較小的網絡裏使用。
ARP的主動確認功能主要應用於網關設備上,防止攻擊者仿冒用戶欺騙網關設備。
未啟用ARP主動確認功能時,設備收到一個ARP報文的處理過程如下:
l 如果設備的ARP表中沒有與此ARP報文源IP地址對應的ARP表項,設備會根據ARP報文中攜帶的源IP地址、源MAC地址信息新建ARP表項。
l 如果設備的ARP表中存在與此ARP報文源IP地址對應的ARP表項,設備會根據ARP報文中攜帶的源IP地址、源MAC地址信息更新對應的ARP表項。
啟用ARP主動確認功能後,設備在新建或更新ARP表項前需進行主動確認,防止產生錯誤的ARP表項。下麵將詳細介紹其工作原理。
設備收到一個ARP報文,若當前設備ARP表中沒有與此ARP報文源IP地址對應的ARP表項,設備會首先驗證該ARP報文的真實性。設備會采用收到的ARP報文的源IP地址發送一個廣播ARP請求報文,如果在隨後的3秒內收到ARP應答報文,將對前期收到的ARP報文與此次收到的ARP應答報文進行比較(比較內容包括:源IP地址、源MAC地址、報文接收端口)。
l 如果兩個報文一致,則認為收到的ARP報文為真實報文,並根據此報文在ARP表中新建對應的表項。
l 如果兩個報文不一致,則認為收到的ARP報文為攻擊報文,設備會忽略之前收到ARP報文,ARP表中不會新建對應的表項。
設備收到一個ARP報文(報文A),若當前設備ARP表中已有與報文A源IP地址對應的ARP表項,但報文A攜帶的源MAC地址和現有ARP表項中的MAC地址不相同,設備就需要判斷當前ARP表項的正確性以及報文A的真實性。
(1) 確定是否啟動ARP表項正確性檢查
為了避免短時間內多次收到來自同一源IP地址的ARP報文導致的ARP表項頻繁更新,設備會首先判斷該ARP表項的刷新時間是否超過1分鍾。
l 如果沒有超過1分鍾,則設備不會對ARP表項進行更新。
l 如果已經超過1分鍾,設備將啟動當前ARP表項的正確性檢查。
(2) 啟動ARP表項的正確性檢查
設備會向ARP表項對應的源發送一個單播ARP請求報文(報文的目的IP地址、目的MAC地址采用ARP表項中的IP地址、MAC地址)。如果在隨後的5秒內收到ARP應答報文(報文B),將比較當前ARP表項中的IP地址、MAC地址與報文B的源IP地址、源MAC地址是否一致。
l 如果一致,則認為報文A為攻擊報文、ARP表項不會更新。
l 如果不一致,設備將啟動報文A的真實性檢查。
(3) 啟動報文A的真實性檢查
設備會向報文A對應的源發送一個單播ARP請求報文(報文的目的IP地址、目的MAC地址采用報文A的源IP地址、源MAC地址)。如果在隨後的5秒內收到ARP應答報文(報文C),將比較報文A與報文C的源IP地址、源MAC地址是否一致。
l 如果一致,則認為報文A為真實報文,並根據報文A更新ARP表中對應表項。
l 如果不一致,則認為報文A為攻擊報文,設備會忽略收到的報文A,ARP表項不會更新。
ARP報文源MAC一致性檢查功能可以用來防禦以太網數據幀首部中的源MAC地址和ARP報文中的源MAC地址不同的ARP攻擊。
配置本功能後,網關設備在進行ARP學習前將對ARP報文進行檢查。如果以太網數據幀首部中的源MAC地址和ARP報文中的源MAC地址不同,則認為是攻擊報文,將其丟棄;否則,繼續進行ARP學習。
當網關設備在短時間內收到同一個源發送的大量ARP報文時,就認定為發生了源MAC地址固定ARP攻擊。
源MAC地址固定的ARP攻擊檢測功能根據ARP報文的源MAC地址進行統計,在5秒內,如果收到同一源MAC地址的ARP報文超過一定的閾值,則認為存在攻擊,係統會將此MAC地址添加到攻擊檢測表項中。在該攻擊檢測表項老化之前,如果設置的檢查模式為過濾模式,則會打印告警信息並且將該源MAC地址發送的ARP報文過濾掉;如果設置的模式為監控模式,則隻打印告警信息,不會將該源MAC地址發送的ARP報文過濾掉。
對於網關或一些重要的服務器,可能會發送大量ARP報文,為了使這些ARP報文不被過濾掉,可以將這類設備的MAC地址配置成保護MAC,這樣,即使該MAC存在攻擊也不會被檢測過濾。
當指定接口下的動態ARP表項達到允許學習的最大數目後,將不允許新增動態學習表項,以保證當一個接口所接入的某一台主機發起ARP攻擊時不會導致整個設備的ARP表資源都被耗盡。
當配置接口學習動態ARP表項的最大數目為0時,表示禁止接口學習動態ARP表項。
如果網絡中有主機通過向設備發送大量目標IP地址不能解析的IP報文來攻擊設備,則會造成下麵的危害:
l 設備向目的網段發送大量ARP請求報文,加重目的網段的負載。
l 設備會試圖反複地對目標IP地址進行解析,增加了CPU的負擔。
為避免這種IP報文攻擊所帶來的危害,設備提供了下列兩個功能:
l 如果發送攻擊報文的源是固定的,可以采用ARP源抑製功能。開啟該功能後,如果網絡中某主機向設備某端口連續發送目標IP地址不能解析的IP報文,當每5秒內由此主機發出IP報文觸發的ARP請求報文的流量超過設置的閾值,那麼對於由此主機發出的IP報文,設備不允許其觸發ARP請求,直至5秒後再處理,從而避免了惡意攻擊所造成的危害。
l 如果發送攻擊報文的源不固定,可以采用ARP黑洞路由功能。開啟該功能後,一旦接收到目標IP地址不能解析的IP報文,設備立即產生一個黑洞路由,使得設備在一段時間內將去往該地址的報文直接丟棄。等待黑洞路由老化時間過後,如有報文觸發則再次發起解析,如果解析成功則進行轉發,否則仍然產生一個黑洞路由將去往該地址的報文丟棄。這種方式能夠有效地防止IP報文的攻擊,減輕CPU的負擔。
結合上麵的描述,在此通過典型組網應用的介紹,進一步說明ARP攻擊防範技術在實際中的部署。
& 說明:
紅色數據流表示非法ARP報文被丟棄,攻擊防範生效。
監控方式主要適用於動態接入用戶居多的網絡環境,如圖5所示,網絡內的主機通過DHCP服務器動態獲取IP地址。
在上述網絡中,ARP攻擊防範的措施部署在接入交換機上,網關設備和主機都無需另外進行攻擊防範的配置。
接入設備上運行的ARP Detection特性會根據DHCP Snooping的安全表項對通過本設備的ARP報文進行檢查。如果用戶側主機的ARP報文中攜帶的發送者信息和DHCP Snooping安全表項的綁定信息不一致,報文將被認定為攻擊報文並被丟棄。從而避免了網關或者其他主機的ARP表中記錄錯誤的地址映射關係。
同時,建議配置ARP限速,防止ARP泛洪攻擊。
認證方式適合網絡中采用認證登陸的場景,如圖6所示,通過H3C iMC、H3C iNode客戶端與接入交換機和網關的聯動,全方麵的防範ARP攻擊。
實現原理:客戶端通過認證協議(802.1x或Portal)登陸網絡,iMC對客戶端進行認證,接入交換機對獲取到客戶端的IP+MAC信息進行綁定,保證當前用戶的合法性;認證通過後,iMC將網關的IP+MAC信息下發給客戶端進行綁定,保證網關的準確性。
如圖7所示,首先網關通過ARP自動掃描功能建立網吧局域網內所有客戶端的動態ARP表項,然後通過ARP固化功能將這些動態ARP表項轉換為靜態ARP表項。完成後禁止網關學習動態ARP表項,即隻允許和現有ARP表項一致的客戶端才能訪問Internet。這樣可以防止用戶私自修改客戶端IP地址,使用戶的網上行為有記錄可循。
l RFC 826:An Ethernet Address Resolution Protocol
l RFC 2131:Dynamic Host Configuration Protocol(DHCP)
l RFC 3046:DHCP Relay Agent Information Option
Copyright ©2009 杭州華三通信技術有限公司 版權所有,保留一切權利。
非經本公司書麵許可,任何單位和個人不得擅自摘抄、複製本文檔內容的部分或全部,並不得以任何形式傳播。
本文檔中的信息可能變動,恕不另行通知。