畢業(yè)設計(論文)關于WINDOWS個人入侵檢測的研究



《畢業(yè)設計(論文)關于WINDOWS個人入侵檢測的研究》由會員分享,可在線閱讀,更多相關《畢業(yè)設計(論文)關于WINDOWS個人入侵檢測的研究(22頁珍藏版)》請在裝配圖網上搜索。
1、 關于WINDOWS個人入侵檢測的研究 摘 要 入侵檢測系統(tǒng)(IDS)可以對系統(tǒng)或網絡資源進行實時檢測,及時發(fā)現(xiàn)闖入系統(tǒng)或網絡的入侵者,也可預防合法用戶對資源的誤操作。本論文從入侵檢測的基本理論和入侵檢測中的關鍵技術出發(fā),主要研究了一個簡單的基于網絡的windows平臺上的個人入侵檢測系統(tǒng)的實現(xiàn)(PIDS,Personal Intrusion Detection System)。論文首先分析了當前網絡的安全現(xiàn)狀,介紹了入侵檢測技術的歷史以及當前入侵檢測系統(tǒng)的關鍵理論。分析了Windows的網絡體系結構以及開發(fā)工具Winpcap的數據包捕獲和過濾的結構。最后在Winpcap系統(tǒng)環(huán)境下
2、實現(xiàn)本系統(tǒng)設計。本系統(tǒng)采用異常檢測技術,通過Winpcap截取實時數據包,同時從截獲的IP包中提取出概述性事件信息并傳送給入侵檢測模塊,采用量化分析的方法對信息進行分析。系統(tǒng)在實際測試中表明對于具有量化特性的網絡入侵具有較好的檢測能力。最后歸納出系統(tǒng)現(xiàn)階段存在的問題和改進意見,并根據系統(tǒng)的功能提出了后續(xù)開發(fā)方向。 關鍵詞:網絡安全;入侵檢測;數據包捕獲;PIDS Implementation of Personal Intrusion Detection System Abstract The Intrusion Detection System (IDS) can detec
3、t the system or the network resources on the real-time, discover the intruder who intends to enter into a system or a network 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
4、the realization of a simple Personal Intrusion Detection System (PIDS), which based on Windows platform, is well researched. 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 s
5、ystem are introduced. At last, the network architecture on Windows as well as the structure of capturing and filtering data 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 t
6、he system. After catching data packets with Winpcap in real-time, extracting probabilistic information about events from the 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 sho
7、ws a good ability on detecting the quantitative characteristics of network intrusion. Finally, the existed problems and our 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, Intru
8、sion detection, Package catching, PIDS 目 錄 論文總頁數:24頁 1 引言 1 1.1 網絡安全概述 1 1.1.1 網絡安全問題的產生 1 1.1.2 網絡信息系統(tǒng)面臨的安全威脅 1 1.1.3 對網絡個人主機的攻擊 2 1.2 入侵檢測技術及其歷史 3 1.2.1 入侵檢測(IDS)概念 3 1.2.2 入侵檢測系統(tǒng)的分類 4 1.2.3 入侵檢測模型 5 1.2.4 入侵檢測過程分析 6 1.2.5 入侵檢測的發(fā)展歷史 6 1.3 個人入侵檢測系統(tǒng)的定義 7 1.4 系統(tǒng)研究的意義和方法 7 2 個人入侵檢測
9、系統(tǒng)的設計 7 2.1 數據包捕獲模塊 7 2.2 數據解析模塊 11 2.3 數據分析模塊 12 2.4 分析結果記錄 13 2.5 報警處理模塊 13 3 個人入侵檢測系統(tǒng)的實現(xiàn) 13 3.1 系統(tǒng)的總體結構 13 3.2 數據包捕獲模塊實現(xiàn) 14 3.3 解碼數據包模塊實現(xiàn) 15 3.4 分析數據包模塊實現(xiàn) 16 3.5 分析結果記錄并告警 20 4 個人入侵檢測系統(tǒng)的應用實例分析 21 結 論 22 參考文獻 22 1 引言 1.1 網絡安全概述 1.1.1 網絡安全問題的產生 可以從不同角度對網絡安全作出不同的解釋。一般意義上,網絡安
10、全是指信息安全和控制安全兩部分。國際標準化組織把信息安全定義為“信息的完整性、可用性、保密性和可靠性”;控制安全則指身份認證、不可否認性、授權和訪問控制。 互聯(lián)網與生俱有的開放性、交互性和分散性特征使人類所憧憬的信息共享、開放、靈活和快速等需求得到滿足。網絡環(huán)境為信息共享、信息交流、信息服務創(chuàng)造了理想空間,網絡技術的迅速發(fā)展和廣泛應用,為人類社會的進步提供了巨大推動力。然而,正是由于互聯(lián)網的上述特性,產生了許多安全問題: (1)信息泄漏、信息污染、信息不易受控。例如,資源未授權侵用、未授權信息流出現(xiàn)、系統(tǒng)拒絕信息流和系統(tǒng)否認等,這些都是信息安全的技術難點。 (2)在網絡環(huán)境中,一些組織或
11、個人出于某種特殊目的,進行信息泄密、信息破壞、信息侵權和意識形態(tài)的信息滲透,甚至通過網絡進行政治顛覆等活動,使國家利益、社會公共利益和各類主體的合法權益受到威脅。 (3)網絡運用的趨勢是全社會廣泛參與,隨之而來的是控制權分散的管理問題。由于人們利益、目標、價值的分歧,使信息資源的保護和管理出現(xiàn)脫節(jié)和真空,從而使信息安全問題變得廣泛而復雜。 (4)隨著社會重要基礎設施的高度信息化,社會的“命脈”和核心控制系統(tǒng)有可能面臨更大的威脅。 1.1.2 網絡信息系統(tǒng)面臨的安全威脅 目前網絡信息系統(tǒng)面臨的安全威脅主要有: (1)非法使用服務:這種攻擊的目的在于非法利用網絡的能力,網絡上的非授權訪問
12、應該是不可能的。不幸的是,用于在網絡上共享資源及信息的工具、程序存在許多安全漏洞,而利用了這些漏洞就可以對系統(tǒng)進行訪問了。 (2)身份冒充;這種攻擊的著眼點在于網絡中的信任關系,主要有地址偽裝IP欺騙和用戶名假冒。 (3)數據竊取:指所保護的重要數據被非法用戶所獲取,如入侵者利用電磁波輻射或搭線竊聽等方式截獲用戶口令、帳號等重要敏感信息。 (4)破壞數據完整性:指通過非法手段竊得系統(tǒng)一定使用權限,并刪除、修改、偽造某些重要信息,以干擾用戶的正常使用或便于入侵者的進一步攻擊。 1.1.3 對網絡個人主機的攻擊 對方首先通過掃描來查找可以入侵的機器,即漏洞探測;接著確定該機器的IP地址;
13、然后利用相應的攻擊工具發(fā)起某種攻擊。 網絡嗅探,嗅探器是一種網絡監(jiān)聽工具(如:sniffer),該工具利用計算機網絡接口可以截獲其他計算機的數據信息。嗅探器工作在網絡環(huán)境的底層,它會攔截所有正在網絡上傳送的數據,并且通過相應的軟件實時分析這些數據的內容,進而明確所處的網絡狀態(tài)和整體布局。在合理的網絡中,嗅探器對系統(tǒng)管理員而言至關重要,通過嗅探器可以監(jiān)視數據流動情況以及網絡傳輸的信息,從而為管理員判斷網絡問題、管理網絡提供寶貴的信息。然而,如果黑客使用嗅探器,他可以獲得和系統(tǒng)管理員同樣重要而敏感的信息,(如:在某局域網上,嗅探器可以很輕松地截獲在網上傳送的用戶姓名、口令、信用卡號碼和帳號等)從
14、而對網絡安全構成威脅。其工作原理是:在一個共享介質的網絡中(如以太網),一個網段上的所有網絡接口均能訪問介質上傳輸的所有數據。每個網絡接口的硬件地址與其他網絡接口的硬件地址不同,同時每個網絡至少還有一個廣播地址。廣播地址并不對應于某個具體的網絡接口,而是代表所有網絡接口。當用戶發(fā)送數據時,這些數據就會發(fā)送到局域網上所有可用的機器。在一般情況下,網絡上所有的機器都可以“聽”到通過的流量,但對不屬于自己的數據的硬件地址不予響應。換句話說,工作站A不會捕獲屬于工作站B的數據,而是簡單地忽略這些數據。當發(fā)送者希望引起網絡中所有主機操作系統(tǒng)的注意時,他就使用“廣播地址”。因此,在正常情況下,一個合法的網
15、絡接口應該只響應這樣兩種數據幀:一是幀的目標區(qū)域具有和本地網絡接口相匹配的硬件地址,二是幀的目標區(qū)域具有“廣播地址”。在接收到上面兩種情況的數據幀時,主機通過CPU產生硬件中斷,該中斷能引起操作系統(tǒng)注意,然后將幀中所包含的數據傳送給系統(tǒng)作進一步處理。而嗅探器就是一種能將本地計算機狀態(tài)設成“混雜(Promiscuous)”狀態(tài)的軟件,當本機處于這種方式時,該機具備“廣播地址”,它對所有遭遇到的每一個幀都產生硬件中斷以便提醒操作系統(tǒng)處理流經該網段的每一報文包。在該方式下,網絡接口就可以捕獲網絡上所有數據幀,從而可以達到監(jiān)聽的目的。 拒絕服務攻擊(Denial of Service,簡稱DoS),
16、是指占據大量的共享資源(如:處理器、磁盤空間、CPU、打印機),使系統(tǒng)沒有剩余的資源給其他用戶,從而使服務請求被拒絕,造成系統(tǒng)運行遲緩或癱瘓。其攻擊目的是為完成其他攻擊做準備。其攻擊原理是:在拒絕服務攻擊中,惡意用戶向服務器傳送眾多要求確認的信息,使服務器里充斥著這種無用的信息。所有這些請求的地址都是虛假的,以至于服務器試圖回傳時,卻無法找到用戶。服務器于是暫時等候,有時超過一分鐘,然后再切斷連接。服務器切斷連接后,攻擊者又發(fā)送新一批虛假請求,該過程周而復始,最終使網站服務器充斥大量要求回復的信息,消耗網絡帶寬或系統(tǒng)資源,導致網絡或系統(tǒng)不勝負荷以至于癱瘓而停止提供正常的網絡服務。典型的DOS攻
17、擊技術,如TCP/SYN攻擊,該攻擊作為一種拒絕服務攻擊存在的時間己經有20多年了。但是,隨著技術的不斷進步,SYN攻擊也不斷被更多黑客所了解并利用。其原理是基于連接時的三次握手,如果黑客機器發(fā)出的包的源地址是一個虛假的IP地址,ISP主機發(fā)出的確認請求包ACK/SYN就找不到目標地址,如果這個確認包一直沒找到目標地址,那么也就是目標主機無法獲得對方回復的ACK包。而在缺省超時的時間范圍內,主機的一部分資源要花在等待這個ACK包的響應上,假如短時間內主機接到大量來自虛假IP地址的SYN包,它就要占有大量的資源來處理這些錯誤的等待,最后的結果就是系統(tǒng)資源耗盡以致癱瘓。 特洛伊木馬來源于希臘神話
18、,講述的是通過木馬血屠特洛伊城的故事。這一故事形象地說明了木馬程序的特點。在計算機安全學中,特洛伊木馬指的是一種計算機程序,它表面上具有某種有用的功能,實際上卻隱藏著可以控制用戶計算機系統(tǒng),危害系統(tǒng)安全的破壞性指令,特洛伊木馬代表了一種程度較高的危險。當這種程序進入系統(tǒng)后,便有可能給系統(tǒng)帶來危害。在特洛伊木馬程序中插入的代碼在別的程序中依然能存在,但只在藏身的程序中進行破壞性活動。代碼能夠在主程序的特權范圍內從事任何破壞行為,使用自身或者其他程序進行操作。其工作原理實質是,特洛伊木馬只是一個網絡客戶/服務程序。網絡客戶/服務模式的原理是一臺主機(服務器)提供服務,另一臺主機(客戶機)接受服務。
19、作為服務器的主機一般會打開一個默認的端口并進行監(jiān)聽,如果有客戶機向服務器這一端口提出連接請求,服務器上的相應程序就會自動運行,來應答客戶機的請求,此程序稱為守護進程。對于木馬來說,被控制端是一臺服務器,控制端則是一臺客戶機。黑客經常用欺騙手段引誘目標對象運行服務器端程序,黑客一旦成功地侵入了用戶的計算機后,就會在計算機系統(tǒng)中隱藏一個會在Windows啟動時悄悄運行的程序,采用服務器/客戶機的運行方式,從而達到在用戶上網時控制用戶計算機的目的。 1.2 入侵檢測技術及其歷史 1.2.1 入侵檢測(IDS)概念 1980年,詹姆斯·安德森(James P.Anderson)第一次系統(tǒng)闡述了入
20、侵檢測的概念,并將入侵行為分為外部滲透、內部滲透和不法行為三種,還提出了利用審計數據監(jiān)視入侵活動的思想。 Anderson將入侵嘗試或威脅定義為:潛在的、有預謀的、未經授權的訪問信息、操作信息、致使系統(tǒng)不可靠或無法使用的企圖。而入侵檢測的定義為:發(fā)現(xiàn)非授權使用計算機的個體(如“黑客”)或計算機系統(tǒng)的合法用戶濫用其訪問系統(tǒng)的權利以及企圖實施上述行為的個體。執(zhí)行入侵檢測任務的程序即是入侵檢測系統(tǒng)。入侵檢測系統(tǒng)也可以定義為:檢測企圖破壞計算機資源的完整性,真實性和可用性的行為的軟件。 入侵檢測系統(tǒng)執(zhí)行的主要任務包括:監(jiān)視、分析用戶及系統(tǒng)活動;審計系統(tǒng)構造和弱點;識別、反映已知進攻的活動模式,向相
21、關人士報警;統(tǒng)計分析異常行為模式;評估重要系統(tǒng)和數據文件的完整性;審計、跟蹤管理操作系統(tǒng),識別用戶違反安全策略的行為。入侵檢測一般分為三個步驟:信息收集、數據分析、響應。 入侵檢測的目的:(1)識別入侵者;(2)識別入侵行為;(3)檢測和監(jiān)視以實施的入侵行為;(4)為對抗入侵提供信息,阻止入侵的發(fā)生和事態(tài)的擴大。 1.2.2 入侵檢測系統(tǒng)的分類 現(xiàn)有的IDS的分類,大都基于信息源和分析方法。為了體現(xiàn)對IDS從布局、采集、分析、響應等各個層次及系統(tǒng)性研究方面的問題,在這里采用五類標準:控制策略、同步技術、信息源、分析方法、響應方式。 1. 按照控制策略分類 控制策略描述了IDS的各元素
22、是如何控制的,以及IDS的輸入和輸出是如何管理的。按照控制策略IDS可以劃分為,集中式IDS、部分分布式IDS和全部分布式IDS。在集中式IDS中,一個中央節(jié)點控制系統(tǒng)中所有的監(jiān)視、檢測和報告。在部分分布式IDS中,監(jiān)控和探測是由本地的一個控制點控制,層次似的將報告發(fā)向一個或多個中心站。在全分布式IDS中,監(jiān)控和探測是使用一種叫“代理”的方法,代理進行分析并做出響應決策。 2. 按照同步技術分類 同步技術是指被監(jiān)控的事件以及對這些事件的分析在同一時間進行。按照同步技術劃分,IDS劃分為間隔批任務處理型IDS和實時連續(xù)性IDS。在間隔批任務處理型IDS中,信息源是以文件的形式傳給分析器,一次
23、只處理特定時間段內產生的信息,并在入侵發(fā)生時將結果反饋給用戶。很多早期的基于主機的IDS都采用這種方案。在實時連續(xù)型IDS中,事件一發(fā)生,信息源就傳給分析引擎,并且立刻得到處理和反映。實時IDS是基于網絡IDS首選的方案。 3. 按照信息源分類 按照信息源分類是目前最通用的劃分方法,它分為基于主機的IDS、基于網絡的IDS和分布式IDS。基于主機的IDS通過分析來自單個的計算機系統(tǒng)的系統(tǒng)審計蹤跡和系統(tǒng)日志來檢測攻擊?;谥鳈C的IDS是在關鍵的網段或交換部位通過捕獲并分析網絡數據包來檢測攻擊。分布式IDS,能夠同時分析來自主機系統(tǒng)日志和網絡數據流,系統(tǒng)由多個部件組成,采用分布式結構。 4.
24、 按照分析方法分類 按照分析方法IDS劃分為濫用檢測型IDS和異常檢測型IDS。濫用檢測型的IDS中,首先建立一個對過去各種入侵方法和系統(tǒng)缺陷知識的數據庫,當收集到的信息與庫中的原型相符合時則報警。任何不符合特定條件的活動將會被認為合法,因此這樣的系統(tǒng)虛警率很低。異常檢測型IDS是建立在如下假設的基礎之上的,即任何一種入侵行為都能由于其偏離正?;蛘咚谕南到y(tǒng)和用戶活動規(guī)律而被檢測出來。所以它需要一個記錄合法活動的數據庫,由于庫的有限性使得虛警率比較高。 5. 按照響應方式分類 按照響應方式IDS劃分為主動響應IDS和被動響應IDS。當特定的入侵被檢測到時,主動IDS會采用以下三種響應:
25、收集輔助信息;改變環(huán)境以堵住導致入侵發(fā)生的漏洞;對攻擊者采取行動(這是一種不被推薦的做法,因為行為有點過激)。被動響應IDS則是將信息提供給系統(tǒng)用戶,依靠管理員在這一信息的基礎上采取進一步的行動。 1.2.3 入侵檢測模型 美國斯坦福國際研究所(SRI)的D.E.Denning于1986年首次提出一種入侵檢測模型,該模型的檢測方法就是建立用戶正常行為的描述模型,并以此同當前用戶活動的審計記錄進行比較,如果有較大偏差,則表示有異常活動發(fā)生。這是一種基于統(tǒng)計的檢測方法。隨著技術的發(fā)展,后來人們又提出了基于規(guī)則的檢測方法。結合這兩種方法的優(yōu)點,人們設計出很多入侵檢測的模型。通用入侵檢測構架(Co
26、mmon Intrusion Detection Framework簡稱CIDF)組織,試圖將現(xiàn)有的入侵檢測系統(tǒng)標準化,CIDF闡述了一個入侵檢測系統(tǒng)的通用模型(一般稱為CIDF模型,如圖1所示)。它將一個入侵檢測系統(tǒng)分為以下四個組件: 事件產生器(event generators),用e盒表示; 事件分析器(event analyzers),用a盒表示; 響應單元(responseunits),用r盒表示; 事件數據庫(event databases),用d盒表 它將需要分析的數據通稱為事件,事件可以是基于網絡的數據包也可以是基于主機的系統(tǒng)日志中的信息。事件產生器的目的是從整個計算
27、機環(huán)境中獲得事件,并向系統(tǒng)其它部分提供此事件。事件分析器分析得到的事件并產生分析結果。響應單元則是對分析結果做出反應的功能單元,它可以做出切斷連接、修改文件屬性等強烈反應。事件數據庫是存放各種中間和最終數據的地方的通稱,它可以是復雜的數據庫也可以是簡單的文本文件。 圖1 CIDF入侵檢測模型 1.2.4 入侵檢測過程分析 過程分為三部分:信息收集、信息分析和結果處理。 (1)信息收集:入侵檢測的第一步是信息收集,收集內容包括系統(tǒng)、網絡、數據及用戶活動的狀態(tài)和行為。由放置在不同網段的傳感器或不同主機的代理來收集信息,包括系統(tǒng)和網絡日志文件、網絡流量、非正常的目錄和文件改變、非正常的程序
28、執(zhí)行。 (2)信息分析:收集到的有關系統(tǒng)、網絡、數據及用戶活動的狀態(tài)和行為等信息,被送到檢測引擎,檢測引擎駐留在傳感器中,一般通過三種技術手段進行分析:模式匹配、統(tǒng)計分析和完整性分析。當檢測到某種誤用模式時,產生一個告警并發(fā)送給控制臺。 (3)結果處理:控制臺按照告警產生預先定義的響應采取相應措施,可以是重新配置路由器或防火墻、終止進程、切斷連接、改變文件屬性,也可以只是簡單的告警。 1.2.5 入侵檢測的發(fā)展歷史 1980年James P Anderson在給一個保密客戶寫的一份題為《計算機安全威脅監(jiān)控與監(jiān)視》的技術報告中指出,審計記錄可以用于識別計算機誤用,他把威脅進行了分類,第一
29、次詳細闡述了入侵檢測的概念。1984年到1986年喬治敦大學的Dorothy Denning和SRI公司計算機科學實驗室的Peter Neumann研究出了一個實時入侵檢測系統(tǒng)模型— IDES (Intrusion Detection Expert Systems入侵檢測專家系統(tǒng)),是第一個在一個應用中運用了統(tǒng)計和基于規(guī)則兩種技術的系統(tǒng),是入侵檢測研究中最有影響的一個系統(tǒng)。1989年,加州大學戴維斯分校的Todd Heberlein寫了一篇論文《A Network Security Monitor》,該監(jiān)控器用于捕獲TCP/IP分組,第一次直接將網絡流作為審計數據來源,因而可以在不將審計數據轉
30、換成統(tǒng)一格式的情況下監(jiān)控異種主機,網絡入侵檢測從此誕生。 1.3 個人入侵檢測系統(tǒng)的定義 個人入侵檢測系統(tǒng)(PIDS),以網絡數據包作為分析數據源,采用異常檢測分析方法。它只分析處理與個人主機有關的IP數據包,它保護的是個人主機系統(tǒng)。 1.4 系統(tǒng)研究的意義和方法 綜上,當個人用戶接入Internet時,個人機的安全就將面臨著攻擊威脅。因此,個人用戶的重要數據、機密文件等需要安全保護。靜態(tài)的防御措施,如個人防火墻等,已不能滿足個人用戶的需求,個人用戶需要一個更全面的個人安全防范體系。如果把入侵檢測技術應用到個人機的安全防范中,它將與個人防火墻一起為個人用戶提供一個更安全的動態(tài)防范體系。
31、 本文闡述的就是在Windows下實現(xiàn)個人入侵檢測系統(tǒng)(PIDS)。本系統(tǒng)采用基于網絡的異常檢測方法的入侵檢測技術,使用量化分析的方法來檢測用戶的行為。在總結出的正常行為規(guī)律的基礎上,檢查入侵和濫用行為特征與其之間的差異,以此來判斷是否有入侵行為。 2 個人入侵檢測系統(tǒng)的設計 2.1 數據包捕獲模塊 網絡入侵檢測系統(tǒng)要分析的對象是網絡中的數據包。所以我們就需要對流經網絡的數據包捕獲并加以分析,這樣才能得到實現(xiàn)入侵檢測的功能。對于不同的操作系統(tǒng)有許多不同的數據包捕獲方法。在本系統(tǒng)中,采用了windows下的 Winpcap網絡驅動開發(fā)包,它是Windows平臺下的一個免費、公共的網絡
32、驅動開發(fā)包。開發(fā)Winpcap這個項目的目的在于為Win32應用程序提供訪問網絡底層的能力。它提供了以下的各項功能: 1、捕獲原始數據報,包括在共享網絡上各主機發(fā)送/接收的以及相互之間交換的數據報 2、在數據報發(fā)往應用程序之前,按照自定義的規(guī)則將某些特殊的數據報過濾掉 3、在網絡上發(fā)送原始的數據報 4、收集網絡通信過程中的統(tǒng)計信息 Winpcap由三個模塊構成:NPF, packet.dll, wpcap.dll。前一個工作在內核層,后兩個工作在用戶層。第一個模塊是內核部分NPF (Netgroup Packet Filter),在Win95/98中它是一個VXD(虛擬設備驅動程序文
33、件)文件,在WinNT/Win2000下是一個SYS文件。它的主要功能是過濾數據包,并把這些數據包原封不動地傳給用戶態(tài)模塊。當然也添加了一些系統(tǒng)特定的標志(比如時間戳管理)。這個過程中包括了一些操作系統(tǒng)特有的代碼。第二個模packet.dll用來在不同的Win32平臺下提供一個通用的公共的包驅動接口。事實上,不同版本的Windows平臺在內核層模塊和用戶進程之間的接口不完全相同,packet.dll用于解決這些不同。提供了一套系統(tǒng)獨立的API,調用packet.dll的程序能夠運行在不同版本的Windows平臺上而無需重新編譯。packet.dll還有一些附加的功能。它可執(zhí)行一些低層操作:如:
34、獲得網卡名字,動態(tài)裝載驅動,得到比如機器的網絡掩碼、硬件沖突等一些系統(tǒng)特定的信息。Packet.dll和NPF都是系統(tǒng)相關的,在Win95/98和WinNT/2000等不同系統(tǒng)架構Packet.dll會相應有些變化。第三個模塊wpcap.dll是系統(tǒng)無關的,它提供了更高層、抽象的函數。它包括了一些比如過濾器生成、用戶級緩沖等其它的高層函數,增加了比如統(tǒng)計和包發(fā)送等更高級的特性。因此程序員能處理兩種類型的API:一套原始函數集,包含在packet.dll中,直接與內核層調用匹配;另一套高層函數由wpcap.dll提供,便于用戶調用,功能更強大。程序員能隨意使用wpcap.dll,但只能在受限的環(huán)
35、境中直接使用packet.dll. 總的說來,Packet.dll直接映射了內核的調用。Wpcap.dll提供了更加友好、功能更加強大的函數調用。Winpcap的具體結構圖2所示: 圖2 Winpcap的具體結構 正如在Windows網絡體系結構中所闡釋的,Win32網絡架構基于NDIS(Network Drive Interface Specification網絡驅動程序接口標準)。NDIS工作在Windows內核網絡部分的最底層。捕獲進程核心必須工作在內核層,先于協(xié)議棧之前處理包。BPF被網卡驅動程序直接調用,要求NIC設備驅動程序遵從一些所謂的“BPF(Berkeley Packe
36、t Filter)驅動規(guī)范”。換句話說,它需要設備驅動可以直接調用BPF Tap函數,能控制所有經過網卡的包(發(fā)送或接收),能對過濾后的包進行復制。當使用Winpcap進行捕獲時,這種方法明顯不行。因為Windows與BPF驅動規(guī)范有些不同:Windows不允許為了增加捕獲功能而改變操作系統(tǒng)和NIC驅動。因此,Winpcap把Network Tap作為協(xié)議驅動放置在NDIS結構的上方。NDIS沒有從NPF中完全分離出底層,不能自動支持不同的介質類型,故需要以這種方式構建。與NDIS的交互使NPF(NetGroup Packet Filter)比原始的BPF更加復雜,BPF通過一條簡單的回調函數
37、與系統(tǒng)交互;在另一方面,NPF是協(xié)議棧的一部分,就同其它網絡協(xié)議一樣與操作系統(tǒng)交互。然而,NPF獲得了更好的執(zhí)行效果,其Tap比BPF還要運行得快。同BPF一樣,當包靜止時NPF把過濾器放入NIC驅動內存中。另一個優(yōu)化措施是NPF的同步操作。異步調用不支持,因此用戶級存取經常被阻塞。NPF不需要設置用戶級訪問緩沖隊列,這使驅動運行得更快。 圖3顯示了NPF在NDIS結構中的位置: 可以看出Winpcap也是用的NDIS,它將自己注冊為一個協(xié)議處理驅動。(在原代碼的driverentry里面能看到)。NPF是Winpcap中的核心部分,它完成了大部分的工作:將數據包發(fā)送到網絡中并導出捕獲的數
38、據包,交由用戶程序分析處理。 圖3 NDIS內NPF Winpcap中NPF的實現(xiàn)由于是以協(xié)議驅動程序的模式來實現(xiàn)的,雖然從性能上看來并不是最始數據的完全訪問。不同的Windows系統(tǒng)有不同的NDIS版本,NPF兼容Win2K及其后續(xù)的WinXP版本下的NDIS5,也兼容其他Windows平臺下的NDIS3版本。NPF與操作系統(tǒng)之間的通信通常是異步的,NPF提供了一系列的回調函數供操作系統(tǒng)在需要時調用。NPF提供了應用程序所有I/O操作的回調函數,如:open,close,read,write等。 NPF與NDIS之間的通信也是異步的.一些事件如當數據包到達時是通過回調函數通知NPF(這
39、個例子中是Packetes tapo),并且,NPF與NDIS和NIC驅動之間的通信是非阻塞函數來實現(xiàn)的。當NPF調用NDIS函數時,調用立即返回;當處理完畢時,NDIS再調用一個特定的函數通知NPF.NPF對所有的底層操作都提供了回調函數。 圖4顯示了NPF的基礎結構及其在Winpcap中的工作模式。 圖4 NPF協(xié)議驅動 Winpcap中過濾進程由用戶級部分開始。它能接收一組用戶定義的過濾規(guī)則(例如接收所有的UDP數據包),把它編譯成一套偽指令(例如,如果是IP包且協(xié)議類型等這些指令等于17.就返回“True"),把這些指令發(fā)送到內核層過濾器,最后激活代碼。內核層過濾器必須能夠執(zhí)行
40、這些指令;此外,它需要一個“BPF虛擬機”來執(zhí)行偽代碼從而對所有到來的包進行操作。這個核心層和BPF兼容的過濾器是Winpcap獲得良好性能的關鍵。NPF不同于BPF的一個重要的結構差別就是選擇了一個環(huán)形緩沖區(qū)作為核心緩沖區(qū).這有利于數據包快的復制。但這種機制更難于管理。因為復制的數據不再有固定的大小(Libpcap中,用戶緩沖區(qū)和核心緩沖區(qū)都是32K)。當數據從內核緩沖區(qū)傳送到用戶緩沖區(qū)時,相同數量的包被復制到內核緩沖區(qū)中。它們是同步更新的,而不是在之后。由于內核部分較之緩沖區(qū)傳送有更高的優(yōu)先級,能獨占CPU時,故復制過程(從用戶層開始)能釋放掉緩沖區(qū)已傳送的部分。環(huán)形緩沖區(qū)允許所有的容量來
41、存放數據包,前面談到的一對BPF交換緩沖區(qū)只能用一半的容量。整個緩沖區(qū)可以用一條簡單的Read() 指令讀取,肯定減少了系統(tǒng)調用和在用戶、內核模式之間上下文切換的次數。因為一次上下文切換需要保護現(xiàn)場(僅CPU描述符和任務狀態(tài)段的開銷就接近數百個字節(jié)),大批的傳送會減少進程的開銷。但是一個太大的用戶緩沖區(qū)不會帶來任何好處。當可分配內存太大時,上下文切換的開銷反而可忽略不計了。Winpcap的核心緩沖區(qū)比BPF的大,通常為1M。一個小緩沖區(qū)會影響捕獲進程。尤其在一段時間里應用進程讀取數據的速度不如捕獲進程,而且數據要被傳送到磁盤,網絡流量在激增。內核緩沖區(qū)和用戶緩沖區(qū)都能在運行時間里改變。 2.
42、2 數據解析模塊 在本模塊的設計中,主要涉及了三方面的知識:windows網絡體系結構、TCP/IP協(xié)議,數據的封裝和分用過程。 TCP/IP參考模型與ISO(International Standards Organization)的OSI(Open Systems Interconnection Reference Model)參考模型相比,要簡單實用得多,也是目前廣泛使用的網絡參考模型。在TCP/IP參考模型中沒有明確的數據鏈路層和物理層,而是將它們合為較為抽象的“網絡設備互連”作為硬件基礎,隨主機和網絡的不同而不同。這種模型的應用范圍較廣,既可用于廣域網.也可用于局域網。TCP/I
43、P協(xié)議族,有很多協(xié)議。 當應用程序用TCP傳送數據是,數據被送入協(xié)議棧中,然后逐個通過每一層直到被當作一串比特流送入網絡。然后逐個通過每一層直到被當作一串比特流送入網絡。其中每一層對收到的數據都要增加一些首部信息(有時還要增加尾部信息)。TCP傳給IP的數據單元稱作TCP報文段或簡稱為TCP段(TCP segment)。IP傳給網絡接口層的數據單元稱作IP數據報。通過以太網傳輸的比特流稱作幀(Frame)。這就是通常說的數據的封裝過程。 當目的主機收到一個以太網數據幀時,數據就開始從協(xié)議棧中由底向上升,同時去掉各層協(xié)議加上的報文首部。每層協(xié)議盒都要去檢查報文首部中的協(xié)議標識,以確定接收數據
44、的上層協(xié)議。這個過程稱作分用(Demultiplexing)。 IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP數據都以IP數據報格式傳輸。IP提供不可靠、無連接的數據報傳送服務。 IP各域的含義如下: 版本:當前IP協(xié)議的版本號,本論文采用的版本號為4; 首部長度:以32bit為單位的包頭長度; 服務類型:規(guī)定對本數據報的處理方式,比如優(yōu)先權等; 總長:以Byte為單位的整個IP數據報長度; 標識:信源主機賦予每個IP數據報的唯一標識符號,用于控制分片及其重組; 標志和片偏移:同樣用于控制分片及其重組; 生存時間:設置本數據報的最大生存時
45、間,以秒為單位; 協(xié)議:表示創(chuàng)建本IP數據報數據區(qū)數據的高層協(xié)議的類型,如TCP,UDP等; 頭標校驗和:用于保證頭標數據的完整性; 源IP地址和目的IP地址: 分別指發(fā)送本數據報的主機IP地址和接受本數據報的主機的IP地址; 選項:用于控制和測試,是IP數據報中可選的部分,包含“源路徑”、“路徑記錄”、“時間戳”等幾種類型。 TCP協(xié)議是網絡中應用最為廣泛的協(xié)議,許多的應用層協(xié)議都是在建立在TCP協(xié)議之上的。 TCP協(xié)議頭部信息如下: 源端口:發(fā)送端TCP端口號; 目的端口:接收端TCP端口號; 序號:指出段中數據在發(fā)送端數據流中的位置; 確認號:指出本機希望下一個接收的
46、字節(jié)的序號; 頭標長度:以32bit為單位的段頭標長度,針對變長的“選項”域設計的; 碼位:指出段的目的與內容,不同的各碼位置位有不同的含義; 窗口:用于通告接收端接收緩沖區(qū)的大?。? 校驗和:這是可選域,置0表示未選,全1表示校驗和為伍; 緊急指針:當碼位的URG置位時,指出緊急指針的序號; UDP協(xié)議是英文User Datagram Protocol的縮寫,即用戶數據報協(xié)議,主要用來支持那些需要在計算機之間傳輸數據的網絡應用。包括網絡視頻會議系統(tǒng)在內的眾多的客戶/服務器模式的網絡應用都需要使用UDP協(xié)議。UDP協(xié)議從問世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協(xié)議所
47、掩蓋,但是即使是在今天,UDP仍然不失為一項非常實用和可行的網絡傳輸層協(xié)議。UDP數據報各域的意義與TCP段中相應的域相同。只有校驗和有些不同,除UDP數據報本身外,它還覆蓋一個附加的“偽頭標”。這個偽頭標來自于IP報頭,包括:源IP地址、信宿IP地址、協(xié)議類型、UDP長度及填充域。 2.3 數據分析模塊 本系統(tǒng)采用異常檢測量化分析方法,把檢測規(guī)則和屬性以數值形式表示。在檢測中,采用計數方法來描述用戶和系統(tǒng)行為某種屬性,這些計數值只能在一定范圍內變化。例如:系統(tǒng)允許有限的不成功注冊次數、一種特定類型的網絡連接數、企圖訪問文件的次數、訪問文件或目錄次數和訪問網絡系統(tǒng)次數。這個數值檢測以一個相
48、對固定的時間間隔(例如1小時)來度量用戶的行為。在本系統(tǒng)中,分析器對解析的數據包計算每一個包的異常值,一旦發(fā)現(xiàn)異常值越限,則認為發(fā)生了異常攻擊,就將該包信息存入數據庫中。異常值由用戶的行為的歷史情況來決定。基本思想是,一般情況下,同一個用戶在一定時間內連接本機的端口數較少,如果這個連接數突然增大,這個地址的異常值就增高。應當說,這并不是網絡人侵的嚴格定義,它只是反映出被檢測的數據包的“異?!背潭取@缫蚓W絡問題而使來自同一個IP地址的數據突然增多時,這種檢測方法可能會認為對方有異常行為。 2.4 分析結果記錄 用數據庫記錄異常數據包信息,用于以后的分析與檢查。 2.5 報警處理模塊 將
49、數據庫中的信息及時響應,確定入侵的類型并進行報警。 3 個人入侵檢測系統(tǒng)的實現(xiàn) 3.1 系統(tǒng)的總體結構 3.2 數據包捕獲模塊實現(xiàn) 3.3 解碼數據包模塊實現(xiàn) 3.4 分析數據包模塊實現(xiàn) 系統(tǒng)采用異常檢測分析方法。對每一個進入的源IP地址作時間溢出判定,如果時間沒有溢出,根據捕獲信息,更新記錄信息。否則,清空記錄信息并重新記錄。當記錄信息中的規(guī)則變量超過規(guī)定值時,推測有異常行為。本系統(tǒng)實現(xiàn)了端口掃描和SYN洪水攻擊的檢測。 typedef struct tagrule{ // SYN洪水攻擊的數據結構 struct ip_address keyword;
50、 // 記錄源IP地址 time_t t1_tmpbuf_com; // IP地址進入時間 int count; // 記錄某人連接我時SYN=1的次數 }synrule; typedef struct tagrule2{ // 端口掃描的數據結構 struct ip_address keyword; // 記錄源IP地址 time_t t2_tmpbuf_com; // IP地址進入時間 int count[NUM2]; // 記錄某人當前掃描我的端口 int k;
51、}scnrule; int scanport(ip_header *ih,int dport,int timeout,time_t t_tmpbuf_now,rule2 scanrule[]) //檢測端口掃描的規(guī)則函數 { int h; int m; h=0; if(timeout<=0) { for(h=0;hsaddr.byte1==scanrule[h].keyword.byte1&& ih->saddr.byte2=
52、=scanrule[h].keyword.byte2&& ih->saddr.byte3==scanrule[h].keyword.byte3&& ih->saddr.byte4==scanrule[h].keyword.byte4) { t_tmpbuf_add=t_tmpbuf_now-scanrule[h].t2_tmpbuf_com; if (t_tmpbuf_add>30) { printf("The time is out: %ld\n",t_tmpbuf_add); scanrule[h]
53、.k=0;
scanrule[h].count[scanrule[h].k]=dport;
scanrule[h].k++;
scanrule[h].t2_tmpbuf_com=t_tmpbuf_now;
return scanrule[h].k;
}
for(m=0;m 54、 break;
}
}
if(m==scanrule[h].k)
{
scanrule[h].count[scanrule[h].k] =dport;
scanrule[h].k++;
scanrule[h].t2_tmpbuf_com=t_tmpbuf_now;
return scanrule[h].k;
}
}
}
if(h==i) //沒出現(xiàn)的IP就新加入
{
scanrule[h].keyword.byte1=ih->saddr.byte 55、1;
scanrule[h].keyword.byte2=ih->saddr.byte2;
scanrule[h].keyword.byte3=ih->saddr.byte3;
scanrule[h].keyword.byte4=ih->saddr.byte4;
scanrule[h].t2_tmpbuf_com=t_tmpbuf_now;
scanrule[i].k=0;
scanrule[i].count[scanrule[i].k]=dport;
scanrule[i].k++;
i++;
retu 56、rn scanrule[h].k; //返回新插入的數據下表
}
}
else //將記錄清空
{
i=0;
scanrule[h].k=0;
return 0;
}
return 0;
}
int synflood(ip_header *ih,int syn,int timeout,time_t t_tmpbuf_now)
//檢測洪水攻擊的規(guī)則函數
{
int h;
if(timeout<=0)
{
for(h=0;h 57、rule[h].keyword.byte1&&
ih->saddr.byte2==synrule[h].keyword.byte2&&
ih->saddr.byte3==synrule[h].keyword.byte3&&
ih->saddr.byte4==synrule[h].keyword.byte4)
{
t_tmpbuf_add=t_tmpbuf_now-synrule[h].t1_tmpbuf_com;
if (t_tmpbuf_add>3)
{
printf("The time is out 58、: %ld\n",t_tmpbuf_add);
synrule[h].count =0;
}
if(syn==1)
synrule[h].count =synrule[h].count+1;
else
synrule[h].count =0;
return h; //返回新修改的數據下表
}
}
if(h==j)
{
synrule[h].keyword.byte1=ih->saddr.byte1;
synrule[h].keyword.byt 59、e2=ih->saddr.byte2;
synrule[h].keyword.byte3=ih->saddr.byte3;
synrule[h].keyword.byte4=ih->saddr.byte4;
synrule[h].t1_tmpbuf_com=t_tmpbuf_now;
if(syn==1)
synrule[j].count = 1;
else
synrule[j].count=0;
j++;
return j-1; //返回新插入的數據下表
}
}
else
{
60、
j=0;
return 0;
}
return 0;
}
3.5 分析結果記錄并告警
分析模塊將異常信息記錄到數據庫里,本模塊采用VB訪問MYSQL數據庫技術,讀取數據庫記錄,顯示捕獲的UDP、TCP頭部信息,
將解碼后的UDP,TCP頭部信息放入Mysql數據庫中,表如下:
CREATE TABLE `info` (
`id` int(11) NOT NULL auto_increment,
`dates` varchar(50) default NULL,
`dat` varchar(50) default NULL,
`times` va 61、rchar(50) default NULL,
`sip` varchar(50) default NULL,
`sport` varchar(6) default NULL,
`dip` varchar(50) default NULL,
`dport` varchar(6) default NULL,
`messagetype` varchar(6) default NULL,
`messagelen` varchar(11) default NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
CREATE T 62、ABLE `infotcp` (
`id` int(11) NOT NULL auto_increment,
`times` varchar(50) default NULL,
`dat` varchar(50) default NULL,
`dates` varchar(50) default NULL,
`dates1` varchar(50) default NULL,
`messagelen` varchar(11) default NULL,
`sip` varchar(50) default NULL,
`sport` varchar(6) 63、default NULL,
`dip` varchar(50) default NULL,
`dport` varchar(6) default NULL,
`seq` varchar(11) default NULL,
`acknumber` varchar(11) default NULL,
`win` varchar(6) default NULL,
`sum` varchar(6) default NULL,
`urp` varchar(6) default NULL,
`syn` varchar(6) default NULL,
64、`fin` varchar(6) default NULL,
`rst` varchar(6) default NULL,
`push` varchar(6) default NULL,
`ack` varchar(50) default NULL,
`urg` varchar(6) default NULL,
`ece` varchar(6) default NULL,
`cwr` varchar(6) default NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
4 個人入侵檢測系統(tǒng)的應用實例分析
使用 65、某端口掃描程序在計算機222.18.190.35和222.18.190.26上同時對安裝個人入侵檢測系統(tǒng)的主機222.18.190.18進行掃描,系統(tǒng)能夠正確檢測并及時響應告警,如圖6。
圖6 攻擊響應實例圖
結 論
本文通過對入侵檢測系統(tǒng)關鍵技術、TCP/IP協(xié)議以及開發(fā)工具Winpcap的分析,具體描述了一個簡單的基于Windows操作系統(tǒng)的入侵檢測系統(tǒng)的實現(xiàn)方法。通過對系統(tǒng)的測試證明了系統(tǒng)設計的正確性及可行性,它已經初步具備了入侵檢測系統(tǒng)的基本框架,具有良好的檢測性能和準確的檢測結果。不過因為本人所學知識有限,該系統(tǒng)僅僅還是一個實驗系統(tǒng),只能對基于量化的部分攻擊做出檢測,我會 66、在今后繼續(xù)學習相關知識,對其進行功能上的完善。
參考文獻
[1]韓東海.入侵檢測系統(tǒng)實例剖析[M].北京:清華大學出版社,2002。
[2]RebeccaGB著,陳明奇譯.入侵檢測[M].北京:人民郵電工業(yè)出版社,2001。
[3]唐正軍.網絡入侵檢測系統(tǒng)的統(tǒng)計與實現(xiàn)[M].北京:電子工業(yè)出版社,2002。
[4]唐正軍.入侵檢測技術導論[M].北京:機械工業(yè)出版社,2004。
[5]趙俊忠.基于免疫機制的入侵檢測系統(tǒng)模型研究[D].北京:北京交通大學,2005。
[6]徐志偉,馮百明,李偉.網格計算技術[M].北京:電子工業(yè)出版社,2005。
[7]陳志文,王開云,姜建國.網絡入侵檢測系統(tǒng)的警報合成算法設計[J].信息與電子工程,2005,(3):182-185。
第 20 頁 共 24頁
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題黨課講稿:以高質量黨建保障國有企業(yè)高質量發(fā)展
- 廉政黨課講稿材料:堅決打好反腐敗斗爭攻堅戰(zhàn)持久戰(zhàn)總體戰(zhàn)涵養(yǎng)風清氣正的政治生態(tài)
- 在新錄用選調生公務員座談會上和基層單位調研座談會上的發(fā)言材料
- 總工會關于2025年維護勞動領域政治安全的工作匯報材料
- 基層黨建工作交流研討會上的講話發(fā)言材料
- 糧食和物資儲備學習教育工作部署會上的講話發(fā)言材料
- 市工業(yè)園區(qū)、市直機關單位、市紀委監(jiān)委2025年工作計劃
- 檢察院政治部關于2025年工作計劃
- 辦公室主任2025年現(xiàn)實表現(xiàn)材料
- 2025年~村農村保潔員規(guī)范管理工作方案
- 在深入貫徹中央8項規(guī)定精神學習教育工作部署會議上的講話發(fā)言材料4篇
- 開展深入貫徹規(guī)定精神學習教育動員部署會上的講話發(fā)言材料3篇
- 在司法黨組中心學習組學習會上的發(fā)言材料
- 國企黨委關于推動基層黨建與生產經營深度融合工作情況的報告材料
- 副書記在2025年工作務虛會上的發(fā)言材料2篇