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

基于NDIS-HOOK的個人防水墻設計

2012-01-29 07:19:50李正生
電子設計工程 2012年12期

張 民,李正生,吳 寧,譚 瑩

(1.第二炮兵工程大學一系,陜西 西安 710025;2.中國人民解放軍96623部隊 江西 上饒 334000)

隨著計算機技術的發展和互聯網應用技術的日益普及,人類社會正步入信息化時代。網絡這把雙刃劍在帶給人們方便的同時,也對信息安全帶來了挑戰。近年來,網絡失、泄密事件頻發。重要國家、軍事秘密的泄露、重要商業信息的丟失和個人隱私的曝光等安全問題,給國家、軍隊、企業和個人造成不可挽回的損失。如何解決網絡失、泄密的問題,成了擺在我們面前的一個十分棘手的問題。

1 個人防水墻

防水墻是從防火墻的概念中演變出來的,防火墻是防止外部威脅向內部延伸,而防水墻技術是防止信息從內部向外部擴散。防水墻系統的設計理念是保護用戶的敏感信息不被非法外傳、防止泄密事件發生,從而保證內部的安全[1]。

防水墻按照應用來講可以分為企業級和個人防水墻2種,個人防水墻應用于規模較小的個人計算機。文中所設計的就是應用于個人計算機的個人防水墻,其數據包處理過程如圖1所示,當本地計算機向外發送數據時,僅對本機發送的HTTP請求的數據包進行發送,而阻止其他數據包的向外發送,從而達到防止計算機內部資料通過HTTP協議向外泄露的目的。

圖1 數據包處理流程圖Fig.1 Data packet processing flow chart

文中所設計的個人防水墻的核心技術是對數據包的截獲、分析和處理技術。Windows操作系統下的數據包攔截技術從攔截分層上來說可以分為用戶級和內核級兩類,在用戶層有Windows2000SPI等,在內核層主要包括TDI過濾驅動程序,NDIS中間層過濾驅動程序,NDIS-HOOK驅動程序等。其中NDIS-HOOK技術以其編程方便,接口簡單,思路明確,性能穩定,靈活度更高,功能強大,安全性高,安裝簡單等特點為大家所廣泛使用。

2 NDIS簡介

NDIS(network driver interface specification)是 microsoft和3Com公司開發的網絡驅動程序接口規范[2]。NDIS橫跨傳輸層、網絡層和數據鏈路層,為傳輸層提供標準的網絡接口,所有的傳輸層驅動程序都需要調用NDIS接口來訪問網絡,如圖2所示。在Windows下編寫網絡驅動程序時,利用NDIS規范只要調用NDIS函數而不用考慮其他接口問題,為網絡驅動的開發提供了簡便的方法。

圖2 NDIS拓撲結構Fig.2 NDIS topology

NDIS支持編寫3種類型的驅動程序:Miniport驅動程序、中間驅動程序和Protocol驅動程序。其結構[3]如圖3所示,Miniport驅動程序可以通過DNIS接口可以完成對網卡的操作,同時也可以被上層的驅動程序調用,來實現對網卡的操作。中間驅動程序在Miniport驅動程序和Protocol驅動程序之間,在其上下兩端分別具有一個Miniport驅動接口和一個Protocol驅動接口,上方的Miniport驅動接口與上層的Protocol驅動接口連接,下方的Protocol驅動接口與下層的Miniport驅動接口連接,相當于在Miniport驅動程序和Protocol驅動程序之間加了一個過渡層。Protocol驅動程序與Miniport驅動程序連接,可供底層驅動程序調用[3]。

圖3 NDIS中間驅動程序拓撲結構Fig.3 NDIS intermediate driver topology

3 NDIS數據包發送流程

NDIS的數據包處理過程當上層驅動請求發送數據包時,調用Ndis send/Ndis Send Packets函數,請求NDIS發送數據包,NDIS則調用NDIS中間層驅動的Miniport Send/Miniport Send Packets,NDIS中間層驅動再調用 Ndis Send/Ndis Send Packets請求底層發送數據包,底層Miniport Send/Miniport Send Packets通過NDIS接口控制物理網絡設備,將數據發送出去。NDIS數據包發送流程圖如圖4所示。

圖4 NDIS數據包發送流程圖Fig.4 NDIS send the packet flow

在上層請求發送數據包時,上層的驅動分配了相應的內存空間,當完成數據包的發送之后,系統應該及時的釋放其分配的內存空間,所以,在上層調用Ndis Send/Ndis Send Packets后,返回是除NDIS_STATUS_PENDING以外的任何值時,上層驅動就可以釋放資源。因為如果得到返回的結果是NDIS_STATUS_PENDING的話,說明下層驅動還沒有完成發送請求,等下層驅動最終完成發送請求時,下層驅動將調用Ndis MSend Complete請求NDIS通知上層可以釋放資源。然后系統調用上層驅動注冊的Protocol Send Complete函數,釋放內存資源。

4 NDIS-HOOK技術

NDIS-HOOK的重點是如何獲得特定協議對應NDIS_PROTOCOL_BLOCK指針,獲得了該指針,接下來就可以替換該協議所注冊的收發函數,而達到攔截網絡數據的目的。

4.1 HOOK技術實現的方法

在WindowsNT/2000下實現Hook目前主要有兩種不同的思路[5]:

1)修改 NDIS.SYS的 Export Table。在 WindowsNT/2000下,可執行文件都符合 PE(Portable Executable)格式,所有向其它操作系統提供接口的驅動程序都有Export Table,因此只要修改NDIS.SYS所提供的 NDIS Register Protocol、NDIS DeRegister Protocol、NDIS Open Adapter、NDIS Close Adapter和NDIS Send函數的起始地址,就能實現對NDIS API的掛接。

2)注冊假協議(Bogus Protocol)。NDIS 調用 Ndis Register Protocol(),向系統注冊一個協議并將該協議作為一個鏈表節點插入到“協議鏈表”的頭部,最后返回該鏈表頭的地址。我們可以通過調用Ndis Register Protocol()向系統注冊一個新的協議,就能輕易地得到“協議鏈表”的首地址,通過訪問這個鏈表,就能修改其中關鍵函數的地址。通過調用Ndis Register Protocol()中的結構頭指針可以遍歷所有NDIS_OPEN_BLOCK。一般需要掛鉤的函數主要在NDIS_OPEN_BLOCK中。

目前注冊假協議的方法應用比較廣泛,文中采用了這種方法。

4.2 NDIS-HOOK數據發送的重要函數

在發送數據包的時候,系統調用Ndis Send[6]函數

其中OUT PNDIS_STATUS Status返回函數調用結果。IN NDIS_HANDLE Ndis Binding Handle是由Ndis Open Adapter返回的識別目標網卡或虛擬設備的句柄,其實質就是目標網卡或者虛擬設備的NDIS_OPEN_BLOCK指針。IN PNDIS_PACKET Packet指向需要發送的數據包。調用Ndis Send函數,系統會把數據包通過IN NDIS_HANDLE Ndis Binding Handle指向的NDIS_OPEN_BLOCK結構中記錄的Protocol Send函數發送。

4.3 NDIS-HOOK發送數據包的流程

用注冊假協議法發送特定數據包的步驟,如圖5所示。

圖5 NDIS-HOOK發送數據包的流程Fig.5 NDIS-HOOK send the packet flow

大致可以分為以下3步:

1)調用Register Bogus NDIS Protocol函數,注冊假協議獲得指針;

2)調用 Hook Existing NDIS Protocols函數,遍歷鏈表,完成程序掛鉤;

3)最后調用NDIS Send Handler發送數據,完成數據的處理和發送。

所以在防水墻系統的設計中只要對防水墻的數據包處理程序進行掛鉤處理,即可實現在Windows系統下對數據包的處理,實現防水墻的功能,達到防止非法數據傳輸的目的。

5 結束語

文中簡要的介紹了防水墻技術,對NDIS-HOOK技術進行了詳細的研究,根據防水墻的特點著重研究了運用HDISHOOK的數據包發送攔截技術。設想了在Windows系統下的個人防水墻系統中運用HDIS-HOOK數據包過濾技術的方法。本文研究內容有著廣泛的應用前景。

[1]陳尚義.“內鬼”克星:中軟防水墻Waterbox[J].信息安全與通信保密,2010(1):48-49.CHEN SHANG-yi. “Ghost”nemesis:waterwall of Chinasoft Waterbox[J].Information Security and Communications Privacy,2010(1):48-49.

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

[3]高澤勝,陶宏才.基于NDIS-HOOK技術的個人防火墻的研究與實現[J].成都信息工程學院學報,2004(19):327-331.GAO Ze-sheng,TAO Hong-cai.Research and implementation of personal firewall based on NDIS-HOOK[J].Journal of Chendu University of Information Technology,2004(19):327-331.

[4]Microsoft Windows 2000Driver Development Kit[S].Microsoft Press,2001.

[5]劉靜,裘國永.NDIS-HOOK網絡封包截獲技術實現[J].微處理機,2008(5):51-56.LIU Jing,QIU Guo-yong.The implementation of network packets capturing technology based on NDIS-HOOK[J].Micro Processors,2008(5):51-56.

[6]李智鵬,李舟軍,忽朝儉,等.基于NDIS-HOOK的網絡數據包攔截和發送技術研究[J].計算機安全,2010(1):5-8.LI Zhi-peng,LI Zhou-jun,HU Chao-jian,et al.Research technology of network packet intercepting and sending based on NDIS-HOOK[J].Computer Security,2010(1):5-8.

主站蜘蛛池模板: 欧美日韩在线亚洲国产人| 黄色网在线免费观看| 激情综合图区| 一本大道香蕉久中文在线播放| 亚洲高清在线播放| 三区在线视频| 中文字幕人成乱码熟女免费| 久久久久亚洲Av片无码观看| 亚洲中文久久精品无玛 | 中日韩欧亚无码视频| 香蕉久人久人青草青草| 国产精品福利一区二区久久| 国产成人欧美| 乱人伦99久久| h视频在线播放| 国产拍在线| 又大又硬又爽免费视频| 91无码人妻精品一区| 欧美一级高清视频在线播放| 日韩精品一区二区三区中文无码| 91成人在线观看视频| 五月天在线网站| 91无码人妻精品一区| 国产精品女主播| 国产成人精品免费av| 97青草最新免费精品视频| 凹凸国产熟女精品视频| 国产97视频在线| 8090午夜无码专区| 国产精品尤物铁牛tv | 91亚洲精品国产自在现线| 网友自拍视频精品区| 亚洲色精品国产一区二区三区| 欧美一级视频免费| 国产人碰人摸人爱免费视频| 久久永久精品免费视频| 国内丰满少妇猛烈精品播 | 激情乱人伦| 人妻丰满熟妇AV无码区| 乱码国产乱码精品精在线播放| 99国产精品一区二区| 久久夜夜视频| 成人a免费α片在线视频网站| 国产乱子伦手机在线| 91久久偷偷做嫩草影院| 亚洲最猛黑人xxxx黑人猛交| 国产av无码日韩av无码网站| 综合成人国产| 四虎亚洲精品| 欧美日韩亚洲国产| 黄色a一级视频| 欧美色图第一页| 国产啪在线| 国产一级裸网站| 亚洲精品在线观看91| 大陆国产精品视频| 国产日韩av在线播放| 国产精品自拍合集| 国产在线观看第二页| 欧美一级特黄aaaaaa在线看片| 特级做a爰片毛片免费69| 蜜臀av性久久久久蜜臀aⅴ麻豆| 婷婷久久综合九色综合88| 无码电影在线观看| 国产精品亚洲欧美日韩久久| 亚洲无码视频图片| 国产一区二区三区在线精品专区| 国产幂在线无码精品| 亚洲欧美在线综合图区| av一区二区人妻无码| 一级毛片无毒不卡直接观看| 亚洲国产午夜精华无码福利| 又猛又黄又爽无遮挡的视频网站| 亚洲AV无码久久天堂| 在线播放真实国产乱子伦| 久久99蜜桃精品久久久久小说| 亚洲性日韩精品一区二区| 无码福利视频| 久久精品人人做人人爽97| 亚洲综合精品香蕉久久网| 国产欧美精品午夜在线播放| 一本久道久综合久久鬼色|