鬼佬大哥大
  • / 21
  • 下載費用:30 金幣  

ARP報文處理方法及裝置.pdf

關 鍵 詞:
ARP 報文 處理 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201110457652.4

申請日:

2011.12.30

公開號:

CN102571579B

公開日:

2015.01.07

當前法律狀態:

授權

有效性:

有權

法律詳情: 專利權的轉移IPC(主分類):H04L 12/70登記生效日:20151022變更事項:專利權人變更前權利人:奇智軟件(北京)有限公司變更后權利人:北京奇虎科技有限公司變更事項:地址變更前權利人:100016 北京市朝陽區酒仙橋路14號兆維大廈4層東側單元變更后權利人:100088 北京市西城區新街口外大街28號D座112室(德勝園區)變更事項:專利權人變更后權利人:奇智軟件(北京)有限公司|||授權|||實質審查的生效IPC(主分類):H04L 12/56申請日:20111230|||公開
IPC分類號: H04L12/70(2013.01)I; H04L29/06; H04L29/12 主分類號: H04L12/70
申請人: 奇智軟件(北京)有限公司
發明人: 丁振; 邊陸; 向明
地址: 100016 北京市朝陽區酒仙橋路14號兆維大廈4層東側單元
優先權:
專利代理機構: 北京潤澤恒知識產權代理有限公司 11319 代理人: 蘇培華
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201110457652.4

授權公告號:

|||102571579B||||||

法律狀態公告日:

2015.11.11|||2015.01.07|||2012.09.12|||2012.07.11

法律狀態類型:

專利申請權、專利權的轉移|||授權|||實質審查的生效|||公開

摘要

本申請提供了一種ARP報文處理方法及裝置,其中,ARP報文處理方法包括:獲取ARP報文,判斷ARP報文的類型;根據ARP報文的類型對ARP報文進行處理,包括:若ARP報文的類型為本機向外發送的廣播包,則判斷該廣播包是否為本機向網關發送的ARP請求包,若是,則將ARP請求包修改為ARP回應包,并將ARP回應包發送給網關;若否,則丟棄該廣播包;若ARP報文的類型為ARP回應包,則判斷該ARP回應包是否為本機發送給網關的ARP回應包,若是,則將該ARP回應包發送給網關;若否,則丟棄該ARP回應包。通過本申請,實現了在不影響上網情況下的ARP報文欺騙防御,保障了局域網的安全。

權利要求書

1.一種地址解析協議ARP報文處理方法,其特征在于,包括:
獲取ARP報文,判斷所述ARP報文的類型;
根據所述ARP報文的類型對所述ARP報文進行處理,包括:若所述
ARP報文的類型為本機向外發送的廣播包,則判斷該廣播包是否為所述本機
向網關發送的ARP請求包,若是,則將所述ARP請求包修改為ARP回應
包,并將所述ARP回應包發送給所述網關;若否,則丟棄該廣播包;若所
述ARP報文的類型為ARP回應包,則判斷該ARP回應包是否為所述本機
發送給所述網關的ARP回應包,若是,則將該ARP回應包發送給所述網關;
若否,則丟棄該ARP回應包。
2.根據權利要求1所述的方法,其特征在于,在根據所述ARP報文的
類型對所述ARP報文進行處理的步驟之后,還包括:
所述主機向所述網關所在的交換機發送交換機主動防御包,其中,所述
交換機主動防御包用于將所述交換機的內容可尋址存儲器CAM表中的所述
本機的表項數據刷新為正確的表項數據。
3.根據權利要求2所述的方法,其特征在于,所述交換機主動防御包
包括以太網源地址的信息和以太網目標地址的信息,所述以太網源地址為所
述本機的媒體訪問控制MAC地址,所述以太網目標地址為所述交換機的
MAC地址。
4.根據權利要求3所述的方法,其特征在于,所述交換機主動防御包
為以太網包,所述交換機主動防御包的長度與ARP請求包的長度相同,所
述交換機主動防御包中的以太網類型字段及其它數據字段全部置0。
5.根據權利要求2所述的方法,其特征在于,還包括:
在所述主機向所述網關所在的所述交換機發送所述交換機主動防御包
時,還以設定頻率發送標準ARP數據包。
6.根據權利要求1所述的方法,其特征在于,在所述獲取ARP報文,
判斷所述ARP報文的類型的步驟之前,還包括:
所述主機以不同的時間間隔向所述網關發送標準ARP數據包;
根據對所述發送的標準ARP數據包進行回應的ARP回應包,確定所述
網關的真實MAC地址。
7.根據權利要求6所述的方法,其特征在于,所述主機以不同的時間
間隔向所述網關發送標準ARP數據包的步驟包括:
所述主機以T×2n為時間間隔,向所述網關發送所述標準ARP數據包;
其中,T為設定的時間常量,n為所述標準ARP數據包的發包序號。
8.根據權利要求6所述的方法,其特征在于,所述主機以不同的時間
間隔向所述網關發送標準ARP數據包的步驟包括:
所述主機先以相同的時間間隔向所述網關發送設定次數的所述標準
ARP數據包,在間歇一個長于所述相同的時間間隔的時間段后,再以所述相
同的時間間隔向所述網關發送所述設定次數的所述標準ARP數據包。
9.根據權利要求6至8任一項所述的方法,其特征在于,所述根據對
所述發送的標準ARP數據包進行回應的ARP回應包,確定所述網關的真實
MAC地址的步驟包括:
獲取在所述不同的時間間隔回應所述發送的標準ARP數據包的所述
ARP回應包;
從獲取的所述ARP回應包中,確定所述網關的真實MAC地址。
10.根據權利要求9所述的方法,其特征在于,若從獲取的所述ARP
回應包中,確定的所述網關的真實MAC地址包括多個,則所述方法還包括:
所述主機使用確定的所述網關的多個真實MAC地址中的每個MAC地
址訪問公網;
若訪問成功,則將當前使用的訪問所述公網的網關的MAC地址,確定
為所述網關的真實MAC地址。
11.根據權利要求1所述的方法,其特征在于,在所述獲取ARP報文
的步驟之后,還包括:
判斷所述ARP報文中的網關IP地址與網關MAC地址的對應關系與所
述本機的ARP緩存表中的對應關系不一致,禁止修改所述ARP緩存表;
或者,判斷所述ARP報文中的本機IP地址與本機MAC地址的對應關
系與所述本機的ARP緩存表中的對應關系不一致,禁止修改所述ARP緩存
表。
12.一種地址解析協議ARP報文處理裝置,其特征在于,包括:
獲取判斷模塊,用于獲取ARP報文,判斷所述ARP報文的類型;
判斷執行模塊,用于根據所述ARP報文的類型對所述ARP報文進行處
理,包括:第一判斷執行模塊,用于若所述ARP報文的類型為本機向外發
送的廣播包,則判斷該廣播包是否為所述本機向網關發送的ARP請求包,
若是,則將所述ARP請求包修改為ARP回應包,并將所述ARP回應包發
送給所述網關;若否,則丟棄該廣播包;第二判斷執行模塊,用于若所述
ARP報文的類型為ARP回應包,則判斷該ARP回應包是否為所述本機發送
給所述網關的ARP回應包,若是,則將該ARP回應包發送給所述網關;若
否,則丟棄該ARP回應包。
13.根據權利要求12所述的裝置,其特征在于,還包括:
第一發送模塊,用于在所述判斷執行模塊根據所述ARP報文的類型對
所述ARP報文進行處理之后,向所述網關所在的交換機發送交換機主動防
御包,其中,所述交換機主動防御包用于將所述交換機的內容可尋址存儲器
CAM表中的所述本機的表項數據刷新為正確的表項數據。
14.根據權利要求13所述的裝置,其特征在于,所述交換機主動防御
包包括以太網源地址的信息和以太網目標地址的信息,所述以太網源地址為
所述本機的媒體訪問控制MAC地址,所述以太網目標地址為所述交換機的
MAC地址。
15.根據權利要求14所述的裝置,其特征在于,所述交換機主動防御
包為以太網包,所述交換機主動防御包的長度與ARP請求包的長度相同,
所述交換機主動防御包中的以太網類型字段及其它數據字段全部置0。
16.根據權利要求13所述的裝置,其特征在于,所述第一發送模塊,
還用于在向所述網關所在的所述交換機發送所述交換機主動防御包時,還以
設定頻率發送標準ARP數據包。
17.根據權利要求12所述的裝置,其特征在于,還包括:
第二發送模塊,用于在所述獲取判斷模塊獲取ARP報文,判斷所述ARP
報文的類型之前,以不同的時間間隔向所述網關發送標準ARP數據包;
網關地址獲取模塊,用于根據對所述發送的標準ARP數據包進行回應
的ARP回應包,確定所述網關的真實MAC地址。
18.根據權利要求17所述的裝置,其特征在于,所述第二發送模塊,
用于以T×2n為時間間隔,向所述網關發送標準ARP數據包;其中,T為設
定的時間常量,n為所述標準ARP數據包的發包序號。
19.根據權利要求17所述的裝置,其特征在于,所述第二發送模塊,
用于先以相同的時間間隔向所述網關發送設定次數的所述標準ARP數據包,
在間歇一個長于所述相同的時間間隔的時間段后,再以所述相同的時間間隔
向所述網關發送所述設定次數的所述標準ARP數據包。
20.根據權利要求17至19任一項所述的裝置,其特征在于,所述網關
地址獲取模塊,用于獲取在所述不同的時間間隔回應所述發送的標準ARP
數據包的所述ARP回應包;從獲取的所述ARP回應包中,確定所述網關的
真實MAC地址。
21.根據權利要求20所述的裝置,其特征在于,還包括:
網關地址選擇模塊,用于若所述網關地址獲取模塊確定的所述網關的真
實MAC地址包括多個,則使用確定的所述網關的多個真實MAC地址中的
每個MAC地址訪問公網;若訪問成功,則將當前使用的訪問所述公網的網
關的MAC地址,確定為所述網關的真實MAC地址。
22.根據權利要求12所述的裝置,其特征在于,還包括:
過濾模塊,用于在所述獲取判斷模塊獲取ARP報文之后,判斷所述ARP
報文中的網關IP地址與網關MAC地址的對應關系與所述本機的ARP緩存
表中的對應關系不一致,禁止修改所述ARP緩存表;或者,判斷所述ARP
報文中的本機IP地址與本機MAC地址的對應關系與所述本機的ARP緩存
表中的對應關系不一致,禁止修改所述ARP緩存表。

說明書

ARP報文處理方法及裝置

技術領域

本申請涉及網絡技術領域,特別是涉及一種ARP(Address?Resolution?
Protocol,地址解析協議)報文處理方法及裝置。

背景技術

ARP協議是TCP/IP(Transmission?Control?Protocol/Internet?Protocol,傳
輸控制協議/互聯網協議)協議棧中較低層的協議之一,其作用是實現IP地
址到以太網物理地址,即MAC(Media?Access?Control,媒體接入控制)地
址的轉換。

ARP協議通過目標設備的IP地址查詢目標設備的MAC地址,以保證
通信地順利進行。在局域網中,網絡數據被封裝成以太網幀,每幀數據中有
目標主機的MAC地址。一個主機要和另一個主機進行直接通信,必須要知
道目標主機的MAC地址,這個目標MAC地址是通過ARP協議獲得的。而
地址解析過程就是主機在發送數據幀前,將目標IP地址轉換成目標MAC地
址的過程。

使用ARP協議實現通信時,在每臺安裝有TCP/IP協議的電腦里都有一
個ARP緩存表,表里的IP地址與MAC地址是一一對應的,如表1所示。

??MAC
??IP
??01-01-01-01-01-01
??192.168.1.101
??02-02-02-02-02-02
??192.168.1.102
??03-03-03-03-03-03
??192.168.1.103
??04-04-04-04-04-04
??192.168.1.104

以主機A(192.168.1.100)向主機B(192.168.1.101)發送數據為例。當發
送數據時,主機A會在自己的ARP緩存表中尋找是否有目標IP地址。如果
找到了,也就知道了目標MAC地址,直接把目標MAC地址寫入幀里面發
送即可。如果在ARP緩存表中沒有找到相對應的IP地址,主機A就會在網
絡上發送一個ARP?Request包,Request包的目標MAC地址是
“FF.FF.FF.FF.FF.FF”,這表示進行廣播,向同一網段內的所有主機發出詢問
“192.168.1.101的MAC地址是什么?”,網絡上其他主機并不響應ARP
Request,主機B接收到這個幀時,會向主機A做出這樣的回應:
“192.168.1.101的MAC地址是02-02-02-02-02-02”。這樣,主機A就知道
了主機B的MAC地址,它就可以向主機B發送信息了。同時它還更新了自
己的ARP緩存表,下次再向主機B發送信息時,直接從ARP緩存表里查找。
主機B也會記錄下主機A的MAC地址,下次向主機A發送信息時,不用
再次廣播。

從以上ARP協議的通信過程可見,使用ARP緩存表通信高效且易于維
護,但同時,也在安全方面存在著缺陷。首先,主機A收到主機B的ARP
響應報文后,在自己的ARP緩存表中建立主機B的IP地址與MAC地址的
對應關系,但是主機A并不維護這種對應關系的真實性、有效性和一致性。
其次,主機A默認任務接收到的ARP響應報文都是合法的,甚至在主機A
沒有發送ARP請求報文的情況下,也會根據接收到的ARP響應報文改寫其
ARP緩存表;同樣,主機A也會在沒有ARP請求報文的情況下,向別的主
機發送ARP響應報文。這就為ARP報文攻擊提供了可能性。

ARP報文攻擊正是利用了ARP協議本身固有的缺陷,通過修改ARP數
據包的數據進行ARP欺騙,對數據進行嗅探劫持,比如,木馬可以通過修
改劫持數據進行掛馬盜號;P2P工具也會利用ARP欺騙原理控制局域網網
速,導致局域網速度分配不均衡,擾亂局域網環境等不良后果。

總之,需要本領域技術人員迫切解決的一個技術問題就是:如何能夠有
效防御ARP報文欺騙,提高局域網安全性。

發明內容

本申請所要解決的技術問題是提供一種ARP報文處理方法及裝置,以
解決現有技術不能有效防御ARP報文欺騙,保障局域網安全性的問題。

為了解決上述問題,本申請公開了一種ARP報文處理方法,包括:獲
取ARP報文,判斷所述ARP報文的類型;根據所述ARP報文的類型對所
述ARP報文進行處理,包括:若所述ARP報文的類型為本機向外發送的廣
播包,則判斷該廣播包是否為所述本機向網關發送的ARP請求包,若是,
則將所述ARP請求包修改為ARP回應包,并將所述ARP回應包發送給所
述網關;若否,則丟棄該廣播包;若所述ARP報文的類型為ARP回應包,
則判斷該ARP回應包是否為所述本機發送給所述網關的ARP回應包,若是,
則將該ARP回應包發送給所述網關;若否,則丟棄該ARP回應包。

優選地,在根據所述ARP報文的類型對所述ARP報文進行處理的步驟
之后,還包括:所述主機向所述網關所在的交換機發送交換機主動防御包,
其中,所述交換機主動防御包用于將所述交換機的內容可尋址存儲器CAM
表中的所述本機的表項數據刷新為正確的表項數據。

優選地,所述交換機主動防御包包括以太網源地址的信息和以太網目標
地址的信息,所述以太網源地址為所述本機的媒體訪問控制MAC地址,所
述以太網目標地址為所述交換機的MAC地址。

優選地,所述交換機主動防御包為以太網包,所述交換機主動防御包的
長度與ARP請求包的長度相同,所述交換機主動防御包中的以太網類型字
段及其它數據字段全部置0。

優選地,ARP報文處理方法還包括:在所述主機向所述網關所在的所述
交換機發送所述交換機主動防御包時,還以設定頻率發送標準ARP數據包。

優選地,在所述獲取ARP報文,判斷所述ARP報文的類型的步驟之前,
還包括:所述主機以不同的時間間隔向所述網關發送標準ARP數據包;根
據對所述發送的標準ARP數據包進行回應的ARP回應包,確定所述網關的
真實MAC地址。

優選地,所述主機以不同的時間間隔向所述網關發送標準ARP數據包
的步驟包括:所述主機以T×2n為時間間隔,向所述網關發送所述標準ARP
數據包;其中,T為設定的時間常量,n為所述標準ARP數據包的發包序號。

優選地,所述主機以不同的時間間隔向所述網關發送標準ARP數據包
的步驟包括:所述主機先以相同的時間間隔向所述網關發送設定次數的所述
標準ARP數據包,在間歇一個長于所述相同的時間間隔的時間段后,再以
所述相同的時間間隔向所述網關發送所述設定次數的所述標準ARP數據包。

優選地,所述根據對所述發送的標準ARP數據包進行回應的ARP回應
包,確定所述網關的真實MAC地址的步驟包括:獲取在所述不同的時間間
隔回應所述發送的標準ARP數據包的所述ARP回應包;從獲取的所述ARP
回應包中,確定所述網關的真實MAC地址。

優選地,若從獲取的所述ARP回應包中,確定的所述網關的真實MAC
地址包括多個,則所述方法還包括:所述主機使用確定的所述網關的多個真
實MAC地址中的每個MAC地址訪問公網;若訪問成功,則將當前使用的
訪問所述公網的網關的MAC地址,確定為所述網關的真實MAC地址。

優選地,在所述獲取ARP報文的步驟之后,還包括:判斷所述ARP報
文中的網關IP地址與網關MAC地址的對應關系與所述本機的ARP緩存表
中的對應關系不一致,禁止修改所述ARP緩存表;或者,判斷所述ARP報
文中的本機IP地址與本機MAC地址的對應關系與所述本機的ARP緩存表
中的對應關系不一致,禁止修改所述ARP緩存表。

為了解決上述問題,本申請還公開了一種ARP報文處理裝置,包括:
獲取判斷模塊,用于獲取ARP報文,判斷所述ARP報文的類型;判斷執行
模塊,用于根據所述ARP報文的類型對所述ARP報文進行處理,包括:第
一判斷執行模塊,用于若所述ARP報文的類型為本機向外發送的廣播包,
則判斷該廣播包是否為所述本機向網關發送的ARP請求包,若是,則將所
述ARP請求包修改為ARP回應包,并將所述ARP回應包發送給所述網關;
若否,則丟棄該廣播包;第二判斷執行模塊,用于若所述ARP報文的類型
為ARP回應包,則判斷該ARP回應包是否為所述本機發送給所述網關的
ARP回應包,若是,則將該ARP回應包發送給所述網關;若否,則丟棄該
ARP回應包。

優選地,ARP報文處理裝置還包括:第一發送模塊,用于在所述判斷執
行模塊根據所述ARP報文的類型對所述ARP報文進行處理之后,向所述網
關所在的交換機發送交換機主動防御包,其中,所述交換機主動防御包用于
將所述交換機的內容可尋址存儲器CAM表中的所述本機的表項數據刷新為
正確的表項數據。

優選地,所述交換機主動防御包包括以太網源地址的信息和以太網目標
地址的信息,所述以太網源地址為所述本機的媒體訪問控制MAC地址,所
述以太網目標地址為所述交換機的MAC地址。

優選地,所述交換機主動防御包為以太網包,所述交換機主動防御包的
長度與ARP請求包的長度相同,所述交換機主動防御包中的以太網類型字
段及其它數據字段全部置0。

優選地,所述第一發送模塊,還用于在向所述網關所在的所述交換機發
送所述交換機主動防御包時,還以設定頻率發送標準ARP數據包。

優選地,ARP報文處理裝置還包括:第二發送模塊,用于在所述獲取判
斷模塊獲取ARP報文,判斷所述ARP報文的類型之前,以不同的時間間隔
向所述網關發送標準ARP數據包;網關地址獲取模塊,用于根據對所述發
送的標準ARP數據包進行回應的ARP回應包,確定所述網關的真實MAC
地址。

優選地,所述第二發送模塊,用于以T×2n為時間間隔,向所述網關發
送標準ARP數據包;其中,T為設定的時間常量,n為所述標準ARP數據
包的發包序號。

優選地,所述第二發送模塊,用于先以相同的時間間隔向所述網關發送
設定次數的所述標準ARP數據包,在間歇一個長于所述相同的時間間隔的
時間段后,再以所述相同的時間間隔向所述網關發送所述設定次數的所述標
準ARP數據包。

優選地,所述網關地址獲取模塊,用于獲取在所述不同的時間間隔回應
所述發送的標準ARP數據包的所述ARP回應包;從獲取的所述ARP回應
包中,確定所述網關的真實MAC地址。

優選地,ARP報文處理裝置還包括:網關地址選擇模塊,用于若所述網
關地址獲取模塊確定的所述網關的真實MAC地址包括多個,則使用確定的
所述網關的多個真實MAC地址中的每個MAC地址訪問公網;若訪問成功,
則將當前使用的訪問所述公網的網關的MAC地址,確定為所述網關的真實
MAC地址。

優選地,ARP報文處理裝置還包括:過濾模塊,用于在所述獲取判斷模
塊獲取ARP報文之后,判斷所述ARP報文中的網關IP地址與網關MAC地
址的對應關系與所述本機的ARP緩存表中的對應關系不一致,禁止修改所
述ARP緩存表;或者,判斷所述ARP報文中的本機IP地址與本機MAC地
址的對應關系與所述本機的ARP緩存表中的對應關系不一致,禁止修改所
述ARP緩存表。

與現有技術相比,本申請具有以下優點:

本申請通過判斷ARP報文的類型,根據ARP報文類型對ARP報文進
行不同處理,阻止主機向其它主機發送的廣播報文,以及回應其它主機發送
的ARP請求報文;放過發送給風頭的ARP回應包;而對于本機向網關發送
的ARP請求包,則修改為ARP回應包后再進行發送。通過上述ARP報文
的處理,劫持本機向局域網其它主機發送ARP,使本機MAC地址不被掃描
到,實現了本機的局域網隱身;劫持本機對網關的廣播包并修改為定向回應
包,使本機與網關之間的數據雙向可送達,確保本機能夠訪問公網。因本機
MAC地址不能被其它主機掃描到,因此,其它主機無法使用ARP報文冒充
本機,從而有效避免了ARP報文欺騙,保障了局域網安全。并且,本機與
網關之間的數據雙向可送達,使得本機能夠訪問公網,實現了在不影響上網
情況下的ARP報文欺騙防御,在保障了局域網安全的同時,也提高了用戶
的使用體驗。

附圖說明

圖1是根據本申請實施例一的一種ARP報文處理方法的步驟流程圖;

圖2是根據本申請實施例二的一種ARP報文處理方法的步驟流程圖;

圖3是根據本申請實施例三的一種ARP報文處理方法的步驟流程圖;

圖4是圖3所示的ARP報文處理方法中的主機實現局域網隱身的步驟
流程圖;

圖5是根據本申請實施例四的一種ARP報文處理裝置的結構框圖。

具體實施方式

為使本申請的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖
和具體實施方式對本申請作進一步詳細的說明。

實施例一

參照圖1,示出了根據本申請實施例一的一種ARP報文處理方法的步驟
流程圖。

本實施例的ARP報文處理方法包括以下步驟:

步驟S102:獲取ARP報文,判斷ARP報文的類型。

步驟S104:若ARP報文的類型為本機向外發送的廣播包,則判斷該廣
播包是否為本機向網關發送的ARP請求包,若是,則將ARP請求包修改為
ARP回應包,并將ARP回應包發送給網關;若否,則丟棄該廣播包。

將ARP請求包修改為ARP回應包,使得該數據包定向發送給網關,而
不會被廣播發送,從而使主機的MAC地址不會被其它主機掃描到,就不會
被惡意冒充或使用;并且,將ARP請求包修改為ARP回應包發送給網關,
使主機和網關之間的數據雙向可達,確保了主機能夠訪問公網。

步驟S106:若ARP報文的類型為ARP回應包,則判斷該ARP回應包
是否為本機發送給網關的ARP回應包,若是,則將該ARP回應包發送給網
關;若否,則丟棄該ARP回應包。

放過發送給網關的ARP回應包,而阻止主機回應網內其它主機的ARP
請求,也使得主機的MAC地址不會被其它主機掃描到,且保證了主機和網
關之間的數據雙向可達,使主機能夠訪問公網。

通過本實施例,實現了根據ARP報文類型對ARP報文進行不同處理,
阻止主機向其它主機發送的廣播報文,以及回應其它主機發送的ARP請求
報文;放過發送給風頭的ARP回應包;而對于本機向網關發送的ARP請求
包,則修改為ARP回應包后再進行發送。通過上述ARP報文的處理,劫持
本機向局域網其它主機發送ARP,使本機MAC地址不被掃描到,實現了本
機的局域網隱身;劫持本機對網關的廣播包并修改為定向回應包,使本機與
網關之間的數據雙向可送達,確保本機能夠訪問公網。因本機MAC地址不
能被其它主機掃描到,因此,其它主機無法使用ARP報文冒充本機,從而
有效避免了ARP報文欺騙,保障了局域網安全。并且,本機與網關之間的
數據雙向可送達,使得本機能夠訪問公網,實現了在不影響上網情況下的
ARP報文欺騙防御,在保障了局域網安全的同時,也提高了用戶的使用體驗。

實施例二

參照圖2,示出了根據本申請實施例二的一種ARP報文處理方法的步驟
流程圖。

本實施例的ARP報文處理方法包括以下步驟:

步驟S202:進行網關探測,獲取真實的網關MAC地址。

真實的網關MAC地址是主機和網關正常通信的基礎,在實現時,本領
域技術人員可以采用任意適當的方式獲取真實的網關MAC地址。

優選地,本實施例采用以不同的時間間隔向網關發送標準ARP數據包,
進而確定真實的網關MAC地址。

一種優選的以不同的時間間隔向網關發送標準ARP數據包的方式為變
頻發包法,即:采用間隔時間為T×2n發送標準的ARP數據包,其中,T為
設定的時間常量,一般為能夠滿足需求的最小間隔時間(間隔時間太短可能
無法完成抓包,間隔時間太長導致系統信息交互時間長,處理效率低下),
如10ms,n為發包序號。當以變頻發包方式發送一定數量的交換機主動防御
包后,如設定n為5,則可以根據接收到的回應于交換機主動防御包的ARP
回應包確定真實的網關MAC地址,即,從ARP回應包中取出對交換機主動
防御包一一回應的MAC地址作為真實的網關MAC地址。這是由于ARP欺
騙者慣用定時發包方式進行網關欺騙,因此,當ARP欺騙者接收到標準ARP
數據包進行回應時,會采用定時回應的方式,即每隔固定的時間(如10ms)
回應一次。當采用變頻發包法時,以間隔時間分別為10ms、20ms和40ms
為例,主機在這三個時間間隔點分別向網關發送三個ARP數據包,真實的
網關會在同樣的變頻時間間隔回應于這三個ARP數據包,分別向主機發送
三個ARP回應包;而ARP欺騙者因采用定時回應方式,會在第二個時間間
隔即20ms內向主機回應兩個回應包,在第三個時間間隔即40ms內向主機
回應四個回應包。通過對收取的回應包進行判斷,可以使主機準確識別出真
實的網關。因此,采用變頻發包法,能夠確保最多只要三個包,即可鑒別出
定時輪詢發送的網關欺騙包,進而識別出真正的網關MAC。

另一種優選的以不同的時間間隔向網關發送標準ARP數據包的方式為
間歇發包法,即,主機先以相同的時間間隔向網關發送設定次數的標準ARP
數據包,在間歇一個長于相同的時間間隔的時間段后,再以相同的時間間隔
向網關發送設定次數的標準ARP數據包。例如,主機以10ms為間隔向網關
連續發送3個數據包,然后間歇30ms,再以10ms為間隔向網關連續發送3
個數據包,如此反復。真實的網關在主機間歇的30ms內不會再向主機發送
回應包,而ARP欺騙者仍會定時向主機發送回應包,在間隔的30ms內,主
機仍會收到ARP欺騙者發送的三個回應包。主機對收取的回應包進行判斷,
將不同的時間間隔回應的回應包中的網關MAC地址確定為網關的真實
MAC地址。

需要注意的是,若在網絡初始設置時,技術人員沒有對多個交換機的IP
地址進行設置,而使多個交換機使用了相同的默認IP地址。此時,進行網
關探測確定的真實的網關MAC地址可能有多個。這時,主機可以依次嘗試
使用這多個網關MAC地址訪問公網,并判斷訪問是否成功,當使用某個網
關MAC地址訪問公網成功時,則將該網關MAC地址確認為網關的真實
MAC地址,而不再使用其它網關MAC地址進行嘗試。

需要說明的是,本步驟和步驟S204的執行可以不分先后順序。

步驟S204:設置ARP緩存表保護策略,防止正確的ARP緩存表被篡改。

防止篡改方法(即ARP緩存表保護策略)有多種,本實施例中采用了
入口過濾欺騙包方法,即,判斷入棧的ARP報文中的網關IP地址與網關
MAC地址的對應關系與本機的ARP緩存表中的對應關系是否一致,若不一
致,禁止修改本機的ARP緩存表;或者,判斷入棧的ARP報文中的本機IP
地址與本機MAC地址的對應關系與本機的ARP緩存表中的對應關系是否一
致,若不一致,禁止修改本機的ARP緩存表。采用入口過濾方法,阻止非
法ARP包,允許合法的ARP包,由于從入口進行了攔截,ARP地址表無法
被欺騙。其優點在于,無需禁止用戶對ARP地址表的操作即可實現ARP地
址表保護功能。

步驟S206:獲取ARP報文。

步驟S208:判斷ARP報文中的網關IP地址與網關MAC地址的對應關
系,或者,本機IP地址與本機MAC地址的對應關系,是否與本機的ARP
緩存表中的對應關系一致,若不一致,則丟棄該報文,并告警,本次ARP
報文處理流程結束;若一致,則執行步驟S210。

步驟S210:判斷ARP報文的類型,若為本機向外發送的廣播包,執行
步驟S212;若為ARP回應包,則執行步驟S218。

步驟S212:判斷該廣播包是否為本機向網關發送的ARP請求包,若是,
則執行步驟S214;若否,則執行步驟S216。

步驟S214:將該ARP請求包修改為ARP回應包,將網關發送該ARP
回應包,本次ARP報文處理結束。

步驟S216:丟棄該廣播包,本次ARP報文處理結束。

步驟S218:判斷該ARP回應包是否為本機向網關發送的ARP回應包,
若是,則執行步驟S220;若否,則執行步驟S222。

步驟S220:向網關發送該ARP回應包,本次ARP報文處理結束。

步驟S222:丟棄該ARP回應包,本次ARP報文處理結束。

通過本實施例,使用入口過濾欺騙包方法保護了主機上的ARP緩存表,
防止其被惡意篡改;使用交換機主動防御包和變頻發包法,確保了主機上的
網關MAC地址的正確性;使用根據ARP報文的類型對ARP報文進行不同
處理的方式,不但實現了主機的局域網隱身,使其MAC地址不被網內其它
主機掃描到,也實現了本機與公網的正常通信。可見,通過本實施例,既有
效避免了ARP報文欺騙,保障了局域網安全,又提高了用戶的使用體驗。

實施例三

參照圖3,示出了根據本申請實施例三的一種ARP報文處理方法的步驟
流程圖。

本實施例在防御ARP報文欺騙的基礎上,實現了交換機端口欺騙的防
御。

交換機端口欺騙,是針對交換機數據交換原理,對交換機中的CAM表
產生的欺騙。通過交換機端口欺騙可以進行數據嗅探劫持,理論上如同ARP
欺騙一樣,木馬可以通過修改劫持數據進行掛馬盜號,P2P工具也會利用交
換機端口欺騙原理控制局域網網速,導致局域網速度分配不均衡,擾亂局域
網環境。目前在安全領域,并沒有很好的技術解決方案可以防御這種攻擊。
而本實施例采用了局域網隱身技術,以及交換機主動防御技術,從而能夠有
效抵御交換機端欺騙口攻擊。

總結交換機的端口欺騙原理,以及ARP協議原理以及應用可知,防止
交換機端口欺騙,一方面需要保證主機“隱身”使其MAC不可探測,欺騙
者得不到主機MAC,無法實施欺騙;另一方面對于已經被欺騙的交換機,
需要發起主動防御數據包,將CAM表刷回正確值。而實現防御交換機端口
欺騙的前提是保證主機已經正確獲得網關MAC,因此,主機“隱身”前先
要完成網關探測,同時,最好能夠完成網關保護。本實施例中,采用了變頻
發包法實現了網關探測功能;而網關保護功能采用了過濾欺騙包方法。在實
現了網關探測和網關保護的基礎上,進行主機的局域網隱身,從而實現防御
交換機端口欺騙。并且,如果隱身失敗,還可以通過交換機主動防御包刷新
CAM表,以保證交換機CAM表的正確性。

具體地,實現上述功能的ARP報文處理方法包括以下步驟:

步驟S302:主機使用變頻發包法發送標準ARP數據包,探測真實網關。

在使用變頻發包法發送標準ARP數據包時,采用間隔時間為T×2n發送
交換機主動防御包,其中,T為設定的時間常量,n為發包序號。由于ARP
欺騙者慣用定時發包方式進行網關欺騙,因此采用本實施例的變頻發包法,
能夠確保最多只要三個包,即可鑒別出定時輪詢發送的網關欺騙包,進而識
別出真正的網關MAC。

一種使用變頻發包法探測真實網關的實現方式如下:

其中,一種ARP數據包的實現如下:


發送上述ARP數據包時,使用發包頻率變頻公式T×2n,本實施例中,
取T=10ms,n=0,1,2,3,4,則5組數據包間隔周期分別為T1=10,T2=20,
T3=40,T4=80。

對于主機來說,每一次網關探測包含一次收包過程和一次發包過程,邏
輯如下:

開啟收報過濾→發送構造包→等待Tn時間→關閉收包過濾→提取收包
緩沖區中的網關IP的回應ARP包。

本實施例中,重復5次上次網關控制邏輯后,從回應的ARP回應包中
取出對交換機主動防御包一一回應的MAC作為網關MAC(即網關所在的
交換機的MAC),實現真實網關MAC地址的獲取。

步驟S304:主機使用過濾欺騙包方法保護本機ARP緩存表,實現網關
保護功能。

具體地,包括:驅動(包括發送ARP的驅動和截獲ARP的驅動)攔截
所有入棧ARP包_arpPacket;分析其中的_arphdr::arp_spa為網關IP,而
_ehhdr::eh_src或_arphdr::arp_sha不是網關MAC,則丟棄該數據包,并向R3
(操作系統Ring級別的Ring3層)拋出網關被攻擊警告消息;或者,分析
其中的_arphdr::arp_spa為本機IP,而_ehhdr::eh_src或_arphdr::arp_sha不是
本機MAC,則丟棄該數據包,并向R3拋出IP地址沖突警告消息。

需要說明的是,步驟S302和步驟S304的執行可不分先后順序。

步驟S306:根據ARP報文類型對ARP報文進行不同處理,實現主機的
局域網隱身。

實現主機局域網隱身的方法較多,本實施例采用ARP協議重定向法實
現主機的局域網隱身。

以對局域網主機A進行隱身為例,其實現方法如下:

第一,阻止主機A對外發送廣播包:因為廣播包會被交換機泛洪,送到
局域網內的每一臺主機,而欺騙者主機可通過設置網卡混雜模式1,偵聽到
主機A的MAC,從而使主機A被局域網內的其它主機發現。

第二,阻止主機A回應局域網內的ARP?Request包(ARP請求包),防
止主機A回應欺騙主機發送的ARP?Request包。

第三,放過發給網關的ARP?Reply包(ARP回應包);如果本機向網關
發送ARP?Request包,需要攔截并修改為ARP?Reply包發送給網關。因為必
須放過ARP?Replay,且修改ARP?Request包為ARP?Reply包并發送給網關才
能夠保證主機A能夠訪問廣域網。

完成上述的三點即可實現主機的局域網隱身功能。

一種通過完成上述三點實現局域網隱身的流程如圖4所示,包括:

步驟S3062:在R0(操作系統Ring級別的Ring0層)驅動中截獲本機
ARP出棧包。

步驟S3064:分析出棧包的目標IP是否是網關,如果不是網關則直接將
該ARP包丟棄;如果是網關則執行步驟S3066。

步驟S3066:將數據包緩存,并通過Event通知R3讀取ARP緩存數據。

步驟S3068:R3收到Event后讀取ARP緩存數據_arpPacket。

步驟S30610:R3判斷ARP包的目標MAC是否是廣播地址,若是,則
執行步驟S30612;若否,則執行步驟S30614。

具體地,包括:R3分析得到的以太網包頭結構_ehhdr,ARP數據包結
構_arphdr;通過判斷其中的eh_dst為廣播地址或arp_tha為廣播地址來判斷
ARP包的目標MAC是否是廣播地址。

其中,以太網包頭結構_ehhdr如下:


其中,ARP數據包結構_arphdr如下:


步驟S30612:R3修改ARP包為定向應答包。

本步驟中,R3在判斷en_dst為廣播地址或arp_tha為廣播地址后,修改
ARP包重新封包,包括:在原有數據包基礎上修改eh_dst和arp_tha為網關
地址,修改arp_op=0x0002;重新封包后調用驅動的發包接口發送ARP包。

步驟S30614:調用驅動的發包接口發送該ARP包。

步驟S308:若主機的局域網隱身失敗,主機向交換機發送交換機主動
防御包。

主機的局域見網隱身功能保證了主機不被欺騙主機發現,如果已經被欺
騙主機發現,可通過交換機主動防御包刷新CAM表。

其中,交換機主動防御包是專用于刷新交換機CAM
(Content-Addressable?Memory,內容可尋址存儲器)表的數據包,主機通過
發送交換機主動防御包能夠確保交換機CAM表中與該主機相關的表項的數
據正確性,防止網關及其所在的交換機被欺騙。

交換機主動防御包要進行有效的交換機端口欺騙防御,必須滿足如下條
件:(1)交換機主動防御包長度不能太長,主動防御包長度過長會導致局域
網流量過大,影響局域網吞吐量,如長度可以小于或等于標準ARP請求包
的長度;(2)交換機主動防御包不能為ARP包,ARP包會導致網關頻繁刷
新ARP地址,影響網關性能;(3)交換機主動防御包不能被交換機泛洪,
如果泛洪,有可能被欺騙主機發現。

為滿足上述條件,本申請中構造了一個特殊的以太網包,采用偽ARP
包的形式,包括以太網源地址、以太網目標地址、以太網類型及其它數據字
段,其中,以太網源地址設置為本機的MAC地址,以太網目標地址設置為
交換機的MAC地址,優選地,其它字段均設置為0。本實施例中,構造的
交換機主動防御包的長度等于ARP包長度,以太網源地址為本機,以太網
目標地址為網關,以太網類型為0,其它數據全部填0。對于這類非標準包,
交換機會取以太網源地址刷新本機CAM表;此包目的MAC是網關(網關
所在的交換機)也不會被泛洪。交換機主動防御包除了刷新CAM表外沒有
任何功能,對網絡設備造成的負擔最小。

考慮到實際場景中交換機端口欺騙與ARP欺騙相伴產生,因此本實施
例優選地采用了混合發包法,即在發送交換機主動防御包時,也以設定頻率
發送標準ARP數據包(ARP反欺騙包),頻率的設定可根據實際防御效果調
節。混合發包頻率可以根據實驗室測試結果設定,反欺騙效果良好。

優選地,可以根據上述以太網包頭結構_ehhdr和ARP數據包結構_arphdr
構造交換機主動防御包_arpPacket。該交換機主動防御包_arpPacket的結構可
以如下所示:


其中,_ehhdr::eh_dst填寫網關地址,ehhdr::eh_src填寫本機地址,
_ehhdr::eh_type填0;結構_arphdr全部填0。然后,調用發包驅動,每10ms
發送一幀,循環發包。

通過本實施例,(1)實現了主機的局域網隱身,劫持本機向局域網其它
主機發送ARP,使主機MAC地址不被掃描到;劫持主機對網關的廣播包并
修改為定向回應包,使主機與網關之間的數據雙向可送達,確保主機能夠訪
問公網。(2)構造反交換機欺騙包,即交換機主動防御包,是只有目標MAC
和源MAC的空以太網包,刷新交換機CAM表,防止CAM表被欺騙;(3)
采用變頻(T×2n)發包法獲取真實網關MAC:ARP欺騙者慣用定時發包
方式進行網關欺騙,本實施例采用間隔時間為(T×2n)方法進行發包,T
為最小間隔時間,n為發包序號。這種發包方法確保最多只要三個包,即可
別定時輪詢發送的網關欺騙包,識別出真正的網關MAC。(4)采用過濾欺
騙包方法保護了本機ARP地址表。

實施例四

參照圖5,示出了根據本申請實施例四的一種ARP報文處理裝置的結構
框圖。

本實施例的ARP報文處理裝置包括:獲取判斷模塊502,用于獲取ARP
報文,判斷ARP報文的類型;判斷執行模塊504,用于根據ARP報文的類
型對ARP報文進行處理,包括:第一判斷執行模塊5042,用于若ARP報文
的類型為本機向外發送的廣播包,則判斷該廣播包是否為本機向網關發送的
ARP請求包,若是,則將ARP請求包修改為ARP回應包,并將ARP回應
包發送給網關;若否,則丟棄該廣播包;第二判斷執行模塊5044,用于若
ARP報文的類型為ARP回應包,則判斷該ARP回應包是否為本機發送給網
關的ARP回應包,若是,則將該ARP回應包發送給網關;若否,則丟棄該
ARP回應包。

優選地,本實施例的ARP報文處理裝置還包括:第一發送模塊506,用
于在判斷執行模塊504根據ARP報文的類型對ARP報文進行處理之后,向
網關所在的交換機發送交換機主動防御包,其中,交換機主動防御包用于將
交換機的內容可尋址存儲器CAM表中的本機的表項數據刷新為正確的表項
數據。

優選地,交換機主動防御包包括以太網源地址的信息和以太網目標地址
的信息,以太網源地址為本機的MAC地址,以太網目標地址為交換機的
MAC地址。

優選地,交換機主動防御包為以太網包,交換機主動防御包的長度與
ARP請求包的長度相同,交換機主動防御包中的以太網類型字段及其它數據
字段全部置0。

優選地,第一發送模塊506,還用于在向網關所在的交換機發送交換機
主動防御包時,以設定頻率發送標準ARP數據包。

優選地,本實施例的ARP報文處理裝置還包括:第二發送模塊508,用
于在獲取判斷模塊502獲取ARP報文,判斷ARP報文的類型之前,以不同
的時間間隔向所述網關發送標準ARP數據包;網關地址獲取模塊510,用于
根據對發送的標準ARP數據包進行回應的ARP回應包,確定網關的真實
MAC地址。

優選地,第二發送模塊508,用于以T×2n為時間間隔,向網關發送標
準ARP數據包;其中,T為設定的時間常量,n為標準ARP數據包的發包
序號。

優選地,第二發送模塊508,用于先以相同的時間間隔向網關發送設定
次數的標準ARP數據包,在間歇一個長于所述相同的時間間隔的時間段后,
再以所述相同的時間間隔向網關發送所述設定次數的標準ARP數據包。

優選地,網關地址獲取模塊510用于獲取在所述不同的時間間隔回應發
送的標準ARP數據包的的ARP回應包;從獲取的ARP回應包中,確定網
關的真實MAC地址。

優選地,本實施例的ARP報文處理裝置還包括:網關地址選擇模塊512,
用于若網關地址獲取模塊510確定的網關的真實MAC地址包括多個,則使
用確定的網關的多個真實MAC地址中的每個MAC地址訪問公網;若訪問
成功,則將當前使用的訪問公網的網關的MAC地址,確定為網關的真實
MAC地址。

優選地,本實施例的ARP報文處理裝置還包括:過濾模塊514,用于在
獲取判斷模塊502獲取ARP報文之后,判斷ARP報文中的網關IP地址與網
關MAC地址的對應關系與本機的ARP緩存表中的對應關系不一致,禁止修
改ARP緩存表;或者,判斷ARP報文中的本機IP地址與本機MAC地址的
對應關系與本機的ARP緩存表中的對應關系不一致,禁止修改ARP緩存表。

本實施例的ARP報文處理裝置用于實現前述多個方法實施例中的ARP
報文處理方法,并具有相應的ARP報文處理方法的有益效果,在此不再贅
述。

本申請的ARP報文處理方案對原有ARP防火墻技術進行了改進,使
ARP防火墻具有更完善的網關探測、綁定網關、主動防御ARP攻擊等功能,
進而通過這些功能實現反交換機端口欺騙。

其中,(1)網關探測功能用來找到正確的網關,必須做到即使局域網內
有ARP欺騙情況下也能夠正確綁定。而SendArp(Win32?API)無法識別欺
騙包,不能用于網關探測,本申請中采用了驅動發送ARP?Request包,程序
接受ARP?Reply包進行行為分析,從真假ARP回應包中識別真正的網關
MAC。(2)網關保護功能一是正確探測網關MAC,二是保護正確的ARP
地址表防止篡改。防止篡改方法有多種,本申請采用入口過濾方法,阻止非
法ARP包,允許合法的ARP包。由于從入口進行了攔截,ARP地址表無法
被欺騙。其優點在于,無需禁止用戶對ARP地址表的操作即可實現ARP地
址表保護功能。(3)網關探測和網關保護功能只能夠保證主機不被欺騙,不
能夠保證網關不被欺騙,防止網關被欺騙,必須通過ARP主動防御功能防
止網關被欺騙。

當前的局域網內以交換機設備為主,基于交換機欺騙的軟件被越來越多
的人利用,限制他人網速劫持他人流量,甚至竊取他人網絡數據。本申請的
局域網防護對ARP防火墻進行了升級,實現了反交換機端口欺騙的局域網
防護,能夠有效防止木馬病毒利用交換機端口欺騙危害網絡,同時有效抵御
了P2P工具擾亂局域網環境的行為。

需要說明的是,本申請的方案不針對靜態綁定交換機的情形。

本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明
的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見
即可。對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比
較簡單,相關之處參見方法實施例的部分說明即可。

以上對本申請所提供的一種ARP報文處理方法和裝置進行了詳細介紹,
本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例
的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的
一般技術人員,依據本申請的思想,在具體實施方式及應用范圍上均會有改
變之處,綜上所述,本說明書內容不應理解為對本申請的限制。

關于本文
本文標題:ARP報文處理方法及裝置.pdf
鏈接地址:http://www.wwszu.club/p-6420999.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大