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

一種基于網(wǎng)絡(luò)驅(qū)動的Windows防火墻設(shè)計

2017-12-21 22:10:12張輝
網(wǎng)絡(luò)空間安全 2017年10期

張輝

摘 要:論文提供了一種Windows防火墻設(shè)計方案,它是基于Windows 2000操作系統(tǒng)、DDK for Windows 2000工具開發(fā)包以及VC++6.0等平臺而開發(fā)的程序。該程序按照功能模式劃分,可分為兩大塊內(nèi)容,一個是Filter_Hook Driver驅(qū)動,另一個就是用戶操作界面了。在這里,F(xiàn)ilter_Hook Driver驅(qū)動的作用是注冊過濾鉤子回調(diào)函數(shù),并且按照用戶提供的過濾規(guī)則進行數(shù)據(jù)包的過濾;用戶操作界面的作用是實現(xiàn)用戶自定義去增添與刪減過濾規(guī)則,用戶并且可以自行以文件形式來保存增添進來的過濾規(guī)則。

關(guān)鍵詞:網(wǎng)絡(luò)驅(qū)動;防火墻;回調(diào)函數(shù)

中圖分類號: TP309 文獻標(biāo)識碼:B

1 引言

Internet的高速發(fā)展對人們的生活習(xí)慣、事物認(rèn)知都產(chǎn)生了巨大的改變。人們體驗著互聯(lián)網(wǎng)在生活上所帶來的全新感知,習(xí)慣著信息時代所帶來的各種的便利。然而,網(wǎng)絡(luò)在給大家?guī)砩畋憷耐瑫r,也給人們的安全帶來了威脅。防火墻作為一種重要的網(wǎng)絡(luò)安全技術(shù),越來越發(fā)揮著重要的作用。

防火墻的作用是按用戶自定義的規(guī)則來過濾對其所抓取的數(shù)據(jù)包,因此防火墻設(shè)計的核心任務(wù)就是要實現(xiàn)對數(shù)據(jù)包的抓取。抓取數(shù)據(jù)包也有很多方法,比較簡單的方法是使用一個基于Windows平臺的免費公共網(wǎng)絡(luò)訪問系統(tǒng)—Winpcap(Windows Packet Capture),但Winpcap的主要功能是獨立于主機協(xié)議(如TCP/IP)去發(fā)送和接收原始數(shù)據(jù)的。這就意味著,Winpcap并不能夠阻塞、過濾或者控制其它的應(yīng)用程序?qū)?shù)據(jù)包的接收和發(fā)送,它的作用僅僅是監(jiān)聽網(wǎng)絡(luò)上傳送的數(shù)據(jù)包。使用Win2000 DDK中提供的Filter-Hook Driver驅(qū)動(過濾鉤子驅(qū)動)來實現(xiàn)數(shù)對據(jù)包的過濾是一個更好的選擇[1,2]。

2 程序設(shè)計方案

如圖1所示,基于網(wǎng)絡(luò)驅(qū)動的Windows防火墻設(shè)計可以分成兩個部分,用戶界面代碼部分和過濾鉤子驅(qū)動代碼部分。而過濾鉤子驅(qū)動代碼部分又是依賴于網(wǎng)絡(luò)適配器模塊,網(wǎng)絡(luò)適配器模塊是基于IP Filter_Hook代碼和網(wǎng)絡(luò)適配器代碼兩部分。也就是說只要將IP Filter_Filter代碼以及網(wǎng)絡(luò)適配器驅(qū)動代碼做出編寫,那么這個設(shè)計的過濾鉤子驅(qū)動代碼部分也就能夠有了大概的輪廓;在用戶界面代碼部分,只要通過基礎(chǔ)的代碼編寫出簡易的用戶界面即可。

利用在Windows 2000 DDK中所介紹的Filter-Hook Driver驅(qū)動來實現(xiàn)對所有的進出接口的數(shù)據(jù)進行過濾。這其中主要是包含這些過程:首先開始先要確定并且搭建Kernel模式Filter-Hook Driver驅(qū)動,接下來就是要獲取所有指向IP Filter Driver驅(qū)動的指針,然后就要運用前面所獲取到的指針,來進行發(fā)送有不同類型的IRP(一種規(guī)范化的技術(shù)文檔)將過濾函數(shù)實現(xiàn)安裝,再接著將抓取到的數(shù)據(jù)準(zhǔn)備過濾,最后在過濾數(shù)據(jù)完成以后,將能夠過濾函數(shù)撤消掉[3]。

在用戶界面代碼部分所涉及到的內(nèi)容其實就是用戶能夠看到的程序界面,也就是用戶和防火墻進行對話的對象。它負(fù)責(zé)管理用戶自己定義的過濾規(guī)則,并且與數(shù)據(jù)Filter_Hook驅(qū)動功能來實現(xiàn)互相通信。還有就是主要利用Filter_Hook Driver驅(qū)動模塊的輸出接口所提供的對象指針來實現(xiàn)注冊過濾函數(shù),撤消過濾函數(shù),安裝新的過濾規(guī)則,清除所有規(guī)則這四個功能。

3 Filter_Hook Driver驅(qū)動的實現(xiàn)

3.1 創(chuàng)建Kernel模式驅(qū)動

首先需要通過Filter_Hook Driver驅(qū)動程序來設(shè)置回調(diào)函數(shù),在過濾鉤子驅(qū)動程序作為該驅(qū)動程序的主體,并且通過系統(tǒng)提供的IPFilter Driver驅(qū)動注冊這些回調(diào)函數(shù),做完這些之后,IP Filter_Driver驅(qū)動就可以通過濾器鉤子來想辦法去處理傳入或者傳出的數(shù)據(jù)包。PacketFilterExtensionPtr數(shù)據(jù)類型的定義是用來定義注冊過的過濾鉤子驅(qū)動。

Filter_Hook Driver驅(qū)動函數(shù)會對這些傳進來以及傳出去的數(shù)據(jù)包來做一些不一樣的處理動作。開始是將數(shù)據(jù)包的專屬信息和IP Filter Driver驅(qū)動提供給過Filter Hook的信息來做一次對比,通過這個來對比,數(shù)據(jù)包接下來該做怎樣的處理。接下來,在Filter_Hook Driver驅(qū)動對數(shù)據(jù)包做完檢測之后,就去回復(fù)響應(yīng)代碼或者將PF_PASS給IP Filter_Hook,并且告知IP Filter_Hook驅(qū)動對數(shù)據(jù)包來做出處理[4]。

3.2 設(shè)置和清除Filter_Hook

通過Driver Entry函數(shù)來自定義驅(qū)動初始化的部分以及驅(qū)動卸載的部分。Filter_Hook Driver驅(qū)動程序在設(shè)置Filter Hook回調(diào)函數(shù)的時候,并且對IP Filter Hook驅(qū)動的每個傳入IP數(shù)據(jù)包或者傳出的IP數(shù)據(jù)包發(fā)出通知,讓它調(diào)來使用鉤子回調(diào)函數(shù)。Filter Hook會先清除之前注冊的過濾函數(shù)。Filter Hook驅(qū)動首先需要將設(shè)備對象的指針作為IP過濾器驅(qū)動來創(chuàng)建一個IRP,之后,F(xiàn)ilter_Hook Driver驅(qū)動把這個IRP發(fā)送給IP Filter Hook驅(qū)動,這樣是為了記錄并且清除回調(diào)函數(shù)[5]。

對Filter_Hook Driver驅(qū)動的設(shè)置或者清除回歸函數(shù)的方式描述:想要獲得IP Filter Hook驅(qū)動的對象指針,F(xiàn)ilter_Hook Driver驅(qū)動函數(shù)就需要調(diào)用IoGet函數(shù)。在這次調(diào)用中,F(xiàn)ilter_Hook Driver驅(qū)動傳遞了指向緩沖區(qū)的指針以及容納返回的文件和設(shè)備的指針。Filter_Hook Driver驅(qū)動程序想要建立一個IRP,需要使用PF_SET_EXTENSION_POINTER控制碼,并且把它提交給IP Filter Hook驅(qū)動程序來實現(xiàn),通常情況下,F(xiàn)ilter-hook驅(qū)動程序建立所需的IRP都是通過調(diào)用IoBuildDeviceIoControlRequest函數(shù)。

END_MESSAGE_MAP()

CFirewallApp::CFirewallApp()

{}

CFirewallApp theApp;

SetRegistryKey(_T("FirewallApp"));

if (!ProcessShellCommand(cmdInfo))

return FALSE;

enum { IDD = IDD_ABOUTBOX };

protected:

}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

END_MESSAGE_MAP()

在這次調(diào)用之中,過濾器鉤子驅(qū)動發(fā)送了指定值的IOCTL_PF_SET_EXTENSION參數(shù)以及包括了PF_SET_EXTENSION_HOOK_INFO結(jié)構(gòu)的緩沖區(qū)域。同時為了設(shè)置Filter_Hook,這個結(jié)構(gòu)還包含有設(shè)置Filter_Hook回調(diào)函數(shù)地址的信息。這個控制碼也被用來清除回調(diào)函數(shù)從IP Filter Hook的程序之中[6,7]。

3.3 實現(xiàn)FILTER_HOOK

將兩個或者兩個以上的過濾規(guī)則連在一起的鏈表稱之為過濾列表,在這個程序里它定自義了一個CFilterList的結(jié)構(gòu),也就是將指針指向后一個過濾規(guī)則的pNext指針添加到每個規(guī)則上面,通過這種辦法就能夠把兩個或者兩個以上的過濾規(guī)則連在一起形成過濾列表。而需要做的就是去記錄首地址就能夠來整理這些所有的過濾規(guī)則。在鉤子回調(diào)函數(shù)中,當(dāng)有數(shù)據(jù)包需要通過時,就得去遍歷整個列表。

函數(shù)開始過濾,首先將保重的內(nèi)容復(fù)制到共享的內(nèi)存中,接著來判斷是否符合IP規(guī)則。如果符合IP規(guī)則,那么就對IP規(guī)則去做出處理,并且接著選取下條過濾規(guī)則,來做出判斷。如果不符合IP規(guī)則的,就再去檢查看是否符合ICMP規(guī)則,如果符合ICMP的規(guī)則,那么就按ICMP規(guī)則來處理,并且選取下一條規(guī)則,來做出判斷。如果ICMP規(guī)則也不符合的話,那么久去判斷看是否符合TCP規(guī)則,如果符合TCP規(guī)則的話,那么就按照TCP的規(guī)則來處理,并且選取下一條規(guī)則。但是,要是不符合的話,那么就檢查看是否符合UDP規(guī)則,如果符合UDP的規(guī)則的話,那么就按照UDP的規(guī)則來處理,并且來選取下一條規(guī)則。像上面的情況一樣,如果不符合規(guī)則,那么就結(jié)束規(guī)則的過濾。

通過CDriver類向驅(qū)動程序來發(fā)送這些設(shè)備控制代碼用戶程序的主要的實現(xiàn)。程序在初始化時通過加載Filter_Hook Driver驅(qū)動,然后當(dāng)點擊開始按鈕時向驅(qū)動發(fā)送START_IP_HOOK來安裝過濾鉤子;點擊停止按鈕時發(fā)送STOP_IP_HOOK控制代碼來清除過濾鉤子;點擊添加過濾規(guī)則選項時,就會彈出添加規(guī)則對話框,來為使用者提供添加過濾規(guī)則的輸入界面;點擊刪除選項時則會實現(xiàn)刪除所選定的過濾規(guī)則的功能;當(dāng)使用者點擊安裝規(guī)則選項和卸載規(guī)則選項時,則會分別發(fā)送控制代碼ADD_FILTER和CLEAR_FILTER來實現(xiàn)過濾規(guī)則的加載或者卸載。

4 結(jié)束語

本文運用了Filter-Hook Driver技術(shù),設(shè)計了使用者自動添加、刪除過濾規(guī)則,同時可以按照使用者已有的過濾規(guī)則完成數(shù)據(jù)包過濾等的功能。然而,經(jīng)過檢測使用者明顯可以觀察到,當(dāng)使用者添加了比較多的過濾規(guī)則并進行數(shù)據(jù)過濾時,其反應(yīng)的速度就會變的比較慢,因此使用者還需要努力對過濾規(guī)則對比算法做出進一步的改進。此外,還可以增加像日志功能這樣的一系列類似的功能,日志功能是一項比較重要的功能,只有通過防火墻日志,使用者才可以更好的對防火墻做維護以及管理。

基金項目:

1. 山西省教育科學(xué)“十三五”規(guī)劃2016年度課題“網(wǎng)絡(luò)工程專業(yè)一體化實踐教學(xué)體系的實踐研究”(項目編號:GH-16186)。

2. 2016年山西省信息化基金項目“基于知識工程的網(wǎng)絡(luò)信息安全支撐服務(wù)研究”。

參考文獻

[1] 王文鵬,黃俊.對BM模式匹配算法的一種改進[J].計算機工程與用,2011,47(32):108-111.

[2] 殷超,李大興.基于改進BMSU法的確定型有窮自動機的設(shè)計[J].微計算機信息,2008,24(3-1):215-216.

[3] 賀龍濤,方濱興,胡銘矜.對BM串匹配算法的一個改進[J].計算機應(yīng)用,2003,23(3):6-8.

[4] S.Wu, U.Manber A fast algorithm for multi-pattern searching In Technical Report, TR-94-17 Dept. of Computer Science, University of Arizona 1994.

[5] 殷麗華,方濱興,張宏莉.快速的多模式匹配算法[J].哈爾濱工業(yè)大學(xué)學(xué)報,2007,39(12):1926-1929.

[6] Gary Plumbridge, Jack Whitham, Neil Audsley. Blueshell: a platform for rapid prototyping of multiprocessor NoCs and accelerators [J]. ACM SIGARCH Computer Architecture News, 2013,41(5): 107-117.

[7] Karthik Lakshmanan, Dionisio De Niz, Ragunathan Raj, Gabriel Moreno. Overload provisioning in mixed-criticality cyber-physical systems [J]. ACM Transactions on Embedded Computing Systems, 2012,11(4): 83-85.

主站蜘蛛池模板: 在线欧美日韩| 久久久成年黄色视频| 亚洲一区毛片| 国产欧美精品一区aⅴ影院| 国产主播喷水| 99热最新在线| 中文字幕乱码二三区免费| 真人免费一级毛片一区二区| 成人日韩欧美| 麻豆精品久久久久久久99蜜桃| 久久女人网| 国产精品美女网站| 伊人久久青草青青综合| 成人蜜桃网| 亚洲综合精品香蕉久久网| 久久a毛片| 国产精品对白刺激| 一区二区三区精品视频在线观看| 在线观看亚洲成人| 国产极品粉嫩小泬免费看| 无码日韩视频| 国产综合色在线视频播放线视| 免费一级毛片在线观看| 性网站在线观看| 中文字幕调教一区二区视频| 在线观看免费国产| 亚洲综合色区在线播放2019 | 国产成人久久777777| 精品国产免费人成在线观看| 无码中字出轨中文人妻中文中| 欧洲日本亚洲中文字幕| 国产精品手机在线播放| 试看120秒男女啪啪免费| 国产第二十一页| 真人高潮娇喘嗯啊在线观看| 欧美黄网在线| 亚洲欧美日本国产综合在线| 爆乳熟妇一区二区三区| 国产成人精品第一区二区| 毛片基地视频| 国产成人乱无码视频| 国内精品免费| 一级香蕉人体视频| 亚洲精品国偷自产在线91正片| 国产超薄肉色丝袜网站| 农村乱人伦一区二区| 亚洲高清无码久久久| 福利在线一区| 免费一级毛片在线播放傲雪网| 日本成人不卡视频| 亚洲有无码中文网| 色网站在线免费观看| 亚洲国产一成久久精品国产成人综合| 国产精品欧美亚洲韩国日本不卡| 婷婷丁香色| 国产亚洲欧美在线专区| 亚洲人成人无码www| 国产区免费精品视频| 国产一区二区视频在线| 久草性视频| 国产在线一区二区视频| 最新无码专区超级碰碰碰| 又黄又爽视频好爽视频| 久久一本精品久久久ー99| 在线观看视频99| 亚洲成av人无码综合在线观看| 暴力调教一区二区三区| 97国产精品视频自在拍| 日韩中文精品亚洲第三区| 国产福利在线观看精品| 91破解版在线亚洲| 国产香蕉一区二区在线网站| 高清视频一区| 国产精品亚洲五月天高清| 91九色视频网| 久久久久夜色精品波多野结衣| 原味小视频在线www国产| 日韩欧美中文在线| 国产91高清视频| 免费大黄网站在线观看| 亚洲乱码精品久久久久..| 国产手机在线ΑⅤ片无码观看|