999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人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

隨著網絡技術的飛速發展,全球信息化已成為人類發展的大趨勢。人們在享受互聯網帶來的方便與快捷的同時,也要面對互聯網開放帶來的新挑戰。由于計算機網絡的開放性、交互性等特征,致使網絡易受黑客、惡意軟件和其他不法行為的攻擊。為了防止內部網絡不被入侵,網絡安全技術逐漸成為研究的熱點。在眾多的安全技術中發展最快、應用最廣的就是防火墻技術[1~3]。個人防火墻是位于計算機和網絡間的軟件,通過攔截監視所有流入、流出的數據的合法性來限制他人進入內部網絡、過濾不安全的服務和非法用戶、防止入侵者接近你的防御設施、限定人們訪問特殊站點、監視局域網等,盡可能地屏蔽網絡內部結構、信息和運行情況,以實現對網絡安全的保護[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下網絡驅動程序的開發帶來許多方便[6],編寫符合ND IS規范的驅動程序時,只要調用 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是為上層應用程序提供的一種標準網絡接口,允許開發者編寫自己的服務提供者接口程序(SPI程序)。SPI工作在API之下D river之上,屬于應用層的范疇,可以截獲所有的基于Socket的網絡通信,以動態鏈接庫(DLL)的形式存在,為上層API調用提供接口函數[7]。

自己編寫的SPI程序安裝到系統之后,所有的W insock請求都會先發送到自己的這個程序并由它完成網絡調用。通過 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的優缺點,取長補短,設計了基于ND IS-HOOK與SPI的個人防火墻,ND IS-HOOK的原理是直接替換ND IS函數庫中的函數地址,從而向ND IS的請求就會先經過自定義函數處理,處理完后再轉發給系統函數[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為本防火墻的總體結構示意圖。

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

2.4 實現SPI-HOOK

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

應用層過濾模塊主要是負責SPI-HOO K,它是面向通過Socket訪問網絡的應用程序,其編寫需要DLL(dynamic linkable library,動態鏈接庫)開發基礎[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再加載系統,將連接請求轉發到系統,完成 SPI的 HOOK。DLL的裝載流程圖如圖8所示。

2.5 實現 ND IS-HOOK

進行ND IS-HOOK需要進行驅動開發,其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來發送數據的,所以必須由 HOOK SendHandler才能真正地截獲發送的數據包。要利用上面HOOK的NdisRegisterPro再去HOOK ProtocolReceive和 ProtocolOpenAderComplete,最后再利用 NdisOpenAdapter和 ProtocolOpenAderComplete HOOK Protocol-SendHandler。其流程如圖9所示。

2.6 相應功能實現

1)判斷數據包的合法性

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

2)禁止 PING

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

3)屏蔽制定IP和端口

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

圖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] 郭 磊,武優西,武金木.排列碼加密解密方法在防火墻中的應用[J].河北工業科技(Hebei Journal of Industrial Science and Technology),2003,20(1):28-31.

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

[5] 朱 莉.Window s環境下個人防火墻網絡封包截獲技術研究[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].科技情報開發與經濟(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-),男,吉林農安人,碩士研究生,主要從事計算機網絡與通信、可信計算、移動計算方面的研究。

猜你喜歡
利用
利用min{a,b}的積分表示解決一類絕對值不等式
中等數學(2022年2期)2022-06-05 07:10:50
利用倒推破難點
如何利用基本不等式比較大小
利用一半進行移多補少
利用口訣算除法
利用數的分解來思考
Roommate is necessary when far away from home
利用
回收木再利用——Piet Hein Eek
工業設計(2016年5期)2016-05-04 04:00:33
低丘緩坡未利用地的開發利用探討
河北遙感(2015年4期)2015-07-18 11:05:06
主站蜘蛛池模板: 欧美一级在线| 老司国产精品视频91| www.av男人.com| 99爱视频精品免视看| 精品国产欧美精品v| 欧美亚洲日韩中文| 热伊人99re久久精品最新地| 亚洲视屏在线观看| 日韩精品一区二区深田咏美| 在线日韩日本国产亚洲| 成人国产三级在线播放| 91娇喘视频| 在线精品欧美日韩| 国产精品人莉莉成在线播放| 亚洲国产欧美目韩成人综合| 日韩欧美高清视频| 色综合天天视频在线观看| 亚洲日韩AV无码精品| 亚洲精品黄| 国产日韩丝袜一二三区| 亚洲成人网在线观看| 日韩黄色精品| 一区二区三区国产| 国产成人免费观看在线视频| 日韩在线永久免费播放| 嫩草国产在线| 亚洲综合久久成人AV| 2018日日摸夜夜添狠狠躁| 亚洲中文在线看视频一区| 欧美三级不卡在线观看视频| 四虎成人在线视频| 香蕉国产精品视频| 国产成人乱无码视频| 欧美国产视频| 亚洲香蕉在线| 青青草91视频| 在线观看无码av免费不卡网站 | 九九精品在线观看| 欧美一级专区免费大片| 亚洲国产在一区二区三区| 国产最新无码专区在线| 毛片久久网站小视频| 孕妇高潮太爽了在线观看免费| 日韩精品亚洲一区中文字幕| 成人久久精品一区二区三区| 国产激爽大片在线播放| 黄色三级网站免费| 国产成人精品日本亚洲77美色| 91成人精品视频| 在线色综合| 91年精品国产福利线观看久久| 欧美成人免费| 国产主播福利在线观看| 欧美国产日韩在线观看| 久久国产高潮流白浆免费观看| 国产中文在线亚洲精品官网| 99re在线视频观看| 免费激情网址| 伊人中文网| 亚洲成人高清在线观看| 亚洲日韩久久综合中文字幕| 精品欧美日韩国产日漫一区不卡| 色吊丝av中文字幕| 亚洲国产成人综合精品2020| 99在线观看免费视频| 国产在线麻豆波多野结衣| 久久99国产精品成人欧美| 国产在线自揄拍揄视频网站| 国产激情在线视频| 99在线观看国产| 波多野结衣无码视频在线观看| 日本精品视频一区二区| 国产粉嫩粉嫩的18在线播放91 | 国产18在线| 亚洲精品第一页不卡| 国产精品美女免费视频大全| 久久久久亚洲精品无码网站| 色欲综合久久中文字幕网| 亚洲色图欧美| 最新精品久久精品| 亚洲欧美在线看片AI| 久久国产精品波多野结衣|