邢金閣,劉 揚
(1.東北農業大學網絡信息中心,哈爾濱 150030;2.哈爾濱工業大學(威海)計算機科學與技術學院,山東 威海 2642099)
在局域網中,兩臺計算機收發數據是根據接收方MAC地址進行尋址,由于物理地址(MAC)是平面地址,考慮到規模化及管理問題,目前采用根據IP尋址方式。如果發送方主機僅知道IP地址,不知道接收方主機MAC地址,在數據包發送前就需得到接收方主機MAC地址[1]。ARP協議工作在局域網的數據鏈路層,完成32位IP地址到48位MAC地址映射,實現對接收方主機進行物理尋址。網絡攻擊者通過ARP協議自身漏洞,采用ARP欺騙方式對這種映射關系進行更改,從而破壞正常網絡傳輸。
在以太網中,數據包傳輸依靠MAC地址,IP地址與MAC對應關系依靠動態生成ARP表。ARP的緩存表能有效保證數據傳輸。ARP表實現機制不完善,當主機收到ARP的應答包后,它并不會主動驗證這個應答包真實性,而將應答包里MAC地址與IP映射關系替換掉原有的ARP緩存表里映射信息。由于ARP請求是以廣播方式進行(目的MAC為FFFFFF),局域網內任意一臺主機如未接到地址解析請求,它會向接收主機發送ARP應答包,從而增大ARP欺騙的可行性,為ARP欺騙提供條件[2]。常見ARP欺騙方式主要有監聽、惡意攻擊和截取等。
監聽是比較常用的一種攻擊方式,發動攻擊的主機插入到兩個正常通信主機之間,用這種方式得到通信雙方通信信息,為了更好獲取通信信息,監聽者需向兩個通信主機轉發信息從而保證使雙方通信能夠繼續。目前有外網監聽和內網監聽。
1.1.1 外網監聽
假設在同一網段內的主機A與主機B進行通信,主機C為攻擊者并處于外網中,要監聽A與B主機通信內容,具體示意圖如圖1所示。
主機C通過網關(或者路由器)監聽A和B的通信信息,考慮到信息從內網到外網存活時間(TTL),攻擊者通過修改IP分組TTL,從而給發出欺騙包預留足夠時間。C發送給A的ARP應答包中源IP地址為192.168.1.20、源物理地址為AB-AB-AB-AB-AB-AB。主要工作原理為:A接收ARP應答包后,更新網絡緩存,將信息發送給B主機時尋址方式是按攻擊者主機C物理地址,由于ARP協議作用范圍只能限制在局域網中,而C主機在局域網外部,這時C主機利用ICMP協議查找并更新A主機所在路由器路由表,本來是要發給B主機信息,先經過路由器,由路由器轉發給攻擊者。發送給B信息轉移到C主機,實現攻擊者對A主機監聽。根據同樣的道理,攻擊者同時實現對B主機監聽。

圖1 外網監聽過程Fig.1 Procedure of monitoring outside the subnet
1.1.2 內網監聽
在同一局域網內有A、B、C主機,假設C為攻擊者且監聽A和B主機間通信信息。具體攻擊見圖2。

圖2 內網監聽過程Fig.2 Procedure of monitoring inside the subnet
內網監聽的主要工作原理:C主機首先獲取到A和B主機IP地址,通過多種方法獲知A和B主機物理地址,例如通過ARP請求、響應信息或通過ping命令等[3]。然后C主機將網卡功能擴展,使之具有轉發功能,該模式被稱為混雜模式,C主機構造ARP應答包發送給A主機,其中源IP地址192.168.1.20、源物理地址AB-AB-AB-AB-ABAB。
ARP協議就有漏洞,攻擊者偽造ARP包,將該包發送給A主機,A主機在接收到攻擊者ARP應答包后,開始更新網絡緩存,與此同時,攻擊者繼續用同樣的方式向主機B發送ARP應答包,其中源IP地址為192.168.1.10、源物理地址為AB-AB-ABAB-AB-AB,從而完成ARP欺騙過程。
在信息安全等相關的技術中,惡意攻擊是指網絡內部人員有計劃地竊聽、偷竊和損壞信息,或拒絕其他授權用戶的訪問。局域網內的攻擊者一般采用持續對網內所有的ARP請求采取應答的手段,惡意填入不存在MAC地址,導致主機在更新ARP緩存時,無法正確連接到目標主機,導致通訊中斷。另一方面,目標主機持續接收到大量垃圾信息,目標主機丟掉其他源主機發送信息,導致大量數據發送至網關,使網關的負荷增加,出現網絡阻塞,無法維持正常通信[4]。惡意攻擊是一種比較常見網絡攻擊方式。
網絡安全中的截取技術中,攻擊者偽裝成收信方,用收信方的身份與送信方進行通信。假設C主機為攻擊者,A主機為源主機,B為收信方目的主機,C主機偽裝成A主機向B主機進行通信,以A主機的身份向B主機發送錯誤信息,導致A主機與B主機中斷鏈接,攻擊者C主機采用B主機身份與A主機通信,從而獲取雙方通信信息。
在網絡信息安全技術中,對ARP欺騙最常用的一種檢測方式就是核對本地ARP緩存中IP地址與物理地址對應關系,再結合ARP請求應答情況來檢測網絡中是否存在ARP欺騙,檢測方法有ARP應答分析法、匹配IP法和數據幀檢測法。
這是一種簡便實用檢測方法,由ARP欺騙機制可知,攻擊者必須不間斷重復向目的主機發送報文,從而維持攻擊者與目的主機的通信。系統可通過監聽報文方法,如出現大量無應答報文,且出現較多無請求的ARP應答幀,則可能出現ARP欺騙。
如局域網內出現ARP欺騙,則出現兩種情況:①當目的主機接收到ARP請求時,根據IP映射表對比請求幀IP地址與本機IP地址進行對應,這兩個IP地址一致;②主機可定期查詢自己IP請求包,收到源地址ARP應答包是本機IP地址[5-6]。
如進行惡意攻擊ARP應答包未留下攻擊者IP地址,但會在包含該ARP應答包數據幀中有攻擊者的IP地址等相關信息[7]。一般網絡能正常通信情況下,數據幀頭部中的源物理地址與目的主機的物理地址應該和幀中數據包的ARP信息是一致,如存在不一致情況,則很大程度上表示在網絡通信中有ARP欺騙包存在。
ARP映射表動態更新情況是產生ARP欺騙主要原因,通過對網段中IP地址和物理地址進行綁定方法可有效防止攻擊者動態更新ARP的緩存。將MAC地址與主機的IP地址綁定后,攻擊主機發送ARP欺騙包到達目的主機無法更新目的主機中ARP緩存,達到預防ARP欺騙目的。但由于接入網絡中計算機用戶數量增加,這種方法將會產生大量IP地址浪費,不常聯網計算機也占用比較緊缺的網絡資源,增加操作和維護成本,如頻繁變更,出錯概率會增加。
強化ARP更新策略,由于現行ARP協議要求在接收到任意應答包時隨即更新緩存,易產生ARP欺騙,ARP更新尤為必要,基本原則是只讓目的主機接收自己了解的主機發送ARP應答包,對未知源發送ARP請求包一律作丟棄處理,這種方案會多一個身份確認過程。
加密技術是網絡信息安全研究重要分支,在ARP欺騙原理基礎上,為使監聽不易被對方覺察,即使攻擊者截獲相應信息,也很難獲取,從而保證了網絡信息傳輸安全性。但這種技術需一種比較強大的加密算法支持,對網絡傳輸成本和實效性是一個挑戰。
防范局域網通信中的ARP欺騙算法主要原理是通過檢測接收到的ARP應答或請求包,限制動態修改主機中ARP緩存,通過有效的驗證后方能修改緩存信息。該算法采用visual studio C++開發環境,并結合winpcap開發包和MFC類庫,使用winpcap獲取數據包,其核心算法如下:


在網絡信息安全研究領域中,ARP欺騙是局域網中較常見的一種攻擊方式,其主要原因是ARP協議具有一種“無狀態”缺點。目前沒有便捷有效的方法來防范ARP欺騙產生,現存的一些防范策略都有一定的局限性,本文綜合分析有關防范ARP欺騙特點和限制,提出一種防范ARP欺騙的算法,該算法可有效的防范局域網中ARP欺騙,今后還需進一步研究加入隨機算法來提高算法效率,盡可能降低ARP欺騙危害。
[1]鄧清華,陳松喬.ARP欺騙攻擊及其防范[J].微機發展,2004,14(8):82-86.
[2]Meng X M.Detecting and precaution of network spoofing base on ARP[J].Information Technology,2005(5):32-36.
[3]鄭文兵,李成忠.ARP欺騙原理及一種防范算法[J].江南大學學報:自然科學版,2003,2(6):125-127.
[4]王燕,張新剛.基于ARP協議的攻擊及其防御方法分析[J].微計算機信息,2007,12(3):72-74.
[5]吳少華,方勇,胡勇,等.基于ARP協議的非法入網檢測與阻止技術研究[J].微計算機信息,2007(1):27-28.
[6]何聚厚,何秀青,李由,等.IP動態偽裝模型研究[J].計算機科學,2004(4):64-66.