張宇



【摘 要】計算機網絡在世界范圍內迅速普及,我國局域網絡也是發展得如火如荼,針對網絡中欺騙攻擊的理論研究、應用技術和各類防范措施雖已相對成熟,但整體上還處于被動防御階段,存在著一定的局限性。本文首先針對網絡欺騙的運行機制,包括ARP緩存、幀格式、報文格式等進行了細致的分析;其次對ARP欺騙原理及其現有的防范措施進行了探討與研究,并提出了適合局域網絡的綜合防御措施;最后從軟件工程角度出發,以提高網絡安全性為目標,設計并實現一套基于嗅探技術的網絡監控系統。該系統在網絡監聽技術、網絡定位技術、數據分析技術的基礎上,實現了對網絡中ARP欺騙攻擊進行主動檢測、自動定位并且能夠及時報警反饋的功能。
【關鍵詞】網絡欺騙;嗅探技術;網絡監聽;定位
1 緒論
1.1 研究背景與意義
早在2000年,基于網絡協議的網絡欺騙病毒就開始襲擊多個大型網絡,從2006年開始,又一輪基于網絡欺騙的病毒更是大范圍肆虐, ARP(全稱為Address Resolution Protocol)欺騙讓全國很多企事業單位的局域網出現問題,甚至讓網絡業務陷入癱瘓。近幾年來,APR欺騙攻擊已經成為了影響企事業單位網絡穩定運行的重要風險之一,如何采取切實可行的措施來實現對ARP欺騙攻擊的防范至關重要。
針對當前網絡中存在的ARP欺騙原理展開分析,力求實現一種可針對ARP欺騙攻擊的檢測控制系統。本論文的研究具有以下幾方面重要的意義:首先,對于企事業單位能夠正確而且較為深入地了解ARP協議的運行機制及其本身所存在的缺陷具有重要的現實意義;其次,通過研究對于明確并揭示基于ARP協議的欺騙攻擊的原理,從而以此為基礎展開對ARP欺騙的應對方法具有一定的參考價值;此外,本文中對于嗅探技術、數據包捕獲、訪問控制等技術和ARP防范的結合,設計的基于ARP協議的欺騙檢測系統,可以為企事業單位對于網絡欺騙的防范提供一種工具,為徹底杜絕ARP欺騙攻擊,加強各企事業單位的信息化安全奠定基礎。
1.2 本文研究內容和方法
1.2.1 本文研究內容
本文主要針對局域網絡中網絡欺騙進行深入分析研究,并提出一套基于嗅探技術的網絡欺騙檢測系統的設計與實現方法,研究的主要內容分為如下三大部分:
1)相關理論概述。
2)當前網絡中防范網絡欺騙攻擊的措施。
3)基于嗅探技術的網絡監控系統設計。
1.2.2 研究方法
1)文獻研究法:通過對國內外有關網絡欺騙原理與防范措施的大量文獻進行研究,加深相關理論的認知程度,奠定本文進一步研究和分析的理論基礎。
2)歸納總結法:通過使用歸納總結的方法,對當前常用的針對網絡欺騙攻擊的防范技術進行研究,總結出這些技術的共同點,在此基礎上設計出全新的ARP監控系統。
3)理論聯系實際法:本文以局域網絡為基本研究對象,在對局域網絡特點進行實際考察的基礎上,運用嗅探技術和捕獲理論,對網絡防范欺騙攻擊的具體方法做了深入的研究。
2 ARP欺騙攻擊的防范分析
2.1 ARP攻擊的危害
盡管ARP協議的缺陷在不同的操作系統上所表現的形式不完全一樣,但無論哪種操作系統,在遇到ARP的攻擊時,依舊需要承受一定的損失。ARP攻擊對網絡造成的危害主要有造成網絡異常、導致數據被篡改、數據被惡意竊取、使網絡主機被非法控制
2.2 防范ARP攻擊的主要措施
2.2.1 針對接入設備的ARP攻擊防范措施
針對接入設備的ARP攻擊防范措施主要有三種,即ARP報文檢測措施、ARP網關過濾保護措施以及ARP報文限速措施。
1)ARP報文檢測措施
ARP報文檢測措施是非常有效的防范ARP網關攻擊和主機攻擊的重要手段之一,其原理是當一個VLAN(虛擬局域網)內開啟了ARP報文檢測功能后,該虛擬局域網內任何端口所接收到的ARP請求包或者應答包的報文都會被重定向到主機系統,并對該報文的用戶合法性及報文有效性進行全面檢測,當檢測結果認為ARP報文合法時,則進行下一步轉發,否則直接丟棄該ARP報文。ARP報文檢測措施的主要方法有對ARP報文進行有效性檢測、對用戶合法性進行檢測以及對ARP報文進行強制轉發。
2)ARP網關過濾保護措施
ARP網關過濾保護措施包括兩個部分,一是ARP網關保護,二是ARP過濾保護。這兩種保護措施實現起來比較方便,只需通過具有過濾與保護功能的設備進行相關的功能配置即可。
3)ARP報文限速措施
由于在ARP欺騙攻擊過程中,主要利用了ARP協議的當初設計缺陷,根據前文的ARP欺騙攻擊的原理,可以看出光靠對ARP報文的有效性檢查還不夠,還需要在網絡設備端口采取一定的限速措施,使某個端口一旦受到攻擊,就暫時采取關閉動作,從而避免網絡帶寬資源和網絡設備的CPU資源被ARP攻擊耗盡。
2.2.2 針對網關設備的攻擊防范措施
針對網關設備的ARP攻擊防范措施主要有三種,即有授權配置ARP緩存表的防范措施、ARP主動確認的防范措施以及源主機IP或MAC的抑制防范措施。
1)授權配置ARP緩存表的防范措施
多數情況下,ARP欺騙攻擊是通過非法或錯誤地修改ARP緩存表來造成的,如果將ARP緩存表的修改或配置進行授權,則可以在一定程度上避免這種情況。這種授權配置ARP緩存表的方法適合于采用DHCP協議進行主機IP地址動態分配的網絡環境中。
2)ARP主動確認的防范措施
ARP主動確認是網關設備防范ARP欺騙攻擊的重要手段之一。ARP主動確認的主要目的就是在網關設備對ARP緩存表進行更新時主動確認,防止ARP緩存表更新產生錯誤,這種主動確認的工作過程首先是對新建ARP緩存表項目時的主動確認,其次是更新已有ARP緩存表項目時的主動確認。
3)源主機IP或MAC的抑制防范措施
針對源主機IP或MAC發送的攻擊報文進行抑制,是一種配置簡單且適用的功能,常采取的抑制措施有如下三種:進行ARP報文的源主機MAC的一致性檢測措施、對IP報文的抑制措施、限制ARP緩存表項目最大數目的抑制措施。
2.3 各類防范措施的優缺點比較
有關防范ARP攻擊的措施確實很多,但卻各有不同。總結歸納起來主要有兩類:一類是基于接入設備或網關設備的報文監控檢測措施,另一類是基于ARP緩存表項的安全配置措施。這兩種措施所適用的網絡環境不盡相同,在其配置過程中也會受到網絡條件和環境的限制。
以上傳統防范措施的優缺點匯總如表1所示。
3 基于嗅探技術的ARP網絡監控系統設計
3.1 系統需求分析及架構設計
3.1.1 系統需求分析
本設計是基于ARP欺騙原理的網絡監控系統,系統應能夠實現局域網內對ARP欺騙攻擊的實時監控,并能夠完成數據采集、協議分析、日志記錄、實時監控等功能。
綜合以上功能需求,設計出本系統的功能結構如圖1所示。
3.1.2 功能模塊內部結構設計
ARP網絡監控系統的實現是基于網絡監聽技術及數據包捕獲技術的,因此其功能模塊的實現實際上對這兩種技術的應用,本系統的功能主要由ARP攻擊檢測、數據包捕獲、數據包過濾、攻擊定位等技術實現,本系統的內部結構模型如圖2所示。
現從技術角度對本系統的功能模塊內部結構進行分析如下:
1)ARP攻擊主動檢測
在本系統的監控功能與定位功能中,大量使用了ARP攻擊檢測的技術。包括系統能實現對ARP應答報文的檢測、系統能實現對ARP請求包的檢測。
2)數據包捕獲
數據包捕獲是本系統進行數據包分析及定位的必需手段,主要基于WINPCAP驅動開發包進行數據包獲取的開發。
3)數據包過濾
在系統捕獲的數據包的數量往往非常多,而過多的數據包量并不利于系統對ARP攻擊的分析,對此我們只需要針對某些特定的端口或服務的數據包感興趣,例如我們監聽的端口只有8080端口與23端口,就需要通過使用WINPCAP數據包的過濾功能來實現。在系統中對數據包過濾是通過設置一定的過濾規則來進行的,進而將不符合條件的端口數據包丟棄掉,只留下符合要求的數據包。系統對此功能的實現使用了WINPCAP的幾個關鍵函數,通過關鍵函數對布爾表達式字符串進行翻譯,使其成為低級的二進制字符串,那么WINPCAP的NPF會判斷該表達式是否是過濾規則所設定的,如果是,則存儲該數據包,如果不是,則丟棄該數據包,從而實現對數據包捕獲的過濾。
4)定位技術
定位功能是本系統的重要功能之一,通過對網絡中所有的ARP攻擊類別進行劃分,并為每種攻擊設置攻擊度,當系統檢測到ARP攻擊數據包時,會將這些攻擊信息提交給系統的分析統計模塊,當分析統計模塊對這些攻擊信息分類并進行不重復計算總的攻擊度之后,按照攻擊度高低分成不同級別,從而幫助網絡管理員對攻擊源進行更有效的定位。
5)自定義發包技術
本系統主動防御的一個特色之處在于能夠對被ARP欺騙的主機通過一定的技術實現恢復其IP地址與MAC地址的正確映射關系。
3.1.3 系統主要數據表設計
數據庫是本系統中基礎數據的重要支撐,無論是系統對數據包的捕獲還是對數據包的分析,都需要將一定的數據寫入到數據庫中,以下對本系統涉及的主要數據庫表進行結構分析。
1)ARP數據包存放表
當系統調用WINPCAP驅動將處于數據鏈路層的ARP數據包捕獲后,便會將其中的關鍵信息存放在這個表中,ARP數據包存放表命名為arppackets,其具體的字段結構如表2所示。
2)IP與MAC對應表
IP與MAC地址對應表是將局域網絡中現存節點主機的IP與MAC進行對應的表,也可稱之為映射表。
3)ARP攻擊源表
ARP攻擊源表主要是為了給系統對攻擊源的追蹤提供方便,是屬于和系統定位模塊配合使用的數據表,該表被命名為Arp_attack。
3.2 ARP網絡監控系統的實現
3.2.1 系統數據包捕獲及過濾的實現
數據包的捕獲和過濾是最為基礎和關鍵的模塊之一。前文已經描述了數據包捕獲的流程,其在系統中的基本實現過程為:首先通過調用WINPCAP中pcap_findalldevs()函數進行可用網卡的查找并獲取網卡的詳細信息;然后用pcap_open_live()函數將網絡設備打開,并建立捕獲會話;之后使用pcap_compile()函數對過濾器進行編譯,通過對過濾規則的編譯形成內核過濾碼,并將其傳遞給pcap_setfilter()函數,此時過濾器才能產生作用;最后通過調用pcap_loop()函數實現對數據包的循環捕獲,完成后調用pcap_close()函數進行資源的釋放,處理過程隨之結束,關閉返回。
3.2.2 ARP主動防御功能的實現
本系統擁有專門針對客戶端主機的ARP主動防御功能模塊,其主要目的是能夠在內核層主動分析接收的ARP數據包是否是合法的,從而防止本地主機被不明來源的ARP攻擊,實現對本地主機的ARP欺騙攻擊防御。防御功能的實現是通過專門的ARP數據包檢測函數來實現的,主要經過以下幾個關鍵步驟:
系統在實現此功能時首先定義一個結構類型的鉤子函數,即struct nf_hook_ops arp_ops={{NULL,NULL},arpfilter,nf_arp,nf_arp_in,0},該函數在鉤子節點上注冊ARP關鍵檢測函數arpfilter,nf_regedit_hook(&arp_ops)。當關鍵檢測函數從內核中移除時,需要對其進行注銷操作,操作函數為Nf_unregedit_hook(&arp_ops)。
在本系統針對ARP欺騙攻擊的防御過程中,檢測函數通過對ARP緩存表的對比,從而判斷接收的數據包是否為非法攻擊數據包。其檢測實現的機理如上圖4所示。
3.2.3 監聽功能的實現
網絡嗅探不僅是攻擊者的利用工具,同樣也可以被網絡管理員所利用。本系統的監聽功能就是在網絡嗅探的基礎上實現的,從而使管理員獲得較多的網絡數據。如前文所述,在大多數的以太網內,數據包的發送與接收實際上都是基于物理地址的,這也是網絡嗅探的基礎,因此,當系統實現了對數據包的截獲時,只要本地主機設置了IP路由功能,真正的目的主機就會監聽到網絡間的通信了,實際上,監聽功能實現的重點在于構造一個ARP應答包,然后發送給被欺騙主機。
當系統能夠接收到數據包后,就能夠即時進行監聽,甚至對其進行分析。以下就分析當系統能夠接收到數據包后,就能夠即時進行監聽,甚至對其進行分析。
【參考文獻】
[1]吳芳.ARP攻擊實例[M].北京:對外經濟貿易出版社,2007.
[2]任紅衛,鄧飛其.計算機網絡安全主要問題與對策[J].網絡安全技術與應用,2004(9):31-33+27.
[3]陳鐘.安全協議及其分析[M].北京:人民郵電出版社,2007.
[4]楊曉春,等.ARP欺騙實現交換式網絡數據包嗅探的原理及其防范[J].株洲工學院學報,2003(2):46-48.
[責任編輯:田吉捷]