個人入侵檢測系統的實現_第1頁
個人入侵檢測系統的實現_第2頁
個人入侵檢測系統的實現_第3頁
個人入侵檢測系統的實現_第4頁
個人入侵檢測系統的實現_第5頁
已閱讀5頁,還剩23頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、個人入侵檢測系統的實現(有源程序代碼)源程序代碼等全套設計聯系174320523各專業 都有分類號:TP393 U D C:D10621-408-2007 5862-0密 級:公 開 編 號:20038031288成都信息工程學院學位論文個人入侵檢測系統的實現論文作者姓名:金國強申請學位專業:計算機科學與技術申請學位類別:工學學士指導教師姓名(職稱):熊淑華(副教授)論文提交日期:2007年6月9日個人入侵檢測系統的實現摘要入侵檢測系統(IDS)可以對系統或網絡資源進行實時檢測,及時發現闖入 系統或網絡的入侵者,也可預防合法用戶對資源的誤操作。本論文從入侵檢測的 基本理論和入侵檢測中的關鍵技術

2、出發,主要研究了一個簡單的基于網絡的 windows平臺上的個人入侵檢測系統的實現PIDS,Personal Intrusion Detection System。論文首先分析了當前網絡的安全現狀,介紹了入侵檢測技術 的歷史以及當前入侵檢測系統的關鍵理論。分析了 Windows的網絡體系結構以及 開發工具Winpcap的數據包捕獲和過濾的結構。最后在Winpcap系統環境下實現 本系統設計。本系統采用異常檢測技術,通過Winpcap截取實時數據包,同時從截 獲的IP包中提取出概述性事件信息并傳送給入侵檢測模塊,采用量化分析的方 法對信息進行分析。系統在實際測試中表明對于具有量化特性的網絡入侵具

3、有較 好的檢測能力。最后歸納出系統現階段存在的問題和改進意見,并根據系統的功 能提出了后續開發方向。關鍵詞:網絡安全;入侵檢測;數據包捕獲;PIDSImplementation of Personal Intrusion Detection System AbstractThe Intrusion Detection System IDS can detect the system or the network resources on the real-time, discover the intruder who intends to enter into a system or a ne

4、twork without warrant in time and prevent users from wrong operation. Based on the basic theory of the intrusion detection and the core technology of intrusion detection, a way of the realization of a simple Personal Intrusion Detection System PIDS, which based on Windows platform, is well researche

5、d. The current security status of the network is analyzed firstly, and then the history of intrusion detection technology and the current core theory of the intrusion detection system are introduced. At last, the network architecture on Windows as well as the structure of capturing and filtering dat

6、a packets by Winpcap, a tool on development is introduced. After that, the system is realized under the Winpcap system environment. The abnormal detection technology is used in the system. After catching data packets with Winpcap in real-time, extracting probabilistic information about events from t

7、he intercepted IP packets and sending them to the intrusion detection module, information is analyzed by method of quantitative analysis. In actual system testing, the system shows a good ability on detecting the quantitative characteristics of network intrusion. Finally, the existed problems and ou

8、r suggestion during this stage is summed up and according to the function of the system, the proposition is given about the future direction.Keywords: Network security, Intrusion detection, Package catching, PIDS目錄論文總頁數:24頁1引言 1網絡安全概述11.1.1網絡安全問題的產生11.1.2網絡信息系統面臨的安全威脅11.1.3對網絡個人主機的攻擊2入侵檢測技術及其歷史31.2.

9、1入侵檢測(IDS)概念31.2.2入侵檢測系統的分類41.2.3入侵檢測模型51.2.4入侵檢測過程分析61.2.5入侵檢測的發展歷史6個人入侵檢測系統的定義7系統研究的意義和方法72個人入侵檢測系統的設計 7數據包捕獲模塊 7數據解析模塊11數據分析模塊 12分析結果記錄13報警處理模塊133個人入侵檢測系統的實現13系統的總體結構 13 TOC o 1-5 h z 數據包捕獲模塊實現14解碼數據包模塊實現15分析數據包模塊實現16分析結果記錄并告警204個人入侵檢測系統的應用實例分析21結論22參考文獻22致謝23聲明24引言網絡安全概述網絡安全問題的產生可以從不同角度對網絡安全作出不同

10、的解釋。一般意義上,網絡安全是指 信息安全和控制安全兩部分。國際標準化組織把信息安全定義為“信息的完整性、 可用性、保密性和可靠性”;控制安全則指身份認證、不可否認性、授權和訪問 控制。互聯網與生俱有的開放性、交互性和分散性特征使人類所憧憬的信息共 享、開放、靈活和快速等需求得到滿足。網絡環境為信息共享、信息交流、信息 服務創造了理想空間,網絡技術的迅速發展和廣泛應用,為人類社會的進步提供 了巨大推動力。然而,正是由于互聯網的上述特性,產生了許多安全問題:1信息泄漏、信息污染、信息不易受控。例如,資源未授權侵用、未授權 信息流出現、系統拒絕信息流和系統否認等,這些都是信息安全的技術難點。2在網

11、絡環境中,一些組織或個人出于某種特殊目的,進行信息泄密、信 息破壞、信息侵權和意識形態的信息滲透,甚至通過網絡進行政治顛覆等活動, 使國家利益、社會公共利益和各類主體的合法權益受到威脅。3網絡運用的趨勢是全社會廣泛參與,隨之而來的是控制權分散的管理 問題。由于人們利益、目標、價值的分歧,使信息資源的保護和管理出現脫節和 真空,從而使信息安全問題變得廣泛而復雜。4隨著社會重要基礎設施的高度信息化,社會的“命脈”和核心控制系統 有可能面臨更大的威脅。網絡信息系統面臨的安全威脅目前網絡信息系統面臨的安全威脅主要有:1非法使用服務:這種攻擊的目的在于非法利用網絡的能力,網絡上的非 授權訪問應該是不可能

12、的。不幸的是,用于在網絡上共享資源及信息的工具、程 序存在許多安全漏洞,而利用了這些漏洞就可以對系統進行訪問了。2身份冒充;這種攻擊的著眼點在于網絡中的信任關系,主要有地址偽裝 IP欺騙和用戶名假冒。3數據竊取:指所保護的重要數據被非法用戶所獲取,如入侵者利用電磁 波輻射或搭線竊聽等方式截獲用戶口令、帳號等重要敏感信息。4破壞數據完整性:指通過非法手段竊得系統一定使用權限,并刪除、修 改、偽造某些重要信息,以干擾用戶的正常使用或便于入侵者的進一步攻擊。對網絡個人主機的攻擊對方首先通過掃描來查找可以入侵的機器,即漏洞探測;接著確定該機器 的IP地址;然后利用相應的攻擊工具發起某種攻擊。網絡嗅探,

13、嗅探器是一種網絡監聽工具(如:sniffer),該工具利用計算機 網絡接口可以截獲其他計算機的數據信息。嗅探器工作在網絡環境的底層,它會 攔截所有正在網絡上傳送的數據,并且通過相應的軟件實時分析這些數據的內容, 進而明確所處的網絡狀態和整體布局。在合理的網絡中,嗅探器對系統管理員而 言至關重要,通過嗅探器可以監視數據流動情況以及網絡傳輸的信息,從而為管 理員判斷網絡問題、管理網絡提供寶貴的信息。然而,如果黑客使用嗅探器,他可 以獲得和系統管理員同樣重要而敏感的信息,(如:在某局域網上,嗅探器可以很 輕松地截獲在網上傳送的用戶姓名、口令、信用卡號碼和帳號等從而對網絡安全 構成威脅。其工作原理是:

14、在一個共享介質的網絡中如以太網,一個網段上的所有 網絡接口均能訪問介質上傳輸的所有數據。每個網絡接口的硬件地址與其他網絡 接口的硬件地址不同,同時每個網絡至少還有一個廣播地址。廣播地址并不對應 于某個具體的網絡接口,而是代表所有網絡接口。當用戶發送數據時,這些數據就 會發送到局域網上所有可用的機器。在一般情況下,網絡上所有的機器都可以 “聽”到通過的流量,但對不屬于自己的數據的硬件地址不予響應。換句話說, 工作站A不會捕獲屬于工作站B的數據,而是簡單地忽略這些數據。當發送者希 望引起網絡中所有主機操作系統的注意時,他就使用“廣播地址”。因此,在正常 情況下,一個合法的網絡接口應該只響應這樣兩種

15、數據幀:一是幀的目標區域具 有和本地網絡接口相匹配的硬件地址,二是幀的目標區域具有“廣播地址”。在接 收到上面兩種情況的數據幀時,主機通過CPU產生硬件中斷,該中斷能引起操作 系統注意,然后將幀中所包含的數據傳送給系統作進一步處理。而嗅探器就是一 種能將本地計算機狀態設成“混雜Promiscuous狀態的軟件,當本機處于這種 方式時,該機具備“廣播地址”,它對所有遭遇到的每一個幀都產生硬件中斷以便 提醒操作系統處理流經該網段的每一報文包。在該方式下,網絡接口就可以捕獲 網絡上所有數據幀,從而可以達到監聽的目的。拒絕服務攻擊Denial of Service,簡稱DoS,是指占據大量的共享資源

16、(如:處理器、磁盤空間、CPU、打印機),使系統沒有剩余的資源給其他用戶,從而 使服務請求被拒絕,造成系統運行遲緩或癱瘓。其攻擊目的是為完成其他攻擊做 準備。其攻擊原理是:在拒絕服務攻擊中,惡意用戶向服務器傳送眾多要求確認的 信息,使服務器里充斥著這種無用的信息。所有這些請求的地址都是虛假的,以至 于服務器試圖回傳時,卻無法找到用戶。服務器于是暫時等候,有時超過一分鐘, 然后再切斷連接。服務器切斷連接后,攻擊者又發送新一批虛假請求,該過程周而 復始,最終使網站服務器充斥大量要求回復的信息,消耗網絡帶寬或系統資源,導 致網絡或系統不勝負荷以至于癱瘓而停止提供正常的網絡服務。典型的DOS攻擊 技術

17、,如TCP/SYN攻擊,該攻擊作為一種拒絕服務攻擊存在的時間己經有20多年 了。但是,隨著技術的不斷進步,SYN攻擊也不斷被更多黑客所了解并利用。其原 理是基于連接時的三次握手,如果黑客機器發出的包的源地址是一個虛假的IP 地址,ISP主機發出的確認請求包ACK/SYN就找不到目標地址,如果這個確認包一 直沒找到目標地址,那么也就是目標主機無法獲得對方回復的ACK包。而在缺省 超時的時間范圍內,主機的一部分資源要花在等待這個ACK包的響應上,假如短 時間內主機接到大量來自虛假IP地址的SYN包,它就要占有大量的資源來處理這 些錯誤的等待,最后的結果就是系統資源耗盡以致癱瘓。特洛伊木馬來源于希臘

18、神話,講述的是通過木馬血屠特洛伊城的故事。這 一故事形象地說明了木馬程序的特點。在計算機安全學中,特洛伊木馬指的是一 種計算機程序,它表面上具有某種有用的功能,實際上卻隱藏著可以控制用戶計 算機系統,危害系統安全的破壞性指令,特洛伊木馬代表了一種程度較高的危險。 當這種程序進入系統后,便有可能給系統帶來危害。在特洛伊木馬程序中插入的 代碼在別的程序中依然能存在,但只在藏身的程序中進行破壞性活動。代碼能夠 在主程序的特權范圍內從事任何破壞行為,使用自身或者其他程序進行操作。其 工作原理實質是,特洛伊木馬只是一個網絡客戶/服務程序。網絡客戶/服務模式的原理是臺主機服務器提供服務,另一臺主機客戶機接

19、受服務。作為服務器的主機一般會打開一個默認的端口并進行監聽,如果有客戶機向服務器這一端口提 出連接請求,服務器上的相應程序就會自動運行,來應答客戶機的請求,此程序稱 為守護進程。對于木馬來說,被控制端是一臺服務器,控制端則是一臺客戶機。黑 客經常用欺騙手段引誘目標對象運行服務器端程序,黑客一旦成功地侵入了用戶 的計算機后,就會在計算機系統中隱藏一個會在Windows啟動時悄悄運行的程序, 采用服務器/客戶機的運行方式,從而達到在用戶上網時控制用戶計算機的目的。入侵檢測技術及其歷史入侵檢測(IDS)概念1980年,詹姆斯?安德森(James P.Anderson)第一次系統闡述了入侵檢測 的概念

20、,并將入侵行為分為外部?透、內部?透和不法行為三種,還提出了利用審計 數據監視入侵活動的思想。Anderson將入侵嘗試或威脅定義為:潛在的、有預謀的、未經授權的訪 問信息、操作信息、致使系統不可靠或無法使用的企圖。而入侵檢測的定義為: 發現非授權使用計算機的個體(如“黑客”)或計算機系統的合法用戶濫用其訪問 系統的權利以及企圖實施上述行為的個體。執行入侵檢測任務的程序即是入侵檢 測系統。入侵檢測系統也可以定義為:檢測企圖破壞計算機資源的完整性,真實性 和可用性的行為的軟件。入侵檢測系統執行的主要任務包括:監視、分析用戶及系統活動;審計系 統構造和弱點;識別、反映已知進攻的活動模式,向相關人士

21、報警;統計分析異常 行為模式;評估重要系統和數據文件的完整性;審計、跟蹤管理操作系統,識別用 戶違反安全策略的行為。入侵檢測一般分為三個步驟:信息收集、數據分析、響應。入侵檢測的目的:1識別入侵者;2識別入侵行為;3檢測和監視以實施的入侵行為;4為對抗入侵提供信息,阻止入侵的發生和事態的擴大。入侵檢測系統的分類現有的IDS的分類,大都基于信息源和分析方法。為了體現對IDS從布局、 采集、分析、響應等各個層次及系統性研究方面的問題,在這里采用五類標準: 控制策略、同步技術、信息源、分析方法、響應方式。按照控制策略分類控制策略描述了 IDS的各元素是如何控制的,以及IDS的輸入和輸出是如 何管理的

22、。按照控制策略IDS可以劃分為,集中式IDS、部分分布式IDS和全部 分布式IDS。在集中式IDS中,一個中央節點控制系統中所有的監視、檢測和報 告。在部分分布式IDS中,監控和探測是由本地的一個控制點控制,層次似的將報 告發向一個或多個中心站。在全分布式IDS中,監控和探測是使用一種叫“代理” 的方法,代理進行分析并做出響應決策。按照同步技術分類同步技術是指被監控的事件以及對這些事件的分析在同一時間進行。按 照同步技術劃分,IDS劃分為間隔批任務處理型IDS和實時連續性IDS。在間隔批 任務處理型IDS中,信息源是以文件的形式傳給分析器,一次只處理特定時間段 內產生的信息,并在入侵發生時將結

23、果反饋給用戶。很多早期的基于主機的IDS 都采用這種方案。在實時連續型IDS中,事件一發生,信息源就傳給分析引擎,并 且立刻得到處理和反映。實時IDS是基于網絡IDS首選的方案。按照信息源分類按照信息源分類是目前最通用的劃分方法,它分為基于主機的IDS、基于 網絡的IDS和分布式IDS。基于主機的IDS通過分析來自單個的計算機系統的系 統審計蹤跡和系統日志來檢測攻擊。基于主機的IDS是在關鍵的網段或交換部位 通過捕獲并分析網絡數據包來檢測攻擊。分布式IDS,能夠同時分析來自主機系 統日志和網絡數據流,系統由多個部件組成,采用分布式結構。按照分析方法分類按照分析方法IDS劃分為濫用檢測型IDS和

24、異常檢測型IDS。濫用檢測 型的IDS中,首先建立一個對過去各種入侵方法和系統缺陷知識的數據庫,當收 集到的信息與庫中的原型相符合時則報警。任何不符合特定條件的活動將會被認 為合法,因此這樣的系統虛警率很低。異常檢測型IDS是建立在如下假設的基礎 之上的,即任何一種入侵行為都能由于其偏離正常或者所期望的系統和用戶活動 規律而被檢測出來。所以它需要一個記錄合法活動的數據庫,由于庫的有限性使 得虛警率比較高。按照響應方式分類按照響應方式IDS劃分為主動響應IDS和被動響應IDS。當特定的入侵 被檢測到時,主動IDS會采用以下三種響應:收集輔助信息;改變環境以堵住導致 入侵發生的漏洞;對攻擊者采取行

25、動(這是一種不被推薦的做法,因為行為有點過 激)。被動響應IDS則是將信息提供給系統用戶,依靠管理員在這一信息的基礎上 米取進一步的行動。入侵檢測模型美國斯坦福國際研究所(SRI)的/.ning于1986年首次提出一種入侵檢測模型,該模型的檢測方法就是建立用戶正常行為的描述模型,并以此同當前用 戶活動的審計記錄進行比較,如果有較大偏差,則表示有異常活動發生。這是一種 基于統計的檢測方法。隨著技術的發展,后來人們又提出了基于規則的檢測方法。 結合這兩種方法的優點,人們設計出很多入侵檢測的模型。通用入侵檢測構架 (Common Intrusion Detection Framework 簡稱 CI

26、DF)組織,試圖將現有的入侵檢 測系統標準化,CIDF闡述了一個入侵檢測系統的通用模型(一般稱為CIDF模型, 如圖1所示)。它將一個入侵檢測系統分為以下四個組件:事件產生器(event generators),用e盒表示;事件分析器(event analyzers),用a盒表示;響應單元(responseunits),用r盒表示;事件數據庫(event databases),用d盒表它將需要分析的數據通稱為事件,事件可以是基于網絡的數據包也可以 是基于主機的系統日志中的信息。事件產生器的目的是從整個計算機環境中獲得 事件,并向系統其它部分提供此事件。事件分析器分析得到的事件并產生分析結 果。

27、響應單元則是對分析結果做出反應的功能單元,它可以做出切斷連接、修改 文件屬性等強烈反應。事件數據庫是存放各種中間和最終數據的地方的通稱,它 可以是復雜的數據庫也可以是簡單的文本文件。圖1 CIDF入侵檢測模型入侵檢測過程分析過程分為三部分:信息收集、信息分析和結果處理。1信息收集:入侵檢測的第一步是信息收集,收集內容包括系統、網絡、 數據及用戶活動的狀態和行為。由放置在不同網段的傳感器或不同主機的代理來 收集信息,包括系統和網絡日志文件、網絡流量、非正常的目錄和文件改變、非正常的程序執行。2信息分析:收集到的有關系統、網絡、數據及用戶活動的狀態和行為等 信息,被送到檢測引擎,檢測引擎駐留在傳感

28、器中,一般通過三種技術手段進行分 析:模式匹配、統計分析和完整性分析。當檢測到某種誤用模式時,產生一個告警 并發送給控制臺。3結果處理:控制臺按照告警產生預先定義的響應采取相應措施,可以是 重新配置路由器或防火墻、終止進程、切斷連接、改變文件屬性,也可以只是簡 單的告警。入侵檢測的發展歷史1980年James P Anderson在給一個保密客戶寫的一份題為計算機安 全威脅監控與監視的技術報告中指出,審計記錄可以用于識別計算機誤用,他把 威脅進行了分類,第一次詳細闡述了入侵檢測的概念。1984年到1986年喬治敦 大學的Dorothy Denning和SRI公司計算機科學實驗室的Peter N

29、eumann研究出 了一個實時入侵檢測系統模型? IDES Intrusion Detection Expert Systems 入 侵檢測專家系統,是第一個在一個應用中運用了統計和基于規則兩種技術的系統, 是入侵檢測研究中最有影響的一個系統。1989年,加州大學戴維斯分校的Todd Heberlein寫了一篇論文A Network Security Monitor,該監控器用于捕獲 TCP/IP分組,第一次直接將網絡流作為審計數據來源,因而可以在不將審計數據 轉換成統一格式的情況下監控異種主機,網絡入侵檢測從此誕生。個人入侵檢測系統的定義個人入侵檢測系統(PIDS),以網絡數據包作為分析數據

30、源,采用異常檢測分析方法。它只分析處理與個人主機有關的IP數據包,它保護的是個人主機系統。系統研究的意義和方法綜上,當個人用戶接入Internet時,個人機的安全就將面臨著攻擊威脅。 因此,個人用戶的重要數據、機密文件等需要安全保護。靜態的防御措施,如個人 防火墻等,已不能滿足個人用戶的需求,個人用戶需要一個更全面的個人安全防 范體系。如果把入侵檢測技術應用到個人機的安全防范中,它將與個人防火墻一 起為個人用戶提供一個更安全的動態防范體系。本文闡述的就是在Windows下實現個人入侵檢測系統PIDS。本系統采用 基于網絡的異常檢測方法的入侵檢測技術,使用量化分析的方法來檢測用戶的行 為。在總結

31、出的正常行為規律的基礎上,檢查入侵和濫用行為特征與其之間的差 異,以此來判斷是否有入侵行為。個人入侵檢測系統的設計數據包捕獲模塊網絡入侵檢測系統要分析的對象是網絡中的數據包。所以我們就需要對 流經網絡的數據包捕獲并加以分析,這樣才能得到實現入侵檢測的功能。對于不 同的操作系統有許多不同的數據包捕獲方法。在本系統中,采用了 windows下的 Winpcap網絡驅動開發包,它是Windows平臺下的一個免費、公共的網絡驅動開 發包。開發Winpcap這個項目的目的在于為Win32應用程序提供訪問網絡底層的 能力。它提供了以下的各項功能:1、捕獲原始數據報,包括在共享網絡上各主機發送/接收的以及相

32、互之間 交換的數據報2、在數據報發往應用程序之前,按照自定義的規則將某些特殊的數據報過濾掉3、在網絡上發送原始的數據報4、收集網絡通信過程中的統計信息Winpcap由三個模塊構成:NPF, packet.dll, wpcap.dll。前一個工作在 內核層,后兩個工作在用戶層。第一個模塊是內核部分 NPF Netgroup Packet Filter,在Win95/98中它是一個VXD(虛擬設備驅動程序文件)文件,在 WinNT/Win2000下是一個SYS文件。它的主要功能是過濾數據包,并把這些數據 包原封不動地傳給用戶態模塊。當然也添加了一些系統特定的標志比如時間戳管 理。這個過程中包括了一

33、些操作系統特有的代碼。第二個模packet.dll用來在 不同的Win32平臺下提供一個通用的公共的包驅動接口。事實上,不同版本的 Windows平臺在內核層模塊和用戶進程之間的接口不完全相同,packet.dll用于 解決這些不同。提供了一套系統獨立的API,調用packet.dll的程序能夠運行在 不同版本的Windows平臺上而無需重新編譯。packet.dll還有一些附加的功能。 它可執行一些低層操作:如:獲得網卡名字,動態裝載驅動,得到比如機器的網絡 掩碼、硬件沖突等一些系統特定的信息。Packet.dll和NPF都是系統相關的,在 Win95/98和WinNT/2000等不同系統架

34、構Packet.dll會相應有些變化。第三個 模塊wpcap.dll是系統無關的,它提供了更高層、抽象的函數。它包括了一些比 如過濾器生成、用戶級緩沖等其它的高層函數,增加了比如統計和包發送等更高 級的特性。因此程序員能處理兩種類型的API: 一套原始函數集,包含在 packet.dll中,直接與內核層調用匹配;另一套高層函數由wpcap.dll提供,便于 用戶調用,功能更強大。程序員能隨意使用wpcap.dll,但只能在受限的環境中直 接使用 packet.dll.總的說來,Packet.dll直接映射了內核的調用。Wpcap.dll提供了更加友 好、功能更加強大的函數調用。Winpcap的

35、具體結構圖2所示:圖2 Winpcap的具體結構正如在Windows網絡體系結構中所闡釋的,Win32網絡架構基于 NDISNetwork Drive Interface Specification 網絡驅動程序接口標準。NDIS 工作在Windows內核網絡部分的最底層。捕獲進程核心必須工作在內核層,先于 協議棧之前處理包。BPF被網卡驅動程序直接調用,要求NIC設備驅動程序遵從 一些所謂的“ BPFBerkeley Packet Filter驅動規范”。換句話說,它需要設備驅 動可以直接調用BPF Tap函數,能控制所有經過網卡的包發送或接收,能對過濾后 的包進行復制。當使用Winpcap

36、進行捕獲時,這種方法明顯不行。因為Windows 與BPF驅動規范有些不同:Windows不允許為了增加捕獲功能而改變操作系統和 NIC驅動。因此,Winpcap把Network Tap作為協議驅動放置在NDIS結構的上方。 NDIS沒有從NPF中完全分離出底層,不能自動支持不同的介質類型,故需要以這 種方式構建。與NDIS的交互使NPFNetGroup Packet Filter比原始的BPF更加 復雜,BPF通過一條簡單的回調函數與系統交互;在另一方面,NPF是協議棧的一 部分,就同其它網絡協議一樣與操作系統交互。然而,NPF獲得了更好的執行效果, 其Tap比BPF還要運行得快。同BPF

37、一樣,當包靜止時NPF把過濾器放入NIC驅 動內存中。另一個優化措施是NPF的同步操作。異步調用不支持,因此用戶級存 取經常被阻塞。NPF不需要設置用戶級訪問緩沖隊列,這使驅動運行得更快。圖3顯示了 NPF在NDIS結構中的位置:可以看出Winpcap也是用的NDIS,它將自己注冊為一個協議處理驅動。 在原代碼的driverentry里面能看到。NPF是Winpcap中的核心部分,它完成了 大部分的工作:將數據包發送到網絡中并導出捕獲的數據包,交由用戶程序分析 處理。圖 3 NDIS 內 NPFWinpcap中NPF的實現由于是以協議驅動程序的模式來實現的,雖然從性 能上看來并不是最始數據的完

38、全訪問。不同的Windows系統有不同的NDIS版 本,NPF兼容Win2K及其后續的WinXP版本下的NDIS5,也兼容其他Windows平臺 下的NDIS3版本NPF與操作系統之間的通信通常是異步的,NPF提供了一系列的 回調函數供操作系統在需要時調用。NPF提供了應用程序所有I/O操作的回調函 數,如:open,close,read,write 等。NPF與NDIS之間的通信也是異步的.一些事件如當數據包到達時是通過回 調函數通知NPF這個例子中是Packetes tapo,并且,NPF與NDIS和NIC驅動之間 的通信是非阻塞函數來實現的。當NPF調用NDIS函數時,調用立即返回;當處

39、理 完畢時,NDIS再調用一個特定的函數通知NPF.NPF對所有的底層操作都提供了回 調函數。圖4顯示了 NPF的基礎結構及其在Winpcap中的工作模式。圖4 NPF協議驅動Winpcap中過濾進程由用戶級部分開始。它能接收一組用戶定義的過濾 規則例如接收所有的UDP數據包,把它編譯成一套偽指令(例如,如果是IP包且協 議類型等這些指令等于17.就返回“True),把這些指令發送到內核層過濾器,最 后激活代碼。內核層過濾器必須能夠執行這些指令;此外,它需要一個“BPF虛擬 機”來執行偽代碼從而對所有到來的包進行操作。這個核心層和BPF兼容的過濾 器是Winpcap獲得良好性能的關鍵。NPF不

40、同于BPF的一個重要的結構差別就是 選擇了一個環形緩沖區作為核心緩沖區.這有利于數據包快的復制。但這種機制 更難于管理。因為復制的數據不再有固定的大小Libpcap中,用戶緩沖區和核心 緩沖區都是32K。當數據從內核緩沖區傳送到用戶緩沖區時,相同數量的包被復 制到內核緩沖區中。它們是同步更新的,而不是在之后。由于內核部分較之緩沖 區傳送有更高的優先級,能獨占CPU時,故復制過程從用戶層開始能釋放掉緩沖 區已傳送的部分。環形緩沖區允許所有的容量來存放數據包,前面談到的一對 BPF交換緩沖區只能用一半的容量。整個緩沖區可以用一條簡單的Read指令讀 取,肯定減少了系統調用和在用戶、內核模式之間上下

41、文切換的次數。因為一次 上下文切換需要保護現場僅CPU描述符和任務狀態段的開銷就接近數百個字節, 大批的傳送會減少進程的開銷。但是一個太大的用戶緩沖區不會帶來任何好處。 當可分配內存太大時,上下文切換的開銷反而可忽略不計了。Winpcap的核心緩 沖區比BPF的大,通常為1M。一個小緩沖區會影響捕獲進程。尤其在一段時間里 應用進程讀取數據的速度不如捕獲進程,而且數據要被傳送到磁盤,網絡流量在 激增。內核緩沖區和用戶緩沖區都能在運行時間里改變。數據解析模塊在本模塊的設計中,主要涉及了三方面的知識:windows網絡體系結構、 TCP/IP協議,數據的封裝和分用過程。TCP/IP 參考模 型與 I

42、SOInternational Standards Organization 的 OSIOpen Systems Interconnection Reference Model 參考模型相比,要簡單實 用得多,也是目前廣泛使用的網絡參考模型。在TCP/IP參考模型中沒有明確的數 據鏈路層和物理層,而是將它們合為較為抽象的“網絡設備互連”作為硬件基礎,隨主機和網絡的不同而不同。這種模型的應用范圍較廣,既可用于廣域網.也可用 于局域網。TCP/IP協議族,有很多協議。當應用程序用TCP傳送數據是,數據被送入協議棧中,然后逐個通過每一 層直到被當作一串比特流送入網絡。然后逐個通過每一層直到被當作一串

43、比特流 送入網絡。其中每一層對收到的數據都要增加一些首部信息(有時還要增加尾部 信息)。TCP傳給IP的數據單元稱作TCP報文段或簡稱為TCP段(TCP segment) o IP傳給網絡接口層的數據單元稱作IP數據報。通過以太網傳輸的比特流稱作幀 Frame。這就是通常說的數據的封裝過程。當目的主機收到一個以太網數據幀時,數據就開始從協議棧中由底向上 升,同時去掉各層協議加上的報文首部。每層協議盒都要去檢查報文首部中的協 議標識,以確定接收數據的上層協議。這個過程稱作分用(Demultiplexing)。IP是TCP/IP協議族中最為核心的協議。所有的TCP、UDP、ICMP及IGMP 數據

44、都以IP數據報格式傳輸IP提供不可靠、無連接的數據報傳送服務。IP各域的含義如下:版本:當前IP協議的版本號,本論文采用的版本號為4;首部長度:以32bit為單位的包頭長度;服務類型:規定對本數據報的處理方式,比如優先權等;總長:以Byte為單位的整個IP數據報長度;標識:信源主機賦予每個IP數據報的唯一標識符號,用于控制分片及其 重組;標志和片偏移:同樣用于控制分片及其重組;生存時間:設置本數據報的最大生存時間,以秒為單位;協議:表示創建本IP數據報數據區數據的高層協議的類型,如TCP,UDP 等;頭標校驗和:用于保證頭標數據的完整性;源IP地址和目的IP地址:分別指發送本數據報的主機IP地

45、址和接受本 數據報的主機的IP地址;選項:用于控制和測試,是IP數據報中可選的部分,包含“源路徑”、“路 徑記錄”、“時間戳”等幾種類型。TCP協議是網絡中應用最為廣泛的協議,許多的應用層協議都是在建立 在TCP協議之上的。TCP協議頭部信息如下:源端口 :發送端TCP端口號;目的端口:接收端TCP端口號;序號:指出段中數據在發送端數據流中的位置;確認號:指出本機希望下一個接收的字節的序號;頭標長度:以32bit為單位的段頭標長度,針對變長的“選項”域設計 的;碼位:指出段的目的與內容,不同的各碼位置位有不同的含義;窗口:用于通告接收端接收緩沖區的大小;校驗和:這是可選域,置0表示未選,全1表

46、示校驗和為伍;緊急指針:當碼位的URG置位時,指出緊急指針的序號;UDP協議是英文User Datagram Protocol的縮寫,即用戶數據報協議,主要用來支持那些需要在計算機之間傳輸數據的網絡應用。包括網絡視頻會議系統 在內的眾多的客戶/服務器模式的網絡應用都需要使用UDP協議。UDP協議從問 世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但 是即使是在今天,UDP仍然不失為一項非常實用和可行的網絡傳輸層協議。UDP 數據報各域的意義與TCP段中相應的域相同。只有校驗和有些不同,除UDP數據 報本身外,它還覆蓋一個附加的“偽頭標”。這個偽頭標來自于IP報頭,包括:源

47、 IP地址、信宿IP地址、協議類型、UDP長度及填充域。數據分析模塊本系統采用異常檢測量化分析方法,把檢測規則和屬性以數值形式表示。 在檢測中,采用計數方法來描述用戶和系統行為某種屬性,這些計數值只能在一 定范圍內變化。例如:系統允許有限的不成功注冊次數、一種特定類型的網絡連 接數、企圖訪問文件的次數、訪問文件或目錄次數和訪問網絡系統次數。這個數 值檢測以一個相對固定的時間間隔例如1小時來度量用戶的行為。在本系統中, 分析器對解析的數據包計算每一個包的異常值,一旦發現異常值越限,則認為發 生了異常攻擊,就將該包信息存入數據庫中。異常值由用戶的行為的歷史情況來 決定。基本思想是,一般情況下,同一

48、個用戶在一定時間內連接本機的端口數較少, 如果這個連接數突然增大,這個地址的異常值就增高。應當說,這并不是網絡人侵 的嚴格定義,它只是反映出被檢測的數據包的“異常”程度。例如因網絡問題而 使來自同一個IP地址的數據突然增多時,這種檢測方法可能會認為對方有異常 行為。分析結果記錄用數據庫記錄異常數據包信息,用于以后的分析與檢查。報警處理模塊將數據庫中的信息及時響應,確定入侵的類型并進行報警。個人入侵檢測系統的實現系統的總體結構PIDS總體設計如圖5:圖5 PIDS總體設計系統捕獲網絡中的數據包,解碼IP、TCP、UDP的頭部各字段的信息,然后 對解碼后的數據進行分析統計,并對其做出判斷。系統將入

49、侵信息記錄入數據庫,并通過告警窗口顯示。數據包捕獲模塊實現PIDS的數據包捕獲是通過調用Winpcap中的動態庫函數實現的。使用 pcap_findalldevs函數獲取網絡設備鏈表。獲取失敗終止程序并打印出錯誤報 告,成功就打印出所有網絡設備信息以供選擇。在選擇好進入的網絡設備后,對該 網絡設備進行相應的配置,然后使用pcap_loop函數捕獲數據包。首先獲得網卡信息:/*返回網絡設備的鏈表,以供選擇*/ifpcap_findalldevs&alldevs, errbuf -1fprintfstderr,Error in pcap_findalldevs: %sn”, errbuf; exi

50、tl;/*選擇列表*/fordalldevs; d; dd-nextprintf%d. %sn, +i, d-name;if d-descriptionprintf %sn, d-description;elseprintf No description availablen”;ifi0printfnNo interfaces found! Make sure WinPcap is installed.n”;return -1;printfEnter the interface number 1-%d:,i;scanf%d, &inum;接下來根據所選擇的數據進入該網卡:fordalldevs

51、, i0; i inum-1 ;dd-next, i+;對選擇的網卡進行屬性定義:adhandle pcap_open_lived-name, / 網卡名字65536,/ 65536表示對所有數據捕獲0, 網卡為混雜模式1, /抓包時間間隔errbuf / error buffer設置過濾規則packet_filter ip|udp”;連接并設置過濾器:pcap_compileadhandle, &fcode, packet_filter, 1, netmask;pcap_setfilteradhandle, &fcode;最后使用回調函數捕獲并解析數據包:pcap_loopadhandle, 0, packet_handler, NULL;解碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論