999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數據包捕獲技術在網絡行為監控系統中的應用

2009-04-29 00:00:00王海燕
電腦知識與技術 2009年36期

摘要:數據包捕獲技術、協議分析技術、會話劫持技術是實現網絡行為監控系統的三大技術。該文從數據包捕獲技術的角度,分析其在網絡行為旁路監控系統中的應用。具體從數據包捕獲技術的概念及其特點、Windows操作系統下的數據包捕獲方式、NDIS中間層驅動的實現和NDIS中間層驅動程序的初始化四個方面,分析了其應用。

關鍵詞:數據包捕獲技術;網絡行為監控系統;NDIS中間層驅動程序

中圖分類號:TP274文獻標識碼:A文章編號:1009-3044(2009)36-10467-02

隨著Internet的廣泛應用,它在極大的方便了人們的生產生活的同時,其負面影響也不可小視。通過互聯網傳播淫穢信息、反動言論、惡意占用網絡帶寬、竊取企業商業秘密等行為屢見不鮮。熱比婭對今年“7.5”暴亂的組織和實施,對國家的安全穩定與民族團結以及人民的生命財產安全造成了極大的損失,其鼓噪疆獨分分子實施血腥暴力的暴露出來的反動言論起到了推波助瀾的作用,暴露出的網絡監控漏洞值得每一位網絡工作者的深思。數據包捕獲技術是網絡監控系統實現的核心技術。數據包捕獲成功與否,直接決定著網絡行為監控系統能取得成功,數據捕獲的效率問題也將直接影響整個監控系統的性能,因此,加強對數據包捕獲技術在網絡行為監控系統中的應用,具有重大的現實意義。

1 數據包捕獲技術的概念及其特點

數據包的捕獲技術就是從網絡上捕獲特定或者所有的網絡數據包信息供其它系統使用。數據包的捕獲技術因不同的操作系統而異,正常情況下,一臺主機的網卡只能接收到以本級為目標主機的數據包,其他的數據包將被丟棄處理。網卡具有的操作模式如表1所示。

在以太網環境下,兩種不同的數據包捕獲技術和機理為:①利用以太網的廣播特性實現;②利用設置路由器的鏡像端口實現。兩種不同的方式,使用的工作情況也不盡相同,本文論述以第二種為主。

數據包捕獲技術具有以下幾個重要的特點:一是應當具有強大的數據包捕獲能力,能夠迅速接收從交換機鏡像端口傳送過來的大量數據;二是應具有很高的響應速度,能夠迅速捕獲并及時反應所捕獲的數據包,盡可能不丟失數據包;三是捕獲的數據包不能由操作系統自身的協議棧進行處理;四是對各種數據包的適應能力較強。這是由于捕獲的數據包的不確定性較大,報文的類型、源地址和目標地址等不斷變換,要處理的數據包是海量的PC機上的任意數據包。

2 Windows操作系統下的數據包捕獲方式

按其早操作系統中所處的位置不同,分兩類進行論述:1)用戶模式下的數據包捕獲。它主要包括以下三種:①Windows Sockets API。Sockets規范是一套Microsoft Windows系統下的網絡編程接口,它以BSD UNIX系統的Socket接口為范例定義,對Berkeley Socket原有的庫函數進行移植,同時提供了Windows擴展庫函數。②Windows XP和Windows Server 2003的封包過濾API。該API大大簡化了網絡數據包捕獲的過程,開發人員通過該API捕獲進出的數據包,并設置過濾條件實現過濾。③Windows Sockets功能擴展。通過替換操作系統固有的DLL(Dynamic link Library,動態鏈接庫)實現對數據包的捕獲。使用該法時,除了更換Windows Sockets的DLL,還可以用Windows API攔截技術。2)內核模式下的數據包捕獲。該模式分為兩大類:①TDI(Transmitting Driver Interface,傳輸層驅動接口)。該接口是Windows傳輸層協議棧提供給用戶層的網絡傳輸接口,本身工作在內核層。在WinXP和Server 2003系統中,IP、TCP和UDP(用戶數據報協議)數據包的處理均在TDI驅動程序中實現,該驅動程序創建了DeviceRawIP、DeviceTcp和DeviceUdp三個設備對象,應用程序通過它們實現對網絡數據的操作。②NDIS(Network Driver Interface Specification,網絡驅動接口規范)驅動程序。該驅動由微軟為3Com公司于上世紀80年代末制定,為網絡驅動開發提供了標準的接口規范,符合該規范的驅動程序,無需考慮操作系統的內核即其他驅動程序的接口,只需調用NIDS函數,因此非常方便。它支持的三種不同的驅動程序包括:協議驅動程序、中間層驅動程序和微端口驅動程序。

對上述的幾種數據包捕獲技術對比發現:用戶模式下利用Windows Sockets的DLL的方式,只需簡單調用API函數,因而最容易實現,而用戶模式下的兩種難易度相當,均只需改寫部分函數。而內核模式下的實現比用戶模式下的實現要更復雜,特別是NIDS的編寫難度最大。但是考慮到用戶模式下的數據包捕獲優先,經過系統的協議棧層層轉發后,效率會變得特別低,而內核模式下的實現因為接近底層(物理層和數據鏈路層),因而能捕獲的數據包的數量和種類也越多,效率很高。本文選擇用戶模式下的NDIS中間層驅動程序來實現。

3 NDIS中間層驅動的實現

3.1 NDIS驅動結構及修改后的Filter中間層驅動結構

首先介紹NDIS的結構。NDIS驅動程序跨越傳輸層、網絡層和數據鏈路層,從上到下包括三個層次的接口:Protocal Driver(協議驅動程序)、IMD接口(Intermediate Driver,中間層驅動程序)和MD接口(Miniport Driver,微接口驅動)。協議驅動程序和MD是NDIS必須的,IMD可選。MD主要有兩種基本功能:一方面管理NIC,另一方面為高級驅動程序如中間層驅動程序和協議驅動程序提供接口支持;協議驅動程序經常在一個傳輸驅動程序中用來實現一個傳輸協議棧。協議驅動程序同時也提供協議接口來接收下層驅動程序輸送來的數據包。傳輸協議驅動程序將接收到的數據包再傳輸給適當的用戶應用程序。本文所討論的數據包的捕獲和發送均通過編寫NDIS中間層驅動來實現。

NDIS中間層驅動程序可以分為MUX中間層驅動和Filter中間層驅動兩種,本文所論述的監控系統需要在捕獲的數據包的基礎上偽造包并通過另一網卡發送,故所運用的是在Filter中間層驅動結構的基礎上改造完成。其驅動結構如圖2所示。它對上層協議提供多個MD接口,上層協議驅動又通過多個接口與多個適配器進行數據交互。在其內部,每個虛擬的時配戲均與一個虛擬適配器接口綁定。內部的多個虛擬適配器接口分別與下層的MD的多個虛擬適配器接口綁定,實現一一對應的交互。其中,虛線部分是捕獲數據包并偽造數據包后,直接通過另一個適配器發送偽造的數據包。

3.2 NDIS中間層驅動的注冊

一個中間層驅動程序必須在它的DriverEntry函數中注冊MiniportXxx函數和ProtocalXxx函數,分別作為NDIS協議驅動程序和NDIS的MD驅動程序的接口。完成注冊后,當一個網卡可用時,NDIS調用函數ProtocalBindAdapter將中間層驅動綁定到底層網卡,再調用NdisOpenAdapter函數打開底層網卡。接著NDIS中間層驅動初始化它的虛擬微端口接口,提供給上層協議驅動程序,并開始數據包處理工作。最后中間層驅動在ProtocalBindAdapter函數中調用NdisOpenAdapter函數關閉網卡并解除綁定。期間中間層驅動程序通過OnReceive函數接收數據包,通過OnSend函數發送數據包。MiniportXxx函數的原型為:

NDIS_STATUS NdisMRegisterMiniport( In NDIS_HANDLE Ndis WrapperHandle,

IN PNDIS_MINIPORT_CHARACTERISTICS MiniportCharacteristics,

IN UINT CharacteristicsLength);

ProtocalXxx函數的原型為:

VOID NdisMRegisterProtocal( OUT PNDIS_STATUS Status,

IN PNDIS_HANDLE NdisProtocalHandle,

IN PNDIS_PROTOCAL_CHARACTERISTICS ProtocalCharacteristics

IN UNIT CharacteristicsLength);

3.3 數據包接收/發送流程

NDIS中間層驅動的數據包發送和接收流程如圖3和圖4所示。從數據包發送流程可以看出:NDIS協議驅動要發送數據包時,它會調用函數NdisSend或NdisSendPackets來向NDIS傳遞NDIS發送數據包的請求,NDIS接收到請求后調用函數MiniportSendPackets或MiniportSend來發送數據包。MiniportSendPackets或MiniportSend函數此時能對數據包進行需要的處理。中間層驅動偶爾再次調用NdisSend或NdisSendPackets向NDIS傳遞請求,請求NDIS發送數據包。NDIS收到請求后,調用MiniportSendPackets或MiniportSend來發送數據包,MD的MiniportSendPackets或MiniportSend通過網卡將數據發送出去。

從數據包接收流程可以看出:底層網絡設備數據包到來時,中斷被自動觸發。中斷處理程序響應中斷,調用MD所注冊的ISR(Interrupt Service Routine,中斷服務例程)。MD調用NdisMIndicateReceive函數,通知NDIS有新的數據包的到來。此時,NDIS調用中間層驅動的ProtocalReceive函數。ProtocalReceive能對收到的數據包進行所需要的處理,之后,數據包傳到協議驅動,由相關的協議棧進行處理。

4 NDIS中間層驅動程序的初始化

NDIS中間層驅動程序設計完成之后,進行中間層驅動程序的加載和初始化,其流程為:系統啟動、ndis.sys的加載→MyFilter.sys中間層驅動的加載→調用DriverEntry(驅動程序入口)→調用NdisMInitialize Wrapper函數初始化→Miniport和Protocal設備的注冊→通知NDIS上下層接口歸屬當前中間層驅動→設備描對象的創建和符號連接→聲明dispatch例程。

5 結束語

該文只從NDIS中間層驅動程序的開發的角度,對數據包捕獲技術進行了分析,通過對NDIS的Filter中間層驅動結構進行改進,實現了適合網絡行為旁路監控系統中的NDIS中間層驅動程序,提高了數據包捕獲和發送的效率。網絡行為監控系統的建立,還應當包括協議分析技術、會話劫持技術等,實際應用中應當加以研究和運用。

參考文獻:

[1] 朱雁輝.Windows防火墻與網絡封包截獲技術[M].北京:電子工業出版社,2002.

[2] 張敦行,張廣興,張大方,等.基于多控件內存共享的高速網絡鏈路數據包捕獲方法[J].計算機應用研究,2008(3).

主站蜘蛛池模板: 一级做a爰片久久免费| 亚洲伊人天堂| 人妻无码一区二区视频| 国产精品无码久久久久久| 国产成人无码综合亚洲日韩不卡| 色窝窝免费一区二区三区| 久久国产精品嫖妓| 韩日无码在线不卡| 国产女人爽到高潮的免费视频| 永久天堂网Av| 日韩高清无码免费| 国产精品不卡永久免费| 精品久久香蕉国产线看观看gif| 九色视频一区| 永久免费无码成人网站| 精品三级网站| 一本二本三本不卡无码| 久久a级片| 国产精品成人免费视频99| 国产精品久久久久无码网站| 欧美在线精品怡红院| 91精品国产丝袜| 色哟哟国产精品| 日韩免费毛片| 亚洲婷婷六月| 亚洲中文字幕国产av| 思思热在线视频精品| 国产成人亚洲毛片| 久久国产精品波多野结衣| 99伊人精品| 黄色网在线| 免费一级无码在线网站 | 久久国语对白| 青青草原国产一区二区| 免费高清毛片| 精品久久综合1区2区3区激情| 欧美一区中文字幕| 久久综合伊人77777| 久久国产精品麻豆系列| 91九色视频网| 91精品国产自产91精品资源| 国产美女在线免费观看| 国产一级精品毛片基地| 日韩成人在线网站| 在线播放真实国产乱子伦| 亚洲永久色| 国产日韩欧美视频| 韩国v欧美v亚洲v日本v| 99精品免费欧美成人小视频| 爱色欧美亚洲综合图区| 国产办公室秘书无码精品| 自慰网址在线观看| 国产精品区视频中文字幕 | 亚洲欧美不卡| 婷婷丁香色| 亚洲天堂精品在线观看| 亚洲精选无码久久久| 亚洲人成网站在线观看播放不卡| 又爽又大又黄a级毛片在线视频| 波多野结衣中文字幕一区| 久久一日本道色综合久久| 日韩精品一区二区三区视频免费看| 青草精品视频| 日韩av高清无码一区二区三区| 国产人人乐人人爱| 国产成人资源| 性喷潮久久久久久久久| 亚洲开心婷婷中文字幕| 好紧太爽了视频免费无码| 视频二区亚洲精品| 国产成人亚洲毛片| 亚洲国产日韩一区| 天堂岛国av无码免费无禁网站 | 一区二区三区国产精品视频| 国产成人综合在线视频| 免费在线色| 国产波多野结衣中文在线播放| 亚洲精品大秀视频| 成人免费网站久久久| 欧美特级AAAAAA视频免费观看| 国产1区2区在线观看| 激情综合五月网|