亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ND IS-HOOK與SPI的個人防火墻設計

        2010-12-26 07:45:32姚建盛劉艷玲
        河北科技大學學報 2010年1期
        關鍵詞:封包應用層驅動程序

        姚建盛,劉艷玲

        (1.吉林師范大學計算機學院,吉林四平 136000;2.哈爾濱工程大學計算機學院,黑龍江哈爾濱150001;3.長春理工大學計算機學院,吉林長春 130022)

        基于ND IS-HOOK與SPI的個人防火墻設計

        姚建盛1,2,劉艷玲3

        (1.吉林師范大學計算機學院,吉林四平 136000;2.哈爾濱工程大學計算機學院,黑龍江哈爾濱150001;3.長春理工大學計算機學院,吉林長春 130022)

        當前個人網絡安全產品中,個人防火墻是一個非常重要的網絡安全產品。利用ND ISHOOK與SPI相結合在Window s下設計了一個基于ND IS-HOOK與SPI的個人防火墻。其中,在應用層利用SPI進行封包來過濾各種應用程序,而在核心層利用ND IS-HOOK來過濾各種非Socket通信的數據包,實現底層的數據包的捕獲,從而能更好地過濾數據。

        防火墻;ND IS;SPI;HOOK

        隨著網絡技術的飛速發(fā)展,全球信息化已成為人類發(fā)展的大趨勢。人們在享受互聯網帶來的方便與快捷的同時,也要面對互聯網開放帶來的新挑戰(zhàn)。由于計算機網絡的開放性、交互性等特征,致使網絡易受黑客、惡意軟件和其他不法行為的攻擊。為了防止內部網絡不被入侵,網絡安全技術逐漸成為研究的熱點。在眾多的安全技術中發(fā)展最快、應用最廣的就是防火墻技術[1~3]。個人防火墻是位于計算機和網絡間的軟件,通過攔截監(jiān)視所有流入、流出的數據的合法性來限制他人進入內部網絡、過濾不安全的服務和非法用戶、防止入侵者接近你的防御設施、限定人們訪問特殊站點、監(jiān)視局域網等,盡可能地屏蔽網絡內部結構、信息和運行情況,以實現對網絡安全的保護[4]。筆者利用ND IS-HOO K與SPI相結合在Window s下設計了一個基于ND IS-HOOK與SPI的個人防火墻,其中,在應用層利用SPI進行封包來過濾各種應用程序,而在核心層利用ND IS-HOOK來過濾各種非Socket通信的數據包,實現底層的數據包的捕獲,從而能更好地過濾數據。其工作步驟:截獲當前動作→判斷動作類型→根據類型采取相應策略判斷合法性→采取相應措施[5]。

        1 基本原理介紹

        1.1 TCP/IP協議架構及其在 W indows中的實現

        Window s操作系統的總體架構分為2個層次:上面的為應用層,下面的為核心層。其結構如圖1所示。

        SPI負責應用層的過濾,ND IS負責底層的數據過濾,如圖2所示。

        圖1 W indow s操作系統的總體架構Fig.1 Collectivity frame of Window s operation system

        1.2 ND IS

        ND IS(network driver interface specification)為 W indow s下網絡驅動程序的開發(fā)帶來許多方便[6],編寫符合ND IS規(guī)范的驅動程序時,只要調用 ND IS函數,而不用考慮操作系統的內核以及與其他驅動程序的接口問題。Window s使用 ND IS函數庫實現ND IS接口,所有的網絡通信最終必須通過 ND IS完成。ND IS負責上、下層驅動程序間服務原語和驅動程序入口之間的轉換,分派消息通知,保證符合ND IS的驅動程序無需知道其他驅動程序的入口就可以與之通信。ND IS橫跨傳輸層、網絡層和數據鏈路層,ND IS的結構如圖3所示。

        利用ND IS中間驅動程序可以在網卡驅動程序和傳輸驅動程序之間插入一層自定義驅動程序從而可以截獲網絡封包,并重新進行封包、加密、網絡地址轉換、過濾、認證等操作。由于ND IS中間驅動程序位于網卡和傳輸驅動程序之間,所以,它可截獲較為底層的封包,從而可以完成更為低級的操作。

        1.3 SPI

        Winsock 2是為上層應用程序提供的一種標準網絡接口,允許開發(fā)者編寫自己的服務提供者接口程序(SPI程序)。SPI工作在API之下D river之上,屬于應用層的范疇,可以截獲所有的基于Socket的網絡通信,以動態(tài)鏈接庫(DLL)的形式存在,為上層API調用提供接口函數[7]。

        自己編寫的SPI程序安裝到系統之后,所有的W insock請求都會先發(fā)送到自己的這個程序并由它完成網絡調用。通過 HOOK程序可以直接調用系統函數完成網絡傳輸。SPI結構如圖4所示。

        圖2 TCP/IP協議架構及其在Window s中的實現Fig.2 Frame of TCP/IP p rotocol and the imp lement of it in Window s

        2 程序設計及實現

        2.1 功能簡介

        本防火墻基于32位內核的 Window s N T/2000/XP,主要功能包括:1)檢查接收數據包的合法性;2)禁止PING;3)過濾指定的IP;4)過濾指定的端口。

        2.2 驅動模塊方案

        利用ND IS與SPI的優(yōu)缺點,取長補短,設計了基于ND IS-HOOK與SPI的個人防火墻,ND IS-HOOK的原理是直接替換ND IS函數庫中的函數地址,從而向ND IS的請求就會先經過自定義函數處理,處理完后再轉發(fā)給系統函數[8]。圖5為ND IS-HOOK安裝前后的結構。

        圖5 ND IS-HOOK前后結構圖Fig.5 Frame of ND IS-HOOK fore-and-aft

        利用ND IS-HOO K與 SPI相結合,取長補短,在應用層利用SPI來進行封包過濾各種應用程序,而在核心層利用ND IS-HOO K來過濾各種非Socket通信的數據包。

        2.3 總體結構

        防火墻的設計是基于ND IS-HOOK與SPI雙層模式的,防火墻由3個大模塊組成:主界面模塊 YJSFIREWALL.EXE、應用層包過濾模塊 APPFIL T.DLL、核心層包過濾模塊 KERFIL T.SYS。圖6為本防火墻的總體結構示意圖。

        本防火墻所選用的開發(fā)環(huán)境為 W indow s 2000 personal操作系統,開發(fā)工具選用的是M icrosoft Visual C++6.0企業(yè)版和 Window s 2000 DD K,選擇的編程語言是C++。主程序工作流程如圖7所示。

        2.4 實現SPI-HOOK

        為了截獲網絡中的各種動作最根本的方法就是要進行 HOO K,把相關的API函數與自己的函數相關聯,讓程序調用API時先調用自己的函數。

        應用層過濾模塊主要是負責SPI-HOO K,它是面向通過Socket訪問網絡的應用程序,其編寫需要DLL(dynamic linkable library,動態(tài)鏈接庫)開發(fā)基礎[9]。

        任何通過Socket訪問網絡的應用程序都需要首先調用SPI函數 WSPStartup來初始化 Socket,其函數原型如下。

        最后一個參數返回了30個SPI服務函數的指針。

        操作系統根據注冊表加載SPI模塊,只要修改SPI配置表在注冊表中的分支[H KEY_LOCAL_MACH INESYSTEMCURREN TCON TROLSETSERV ICESW INSOCK2PARAM ETERSPROTOCOL_CA TALOG9CA TALOG_EN TRIES]下面有一個 PackedCatalog Item的鍵,其結構如下:

        其中sSpiPathName為服務提供者完整路徑。

        修改之后就可以讓系統加載自己的SPI模塊,然后自己的SPI再加載系統,將連接請求轉發(fā)到系統,完成 SPI的 HOOK。DLL的裝載流程圖如圖8所示。

        2.5 實現 ND IS-HOOK

        進行ND IS-HOOK需要進行驅動開發(fā),其API提供者是SYS,SYS文件是標準的 PE格式,W indwos在加載SYS時,將整個文件映射到內存的一個虛擬地址空間。人們要做的是在內存中找到該地址,然后定位到導出表的地址,把導出函數的地址替換成自己函數的地址,這樣就實現了ND IS-HOOK。SYS文件在內存中的地址利用API函數Zw QuerySystem Information來獲得。其定義如下。

        其參數sic標識想查詢的系統信息的類型(System InformationClass),System InformationClass是個枚舉類型,11即為常量SystemModule Information,代表要查詢模塊信息的標識。如果返回值為STA TUS_SUCCESS則代表成功。

        利用代碼11就可以得到系統加載的模塊信息,正是需要的SYS的地址信息,模塊的信息結構SYSTEM_MODULE_INFORMA TION如下。

        }SYSTEM_MODULE_INFORM A TION,*PSYSTEM_MODULE_INFORM A TION;

        其中Name字段代表模塊名稱(Ndis.Sys),BaseAddress是模塊的基地址。

        圖8 DLL裝載流程圖Fig.8 Flow chart of DLL load

        利用 Hook Fun函數完成 NdisSend,NdisRegister,NdisOpenA dap ter的 HOOK,Window s 2000系統中是通過協議驅動與網卡綁定后ND IS為其分配的Send Hander來發(fā)送數據的,所以必須由 HOOK SendHandler才能真正地截獲發(fā)送的數據包。要利用上面HOOK的NdisRegisterPro再去HOOK ProtocolReceive和 ProtocolOpenAderComplete,最后再利用 NdisOpenAdapter和 ProtocolOpenAderComplete HOOK Protocol-SendHandler。其流程如圖9所示。

        2.6 相應功能實現

        1)判斷數據包的合法性

        合法性判斷主要是通過數據包的文件頭來判斷該包應該所占的大小是否和實際的相符,TCP/IP的數據包格式如圖10所示,只要根據前3個 Header就可以得到長度相關信息,在截獲API的時候也截獲了數據包,可以得到實際數據包的大小,從而判斷其合法性。

        2)禁止 PING

        掃描主機進行探測時,往往用 PING,即發(fā)送 ICM P包,禁止PING命令就是拋棄ICM P包,但是不能簡單地全部拋棄,應該讀取規(guī)則文件加以判斷。

        3)屏蔽制定IP和端口

        在截獲API的時候,得到Socket相關信息,其中包括IP地址和端口號,讀取規(guī)則文件加以判斷即可。

        圖9 HOOK ND ISAPI流程圖Fig.9 Flow chart of HOOK ND IS API

        3 結 語

        針對目前日益嚴重的網絡安全問題,在分析了個人防火墻的主要功能模塊后,提出并設計了Window s 2000/N T下利用ND IS-HOOK技術與SPI技術的個人防火墻。SPI工作在API之下Driver之上,適合于應用層;ND IS中間驅動程序位于網卡和傳輸驅動程序之間,它可截獲較為底層的封包。在實際的實現過程中,ND IS-HOOK用于核心層而SPI用于應用層,這樣就可以相互利用兩者的長處,互補兩者的短處,比單一應用一種技術的個人防火墻更高效、更合理,并且對用戶透明。

        圖10 TCP/IP數據包格式Fig.10 Fo rmat of TCP/IP data package

        [1] 楊路明,肖 瀟.網絡安全與防火墻技術[J].電腦與信息技術(Computer and Information Technology),2004(3):49-52.

        [2] 王永濱,袁智忠,張 吉.Linux防火墻的Web設置系統[J].河北科技大學學報(Journal of Hebei University of Science and Technology),2001,22(4):46-49.

        [3] 郭 磊,武優(yōu)西,武金木.排列碼加密解密方法在防火墻中的應用[J].河北工業(yè)科技(Hebei Journal of Industrial Science and Technology),2003,20(1):28-31.

        [4] 張玉鳳,翟光群.個人防火墻技術研究及應用[J].河南科學(Henan Science),2006,24(4):915-918.

        [5] 朱 莉.Window s環(huán)境下個人防火墻網絡封包截獲技術研究[J].遼寧師專學報(Journalof Liaoning Teachers College),2007,9(1):41-43.

        [6] 范莉萍.基于NDIS技術的個人防火墻設計與實現[J].計算機應用與軟件(Computer Applications and Software),2008(8):259-260.

        [7] 劉鵬遠.SPI截獲Window s個人防火墻系統實現技術要點分析[J].湖南工程學院學報(Journal of Hunan Institute of Engineering),2008,18(2):56-59.

        [8] 莫向陽.基于Filter-Hook Drive設計個人防火墻[J].廣東技術師范學院學報(Journal of Guangdong Polytechnic Normal University),2007(10):18-20.

        [9] 劉曉明.基于SPI的個人防火墻的設計與實現[J].科技情報開發(fā)與經濟(Sci-Tech Information Development&Economy),2008,18(24):146-148.

        Design of individual firewall based on NDIS-HOOK and SPI

        YAO Jian-sheng1,2,L IU Yan-ling3
        (1.Department of Computer Science,Jilin No rmal University,Siping Jilin 136000,China;2.Departmentof Computer Science,Harbin Engineering University,Harbin Heilongjiang 150001,China;3.Department of Computer Science,Changchun University of Science and Technology,Changchun Jilin 130022,China)

        Individual firewall is a very impo rtant p roductof netwo rk security.The researchmakes useof ND IS-HOOK and SPI to design an individual firewall under Window s.In app lication layer,it emp loys SPI to envelop the packages to filtrate all kinds of app lication,and in co re layer,it employs NDIS-HOOK to filtrate the data packages of non-socket co rresponding,and capture data packages,so as to imp rove the filtration of the data.

        firewall;ND IS;SPI;HOOK

        TP393.08

        A

        1008-1542(2010)01-0035-05

        2009-06-08;責任編輯:陳書欣

        姚建盛(1980-),男,吉林農安人,碩士研究生,主要從事計算機網絡與通信、可信計算、移動計算方面的研究。

        猜你喜歡
        封包應用層驅動程序
        中藥封包在急診老年急性胃腸炎患者中的臨床應用
        護膚 巧用保鮮膜
        無沖突規(guī)則校園網絡安全系統的設計
        門窗(2019年12期)2019-04-20 16:06:52
        基于分級保護的OA系統應用層訪問控制研究
        新一代雙向互動電力線通信技術的應用層協議研究
        物聯網技術在信息機房制冷系統中的應用
        物聯網技術(2015年8期)2015-09-14 09:30:13
        Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
        NS2條件網絡性能分析實踐
        電腦與電信(2013年1期)2013-08-06 02:14:52
        驅動程序更新與推薦
        驅動程序更新與推薦
        欧美老妇牲交videos| 成人自拍视频国产一区| 亚洲中文字幕免费精品| 日本一区二区三区视频在线观看| 真人做爰片免费观看播放| 福利片福利一区二区三区 | 国产自拍偷拍精品视频在线观看| 亚洲av永久无码精品放毛片| 亚州综合激情另类久久久| 日本少妇爽的大叫高潮了| 99精品国产综合久久麻豆| 亚洲av无码国产精品永久一区| 欧美色aⅴ欧美综合色| 日本第一区二区三区视频| 国产自拍视频在线观看免费| 亚洲中文字幕无码一久久区| 五月天久久国产你懂的| 国内精品熟女一区二区| 肥老熟女性强欲五十路| 老熟妇仑乱视频一区二区 | 精品亚洲第一区二区三区 | 日本三级香港三级人妇99| 国产精品无码专区av在线播放| 亚洲永久精品ww47永久入口| 久久精品日韩免费视频| 免费a级毛片无码a∨蜜芽试看| 国产无遮挡又黄又爽在线视频| 国产在线h视频| 日本一区二区三区四区啪啪啪| 免费无码中文字幕a级毛片| 日韩中文网| 人妻少妇中文字幕av| 久久无码人妻丰满熟妇区毛片| 伴郎粗大的内捧猛烈进出视频观看| 久久无码中文字幕东京热| 一区二区三区四区中文字幕av| 无人视频在线观看免费播放影院 | 激情内射亚洲一区二区| 国产主播一区二区三区蜜桃| 欧美成人免费全部| 亚洲日本在线va中文字幕|