版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、96工礦自動(dòng)化基于Windows下的網(wǎng)絡(luò)監(jiān)控軟件設(shè)計(jì)與開(kāi)發(fā)黃興王獻(xiàn)偉顧軍(中國(guó)礦業(yè)大學(xué)信息與電氣工程學(xué)院江蘇徐州221008【摘要】基于以太網(wǎng)包捕獲原理以及Winpcap軟件包的體系結(jié)構(gòu)和功能,設(shè)計(jì)了一種基于Windows下的網(wǎng)絡(luò)監(jiān)控軟件,利用Winpcap直接對(duì)網(wǎng)卡進(jìn)行操作來(lái)捕獲數(shù)據(jù),并對(duì)捕獲到的數(shù)據(jù)進(jìn)行協(xié)議分析,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的監(jiān)控?!娟P(guān)鍵詞】網(wǎng)絡(luò)監(jiān)控包捕獲Winpcap協(xié)議分析1前言隨著Internet技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)中出現(xiàn)的不安全因素越來(lái)越多.從病毒的出現(xiàn)到人為的惡意攻擊。網(wǎng)絡(luò)中的合法用戶(hù)受到的危害越來(lái)越大,網(wǎng)絡(luò)管理及安全越來(lái)越為人們所重視,網(wǎng)絡(luò)技術(shù)人員開(kāi)始對(duì)網(wǎng)絡(luò)的安全管理進(jìn)行研究.在
2、抵御網(wǎng)絡(luò)上的病毒和惡意攻擊中,網(wǎng)絡(luò)監(jiān)聽(tīng)成為網(wǎng)管人員必須掌握的技術(shù)。監(jiān)聽(tīng),指利用計(jì)算機(jī)網(wǎng)絡(luò)接口截獲目的地為其他計(jì)算機(jī)的數(shù)據(jù)報(bào)文的技術(shù)。它為網(wǎng)絡(luò)管理員提供一類(lèi)管理工具,使用這類(lèi)工具可以監(jiān)視網(wǎng)絡(luò)的狀態(tài)、數(shù)據(jù)流動(dòng)情況以及網(wǎng)絡(luò)上傳輸?shù)男畔⒉⒗眠@些信息來(lái)排除網(wǎng)絡(luò)故障、發(fā)現(xiàn)病毒、檢測(cè)惡意攻擊等等。2數(shù)據(jù)包的采集技術(shù)2.1數(shù)據(jù)包的采集在共享式以太網(wǎng)中,所有的通信都是廣播,也就是說(shuō)通常在同一網(wǎng)段中的所有網(wǎng)絡(luò)接口都可以訪(fǎng)問(wèn)在物理媒體上傳輸?shù)臄?shù)據(jù),使用ARP 和RARP協(xié)議進(jìn)行相互轉(zhuǎn)換。在正常情況下,一個(gè)網(wǎng)絡(luò)接口應(yīng)該只響應(yīng)兩種數(shù)據(jù)幀:1幀的目標(biāo)地址具有和本地網(wǎng)絡(luò)接口相匹配的硬件地址,2幀的目標(biāo)地址是“廣播地址”。
3、在一個(gè)實(shí)際的系統(tǒng)中,數(shù)據(jù)的收發(fā)都由網(wǎng)卡來(lái)完成。每張以太網(wǎng)卡擁有一個(gè)全球唯一的以太網(wǎng)地址。它是由48位的二進(jìn)制數(shù)組成(如000AEB09BB一02。在網(wǎng)卡中內(nèi)建了一個(gè)數(shù)據(jù)包過(guò)濾器.該數(shù)據(jù)包過(guò)濾器的作用是保留以自身網(wǎng)卡的MAC地址為通信目的的數(shù)據(jù)包和廣播數(shù)據(jù)包.丟棄所有其他無(wú)關(guān)的數(shù)據(jù)包,以免除CPU對(duì)無(wú)關(guān)的數(shù)據(jù)包做元謂的處理。這是以太網(wǎng)卡在一般情況下的工作方式。數(shù)據(jù)包過(guò)濾器是可以編程禁用的。禁用數(shù)據(jù)包過(guò)濾器后,即網(wǎng)卡處于混雜模式時(shí),該網(wǎng)卡具備“廣播地址”,繞過(guò)系統(tǒng)正常工作的處理機(jī)制。直接訪(fǎng)問(wèn)網(wǎng)絡(luò)底層。它對(duì)所有收到的每一個(gè)數(shù)據(jù)幀都產(chǎn)生一個(gè)硬件中斷以提醒操作系統(tǒng)處理每一個(gè)報(bào)文包。然后直接訪(fǎng)問(wèn)數(shù)據(jù)鏈路層
4、,截獲相關(guān)數(shù)據(jù)。由應(yīng)用程序而非上層如IP層TCP 層協(xié)議對(duì)數(shù)據(jù)過(guò)濾處理,這樣就可以采集到流經(jīng)網(wǎng)卡的所有數(shù)據(jù)。2.2Winpcap分析目前大多數(shù)操作系統(tǒng)都為應(yīng)用程序提供了訪(fǎng)問(wèn)數(shù)據(jù)鏈路層的手段,它使得應(yīng)用程序可以監(jiān)視數(shù)據(jù)鏈路層上的所有分組。但遺憾的是Windows系統(tǒng)并沒(méi)有提供內(nèi)置的分組捕獲機(jī)制,這一功能必須由應(yīng)用系統(tǒng)提供,Winpcap使用BPF虛擬機(jī)(在Windows中通常稱(chēng)為NPF*I,充了這一機(jī)制。它提供了一整套標(biāo)準(zhǔn)的函數(shù)集,可以完整的截獲網(wǎng)絡(luò)數(shù)據(jù)包。Winpcap的體系結(jié)構(gòu)如圖1所示。(11數(shù)據(jù)包監(jiān)聽(tīng)設(shè)備驅(qū)動(dòng)程序可把設(shè)備驅(qū)動(dòng)增加在Windows2000/XP上,它直接從數(shù)據(jù)鏈路層取得網(wǎng)絡(luò)
5、數(shù)據(jù)包并不加修改地傳遞給運(yùn)行在用戶(hù)層的應(yīng)用程序,也允許用戶(hù)發(fā)送原始數(shù)據(jù)包。數(shù)據(jù)包監(jiān)聽(tīng)設(shè)備驅(qū)動(dòng)程序支持NPF過(guò)濾機(jī)制,可以靈活地設(shè)置過(guò)濾規(guī)則。(2低級(jí)的動(dòng)態(tài)鏈接庫(kù)(packet.d11運(yùn)行在用黃興等:基于Windows下的網(wǎng)絡(luò)監(jiān)控軟件設(shè)計(jì)與開(kāi)發(fā)97應(yīng)用程序f User bufferI手. 1/Packet.dll -。/.。-一一士一/內(nèi)核緩存區(qū)嗡簍鬈瓢l(fā) NIc驅(qū)動(dòng)程序再戶(hù)層內(nèi)核層網(wǎng)絡(luò)數(shù)據(jù)包網(wǎng)絡(luò)圖1Winpcap體系結(jié)構(gòu)戶(hù)層,把應(yīng)用程序和數(shù)據(jù)包監(jiān)聽(tīng)設(shè)備驅(qū)動(dòng)程序隔離開(kāi)來(lái),使得應(yīng)用程序可以不加修改地在不同的Windows系統(tǒng)上運(yùn)行。通過(guò)packet.dll提供的能用來(lái)直接訪(fǎng)問(wèn)BPF驅(qū)動(dòng)程序的包驅(qū)動(dòng)
6、API,利用“raw”模式發(fā)送和接收包。不同Windows系統(tǒng)上的packet.dll并不相同,但它們提供了一套相同的調(diào)用接口,使庫(kù)不依賴(lài)于Windows平臺(tái)。(3高級(jí)系統(tǒng)無(wú)關(guān)庫(kù)(wpcap.d11和應(yīng)用程序編譯在一起,它使用低級(jí)動(dòng)態(tài)鏈接庫(kù)提供的服務(wù),向應(yīng)用程序提供完善的監(jiān)聽(tīng)口。3協(xié)議解碼分析3.1數(shù)據(jù)包解碼經(jīng)過(guò)內(nèi)核過(guò)濾后獲得的數(shù)據(jù)包存放在包獲取組提供的緩沖區(qū)中,此時(shí)獲得的數(shù)據(jù)包是數(shù)據(jù)鏈路層的幀,因此需要對(duì)數(shù)據(jù)包進(jìn)行解碼。當(dāng)主機(jī)接收到一個(gè)以太網(wǎng)數(shù)據(jù)幀時(shí),數(shù)據(jù)從協(xié)議棧中由底向上升,同時(shí)去掉各層協(xié)議加上的報(bào)文首部,每層協(xié)議都要檢查報(bào)文首部的協(xié)議標(biāo)識(shí).以確定接收數(shù)據(jù)的上層協(xié)議。我們把不符合條件的數(shù)據(jù)
7、包丟棄,只保留運(yùn)行TCP/P協(xié)議的數(shù)據(jù)包。協(xié)議分析過(guò)程如圖2所示。3.2協(xié)議分析在數(shù)據(jù)鏈路層,網(wǎng)卡的驅(qū)動(dòng)程序會(huì)自動(dòng)計(jì)算校驗(yàn)和,并取走幀中的前同步碼字段和校驗(yàn)和字段,因此Winpcap接收的數(shù)據(jù)包僅僅是其中的幀頭和載荷部分。我們從幀頭數(shù)據(jù)可以得到數(shù)據(jù)包發(fā)送和接收的機(jī)器網(wǎng)卡的MAC地址.并TCP首部應(yīng)用數(shù)據(jù)卜TCP段一IP首部TCP首部應(yīng)用數(shù)據(jù)色TD黼撼掘、Jf姒搬,K,I以太網(wǎng)首部IP首部TCP首部應(yīng)用數(shù)據(jù)以太網(wǎng)尾部J 陪一以太網(wǎng)幀461500字節(jié)一I圖2數(shù)據(jù)出棧的解析過(guò)程根據(jù)幀類(lèi)型來(lái)判斷上一層(網(wǎng)絡(luò)層的協(xié)議類(lèi)型, IP協(xié)議為Ox0800,不是IP協(xié)議的數(shù)據(jù)包則丟棄,如果是IP協(xié)議,則調(diào)用相應(yīng)的
8、解析函數(shù),載荷部分進(jìn)入下一層協(xié)議分析。圖3描述了以太網(wǎng)數(shù)據(jù)鏈路層的幀格式。÷一幀頭_十載荷÷十幀尾÷圖3以太網(wǎng)數(shù)據(jù)鏈路層的幀格式在網(wǎng)絡(luò)層,IP包頭主要包含以下內(nèi)容:版本號(hào)、首部長(zhǎng)度、服務(wù)類(lèi)型、總長(zhǎng)度、標(biāo)識(shí)符、標(biāo)志、分片偏移量、壽命、協(xié)議類(lèi)型、首部校驗(yàn)和、源IP 地址、目的IP地址。利用解析函數(shù),對(duì)IP包頭信息進(jìn)行解析,根據(jù)IP包內(nèi)的協(xié)議類(lèi)型指明該IP 包負(fù)載的協(xié)議類(lèi)型,即TCP、UDP或ICMP。最后根據(jù)傳輸層所用的協(xié)議類(lèi)型調(diào)用相應(yīng)的解析函數(shù),載荷部分進(jìn)入下一層協(xié)議分析。在傳輸層,TCP包頭主要包含源端口、目的端口、標(biāo)志位、包序列號(hào)及ACK等域。利用解析函數(shù)解析T
9、CP包,根據(jù)解析的TCP包中的源和目的端口號(hào)就可以得到該包的應(yīng)用類(lèi)型.比如FTP的端口為21,Telnet為23.SMTP為25,從而可以實(shí)現(xiàn)監(jiān)控不同的應(yīng)用程序。對(duì)UDP包也可作類(lèi)似分析。在應(yīng)用層.包含的協(xié)議很多。常用的一些應(yīng)用層協(xié)議有WWW、FTP、SMTP、Telnet 等。對(duì)數(shù)據(jù)包的包頭進(jìn)行分析,可以確定該包中應(yīng)用層的協(xié)議。同時(shí)對(duì)包頭的控制域及選擇項(xiàng)進(jìn)行說(shuō)明和文字描述,將協(xié)議可視化,為用戶(hù)提供直觀(guān)的監(jiān)視手段。4系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)本系統(tǒng)在windows2000環(huán)境下采用Visual c+6.0工具開(kāi)發(fā)。整個(gè)系統(tǒng)主要由數(shù)據(jù)包的捕捉模塊、協(xié)議分析模塊、統(tǒng)計(jì)分析模塊組成。4.1數(shù)據(jù)包采集模塊98工礦
10、自動(dòng)化要獲得網(wǎng)絡(luò)上的所有數(shù)據(jù)包,必須直接訪(fǎng)問(wèn)數(shù)據(jù)鏈路層。目前大多數(shù)操作系統(tǒng)都為應(yīng)用程序提供了訪(fǎng)問(wèn)數(shù)據(jù)鏈路層的手段,使應(yīng)用程序可以監(jiān)視數(shù)據(jù)鏈路層的所有分組。如果結(jié)合使用網(wǎng)絡(luò)接口的混雜模式,則可以接收本地網(wǎng)絡(luò)上的所有分組。在程序中使用了Winpcap.dll提供的一些函數(shù)設(shè)置來(lái)捕獲網(wǎng)絡(luò)設(shè)備上傳輸?shù)臄?shù)據(jù)。這些函數(shù)在Libpcap.h文件中都有定義。首先調(diào)用函數(shù)pcap_lookupdev(char*errbuO獲得主機(jī)上的網(wǎng)絡(luò)設(shè)備。該函數(shù)返回一個(gè)指向主機(jī)上網(wǎng)絡(luò)設(shè)備(如網(wǎng)卡的指針;然后調(diào)用函數(shù)pcap_ipen_live(char木device,int snaplen,int promisc,int
11、to_ms,char*ebu0打開(kāi)一個(gè)網(wǎng)絡(luò)設(shè)備,該函數(shù)返回一個(gè)包捕獲描述符pcap_t。其中, device是要打開(kāi)的網(wǎng)絡(luò)設(shè)備字符串,snaplen設(shè)定捕獲的包的最大長(zhǎng)度。promisc確定接口是否被設(shè)為混雜模式。在系統(tǒng)中,將promisc參數(shù)設(shè)為混雜模式,以捕捉本地網(wǎng)絡(luò)上的所有包。to_ms設(shè)定讀超時(shí)的毫秒數(shù),ebuf用于返回錯(cuò)誤文本。最后用函數(shù)pcapnext(pcap_t水p,struct pcap_pkthdr卑h或pcap_loop(pcap_t木p,int cnt, pcaphandler callback,u_char*user捕獲網(wǎng)絡(luò)上所有的數(shù)據(jù)包,以供應(yīng)用程序分析。4.2協(xié)議
12、分析模塊協(xié)議分析模塊是系統(tǒng)的核心。根據(jù)系統(tǒng)的要求和用戶(hù)的選擇,該模塊對(duì)捕獲的數(shù)據(jù)包進(jìn)行協(xié)議解碼和分析。解碼和分析主要是按照相關(guān)協(xié)議,對(duì)數(shù)據(jù)包的包頭進(jìn)行處理。網(wǎng)絡(luò)協(xié)議分析系統(tǒng)的層次結(jié)構(gòu)如圖4所示。網(wǎng)段上的數(shù)據(jù)捕獲模塊圜0DBC數(shù)據(jù)源IP層數(shù)據(jù)處理模塊F/圜圖4網(wǎng)絡(luò)協(xié)議分析系統(tǒng)的層次結(jié)構(gòu)4.3統(tǒng)計(jì)分析模塊通過(guò)對(duì)應(yīng)用和協(xié)議的分析與識(shí)別以及對(duì)數(shù)據(jù)包中相應(yīng)的數(shù)據(jù)進(jìn)行分析,可以得到所需參數(shù)的值.從而能對(duì)該網(wǎng)段的運(yùn)行及使用情況有一個(gè)全面的掌握和了解。5總結(jié)本文根據(jù)以太網(wǎng)中同一網(wǎng)段上的數(shù)據(jù)包以廣播方式發(fā)送的原理,利用Winpcap開(kāi)發(fā)包,通過(guò)將網(wǎng)卡設(shè)為混雜模式,采集數(shù)據(jù)包,然后利用解析函數(shù)對(duì)采集到的數(shù)據(jù)包進(jìn)行
13、多種協(xié)議族的底層和高層協(xié)議的解析,從而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)監(jiān)視的功能。Winpcap功能強(qiáng)大,如果需要的話(huà),可以按照自己的意圖構(gòu)造幀,直接寫(xiě)向數(shù)據(jù)鏈路層發(fā)送到以太網(wǎng)上。在某種程度上不光可以監(jiān)視也可以控制本地網(wǎng)上的活動(dòng)。參考文獻(xiàn):1.莊春興,彭奇志.基于Winpcap的網(wǎng)絡(luò)嗅探程序設(shè)計(jì).計(jì)算機(jī)與現(xiàn)代化,2002,52.Fulvio Risso,Loris Degianni.Development of an Architecture for Packet Capture and Network Traffic AnalysisDB/OL.http:/netgroup2serv. pohto.it/winpcap.2000050213
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專(zhuān)業(yè)機(jī)房維護(hù)服務(wù)項(xiàng)目招標(biāo)
- 征收補(bǔ)償安置協(xié)議填寫(xiě)指南
- 工程清潔服務(wù)合同模板
- 水果連鎖加盟購(gòu)銷(xiāo)協(xié)議
- 盾構(gòu)掘進(jìn)勞務(wù)分包合同格式
- 學(xué)會(huì)寫(xiě)有行動(dòng)力的上學(xué)保證書(shū)
- 外墻涂料拆除合同
- 土建工程泥工分包合同
- 檢測(cè)檢驗(yàn)服務(wù)合同
- 專(zhuān)業(yè)物流配送合同
- 配網(wǎng)規(guī)劃建設(shè)匯報(bào)
- 電氣自動(dòng)化專(zhuān)業(yè)職業(yè)生涯目標(biāo)規(guī)劃書(shū)范例及步驟
- 2024-2025學(xué)年上學(xué)期天津六年級(jí)英語(yǔ)期末模擬卷1
- 餐飲行業(yè)智能點(diǎn)餐與外賣(mài)系統(tǒng)開(kāi)發(fā)方案
- 2024-2025學(xué)年九年級(jí)數(shù)學(xué)上學(xué)期期末考試卷
- 水利工程特點(diǎn)、重點(diǎn)、難點(diǎn)及應(yīng)對(duì)措施
- 物業(yè)經(jīng)理轉(zhuǎn)正述職
- 24秋國(guó)家開(kāi)放大學(xué)《企業(yè)信息管理》形考任務(wù)1-4參考答案
- 2024年共青團(tuán)團(tuán)課培訓(xùn)考試題庫(kù)及答案
- 2024年共青團(tuán)入團(tuán)考試測(cè)試題庫(kù)及答案
- 工程項(xiàng)目管理-001-國(guó)開(kāi)機(jī)考復(fù)習(xí)資料
評(píng)論
0/150
提交評(píng)論