彭麗麗
摘 要:文章介紹了一款基于Windows構(gòu)架采取應(yīng)用層進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的攔截的Winsock 2 SPI編程技術(shù),適用于個(gè)人的防火墻。該防火墻具有小巧方便,操作簡(jiǎn)潔,功能齊備,完全滿(mǎn)足個(gè)人防火墻要求。
關(guān)鍵詞:Windows構(gòu)架;防火墻;網(wǎng)絡(luò)封包攔截技術(shù)
引言
隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)安全問(wèn)題日益突出,個(gè)人防火墻得到廣泛應(yīng)用。文章通過(guò)介紹防火墻的發(fā)展、防火墻種類(lèi)及Windows構(gòu)架下個(gè)人防火墻技術(shù),提出了基于Windows構(gòu)架網(wǎng)絡(luò)數(shù)據(jù)包攔截的個(gè)人防火墻設(shè)計(jì)。
1 防火墻介紹
1.1 防火墻的發(fā)展
防火墻是實(shí)現(xiàn)內(nèi)外網(wǎng)絡(luò)的隔離,以保護(hù)內(nèi)網(wǎng)免受外部網(wǎng)絡(luò)的非法入侵而造成損害。防火墻發(fā)展共經(jīng)歷了四個(gè)階段:
第一個(gè)階段:靜態(tài)包過(guò)濾防火墻。采用包過(guò)濾技術(shù),網(wǎng)絡(luò)訪問(wèn)和數(shù)據(jù)過(guò)濾完全依賴(lài)于路由器,且過(guò)濾規(guī)則完全由路由器提供。這類(lèi)防火墻處理快速,但過(guò)濾規(guī)則簡(jiǎn)單不能夠攔截到較低層的數(shù)據(jù),但實(shí)現(xiàn)了數(shù)據(jù)包過(guò)濾[1]。
第二個(gè)階段:防火墻用戶(hù)化,提供給用戶(hù)可實(shí)現(xiàn)數(shù)據(jù)過(guò)濾功能的套件。相比第一代防火墻,它是工作在電路層的防火墻,仍采用包過(guò)濾技術(shù)。用戶(hù)需要做系統(tǒng)的配置,對(duì)用戶(hù)提出較高的要求[2]。
第三個(gè)階段:應(yīng)用層防火墻,采用純軟件的方式實(shí)現(xiàn),安全性大有提高。它提供了很好的操作界面,不需要用戶(hù)進(jìn)行復(fù)雜的系統(tǒng)配置,因此這類(lèi)防火墻深受用戶(hù)喜歡[3]。
第四個(gè)階段:具有安全操作系統(tǒng)的防火墻,防火墻本身就具有自己的操作系統(tǒng),盡管它的核心技術(shù)仍然是數(shù)據(jù)包過(guò)濾技術(shù),但是它采用自適應(yīng)的代理技術(shù),使防火墻有一定的自我適應(yīng)能力,在安全性上較前面各階段的防火墻有了進(jìn)一層的突破[4]。
防火墻的四個(gè)發(fā)展階段從本質(zhì)上講就是靜態(tài)包過(guò)濾和動(dòng)態(tài)包過(guò)濾兩個(gè)主要階段。
1.2 防火墻種類(lèi)
防火墻為實(shí)現(xiàn)對(duì)內(nèi)部網(wǎng)絡(luò)的保護(hù),工作在以太網(wǎng)與內(nèi)部網(wǎng)之間,通過(guò)過(guò)濾和阻擋有害的網(wǎng)絡(luò)數(shù)據(jù),進(jìn)而保護(hù)內(nèi)部網(wǎng)絡(luò)免損害。
從技術(shù)上運(yùn)用上防火墻可分為包過(guò)濾技術(shù)、應(yīng)用代理網(wǎng)關(guān)技術(shù)及狀態(tài)檢測(cè)技術(shù)三類(lèi)[1],下面分別介紹這三類(lèi)防火墻技術(shù):
1.2.1 包過(guò)濾技術(shù)
第一、二代防火墻均采用這種技術(shù),核心在于對(duì)數(shù)據(jù)包的處理分析以及應(yīng)用程序處理規(guī)則的設(shè)置。工作時(shí)將網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行攔截后與靜態(tài)的安全規(guī)則進(jìn)行對(duì)比分析,判斷是否應(yīng)該對(duì)此程序或數(shù)據(jù)包放行。
1.2.2 應(yīng)用代理網(wǎng)關(guān)技術(shù)
防火墻將內(nèi)網(wǎng)與Internet直接通信橋梁徹底隔斷。只要設(shè)置好過(guò)濾規(guī)則,危險(xiǎn)的數(shù)據(jù)包是不可能傳到內(nèi)網(wǎng)中去。此類(lèi)防火墻需用戶(hù)進(jìn)行系統(tǒng)配置,且其安全策略的設(shè)置相當(dāng)繁瑣,處理速度較慢。
1.2.3 狀態(tài)檢測(cè)技術(shù)
狀態(tài)檢測(cè)技術(shù)采用對(duì)數(shù)據(jù)包動(dòng)態(tài)的過(guò)濾完成對(duì)傳輸層數(shù)據(jù)通信的控制。傳輸?shù)乃袛?shù)據(jù)包,先按照靜態(tài)規(guī)則進(jìn)行比對(duì)分析,如放行,防火墻仍保持對(duì)數(shù)據(jù)包跟蹤,此后如發(fā)現(xiàn)數(shù)據(jù)包內(nèi)容與之前攔截?cái)?shù)據(jù)包記錄的狀態(tài)表內(nèi)容不一致時(shí),系統(tǒng)自動(dòng)將這個(gè)數(shù)據(jù)包丟棄。此類(lèi)技術(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)包全程跟蹤,多次安全考核。較前面兩種應(yīng)用范圍更廣,但存在處理較慢的毛病。
2 Windows個(gè)人防火墻及與網(wǎng)絡(luò)封包攔截
2.1 Windows個(gè)人防火墻簡(jiǎn)介
Windows個(gè)人防火墻是根據(jù)Windows網(wǎng)絡(luò)協(xié)議架構(gòu),通過(guò)在操作系統(tǒng)中插入Hook程序的方式,對(duì)所有網(wǎng)絡(luò)通信的數(shù)據(jù)進(jìn)行檢查分析,并將危險(xiǎn)的信息過(guò)濾掉。Windows個(gè)人防火墻的由防火墻進(jìn)程、驅(qū)動(dòng)程序和過(guò)濾規(guī)則集組成。驅(qū)動(dòng)程序是防火墻核心,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)數(shù)據(jù)的攔截、分析及應(yīng)用程序的詢(xún)問(wèn)等工作;過(guò)濾規(guī)則集則定義一些安全規(guī)則,實(shí)現(xiàn)數(shù)據(jù)包過(guò)濾放行與否的原則[3]。
2.2 WINDOWS網(wǎng)絡(luò)封包攔截技術(shù)
網(wǎng)絡(luò)封包攔截技術(shù)是Windows構(gòu)架系統(tǒng)的個(gè)人防火墻的技術(shù)核心。WINDOWS系統(tǒng)構(gòu)架下數(shù)據(jù)攔截只能在應(yīng)用層和核心層上進(jìn)行。應(yīng)用層網(wǎng)絡(luò)封包攔截有基于Winsock 2 SPI技術(shù),核心層網(wǎng)絡(luò)封包攔截有基于NDIS中間層驅(qū)動(dòng)程序、基于NDIS-HOOK鉤子驅(qū)動(dòng)和基于TDI過(guò)濾驅(qū)動(dòng)程序。下面對(duì)這四種采取不同技術(shù)的防火墻作比較:
2.2.1 基于Winsock2SPI技術(shù):SPI技術(shù)程序能夠獲得Winsock進(jìn)程通信的詳情,通過(guò)嵌入自己的處理函數(shù)來(lái)完成數(shù)據(jù)流加密等用戶(hù)程序自定義的處理,但由于SPI僅實(shí)現(xiàn)對(duì)基于Winsock的數(shù)據(jù)包進(jìn)行攔截,對(duì)傳輸層的通信數(shù)據(jù)包無(wú)能為力無(wú)法攔截TCP/IP數(shù)據(jù)包,因而有一定的局限性。
2.2.2 基于TDI過(guò)濾驅(qū)動(dòng)程序:通過(guò)TDI接口數(shù)據(jù)封包攔截,同時(shí)攔截應(yīng)用程序通信交互的接口中所要發(fā)送的通信數(shù)據(jù)包。對(duì)通訊數(shù)據(jù)包的分析,可以防止不明應(yīng)用程序?qū)Ρ緳C(jī)的攻擊。但系統(tǒng)中TDI接口位于第四層,對(duì)網(wǎng)絡(luò)層的數(shù)據(jù)通信無(wú)法實(shí)現(xiàn)攔截。
2.2.3 基于NDIS過(guò)濾鉤子程序:通過(guò)編寫(xiě)鉤子程序?qū)⒆约旱奶幚砗瘮?shù)嵌入Microsoft的NDIS接口規(guī)范中,實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)攔截。僅能實(shí)現(xiàn)“釣魚(yú)”攔截,安全性較差。
2.2.4 基于NDIS中間層驅(qū)動(dòng)程序:此攔截技術(shù)可以截獲所有的網(wǎng)絡(luò)通信數(shù)據(jù)包,在底層上完成數(shù)據(jù)包的交互,但截獲的數(shù)據(jù)包分析復(fù)雜,可讀性差,實(shí)際應(yīng)用少。這種技術(shù)卻具有較高的安全性。
攔截技術(shù)各有長(zhǎng)短,單靠某一種攔截技術(shù)設(shè)計(jì)出來(lái)的防火墻往往達(dá)不到需要的安全級(jí)別。如費(fèi)爾個(gè)人防火墻采用了SPI、NDIS-HOOK驅(qū)動(dòng)程序兩種攔截技術(shù)。盡管Windows構(gòu)架下網(wǎng)絡(luò)封包攔截技術(shù)多樣,要想研究出更為理想的個(gè)人防火墻就須在攔截技術(shù)上揚(yáng)長(zhǎng)避短,多種技術(shù)相結(jié)合方式進(jìn)行。
4 個(gè)人防火墻設(shè)計(jì)
基于Windows系統(tǒng)的國(guó)外比較出色的PC防火墻有卡巴斯基、麥咖啡、諾頓等等;我們國(guó)家比較出色的有瑞星、江民、天網(wǎng)、360等。下文個(gè)人防火墻設(shè)計(jì)進(jìn)行描述。
4.1 系統(tǒng)功能分析
文章所設(shè)計(jì)防火墻是在應(yīng)用層進(jìn)行封包截獲,基于Winsock 2 SPI技術(shù),主要實(shí)現(xiàn)以下功能:
(1)實(shí)現(xiàn)計(jì)算機(jī)實(shí)時(shí)保護(hù),免被非法程序的攻擊;(2)完成應(yīng)用程序的處理具有記憶功能,對(duì)同一個(gè)或同一類(lèi)型的應(yīng)用程序處理動(dòng)作統(tǒng)一;(3)實(shí)現(xiàn)應(yīng)用程序的入網(wǎng)操作進(jìn)行分析過(guò)濾;(4)記錄應(yīng)用程序聯(lián)網(wǎng)動(dòng)作及處理方案、數(shù)據(jù)通信等詳情的日志記錄文件;(5)即時(shí)通報(bào)非法外在攻擊,并做出處理動(dòng)作;總的說(shuō)來(lái),此系統(tǒng)是基于Windows 用戶(hù)封包截獲技術(shù)的基礎(chǔ)下提出的,其核心功能是應(yīng)用層網(wǎng)絡(luò)封包攔截。
4.2 系統(tǒng)流程圖
防火墻系統(tǒng)包括三個(gè)方面:防火墻進(jìn)程(.exe)、防火墻驅(qū)動(dòng)程序(.vxd或者.sys)及防火墻安全控制規(guī)則集。工作流程如圖1所示。
由上述工作流程圖可知,系統(tǒng)詳細(xì)功能模塊如圖2所示。
主模塊實(shí)現(xiàn)應(yīng)用程序安裝(包括卸載)、用戶(hù)注冊(cè)、安全規(guī)則編輯、安全規(guī)則設(shè)置、防火墻系統(tǒng)工作模式設(shè)置、日志讀寫(xiě)、日志記錄及其文件處理及顯示功能;控管規(guī)則文件實(shí)現(xiàn)與主模塊中的安全規(guī)則編輯進(jìn)行交互;日志文件模塊實(shí)現(xiàn)與主模塊中的讀寫(xiě)日志文件進(jìn)行交互;驅(qū)動(dòng)程序模塊是實(shí)現(xiàn)系統(tǒng)的核心。它由主模塊引導(dǎo)執(zhí)行,包含:網(wǎng)絡(luò)數(shù)據(jù)包封包過(guò)濾模塊、安全控管規(guī)則模塊、工作模式模塊及生成日志模塊。這些模塊與主模塊交互以完成相應(yīng)的工作。
4.3 監(jiān)控界面
個(gè)人防火墻系統(tǒng)應(yīng)用程序監(jiān)控界面如圖3所示,用戶(hù)可以看到當(dāng)前正在與互聯(lián)網(wǎng)連接訪問(wèn)的應(yīng)用程序的進(jìn)程,可以清楚的此進(jìn)程的路徑、遠(yuǎn)端IP及端口、本機(jī)端口等信息。
圖3 監(jiān)控界面
5 結(jié)束語(yǔ)
文章首先對(duì)防火墻的發(fā)展和種類(lèi)進(jìn)行了介紹,并對(duì)在各階段其實(shí)現(xiàn)技術(shù)上的差異進(jìn)行分析比較結(jié)合Windows個(gè)人防火墻原理和網(wǎng)絡(luò)封包攔截技術(shù),提出了一種基于Windows構(gòu)架下網(wǎng)絡(luò)數(shù)據(jù)包攔截技術(shù)的個(gè)人防火墻的實(shí)現(xiàn)方案。
參考文獻(xiàn)
[1]陳琪,屈光,高傳善.Windows單機(jī)版防火墻包過(guò)濾多種方案比較與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2005(5):114-116.
[2]謝輝.包過(guò)濾技術(shù)在個(gè)人安全防御系統(tǒng)的研究與實(shí)現(xiàn)[D].西安:西安科技大學(xué)計(jì)算機(jī)學(xué)院,2006.
[3]蔡思飛.包過(guò)濾主機(jī)防火墻技術(shù)的研究[D].太原:太原理工大學(xué),2006.
[4]殷肖川,等.網(wǎng)絡(luò)編程與開(kāi)發(fā)技術(shù)[M].西安:西安交通大學(xué)出版社,2009.
4.1 系統(tǒng)功能分析
文章所設(shè)計(jì)防火墻是在應(yīng)用層進(jìn)行封包截獲,基于Winsock 2 SPI技術(shù),主要實(shí)現(xiàn)以下功能:
(1)實(shí)現(xiàn)計(jì)算機(jī)實(shí)時(shí)保護(hù),免被非法程序的攻擊;(2)完成應(yīng)用程序的處理具有記憶功能,對(duì)同一個(gè)或同一類(lèi)型的應(yīng)用程序處理動(dòng)作統(tǒng)一;(3)實(shí)現(xiàn)應(yīng)用程序的入網(wǎng)操作進(jìn)行分析過(guò)濾;(4)記錄應(yīng)用程序聯(lián)網(wǎng)動(dòng)作及處理方案、數(shù)據(jù)通信等詳情的日志記錄文件;(5)即時(shí)通報(bào)非法外在攻擊,并做出處理動(dòng)作;總的說(shuō)來(lái),此系統(tǒng)是基于Windows 用戶(hù)封包截獲技術(shù)的基礎(chǔ)下提出的,其核心功能是應(yīng)用層網(wǎng)絡(luò)封包攔截。
4.2 系統(tǒng)流程圖
防火墻系統(tǒng)包括三個(gè)方面:防火墻進(jìn)程(.exe)、防火墻驅(qū)動(dòng)程序(.vxd或者.sys)及防火墻安全控制規(guī)則集。工作流程如圖1所示。
由上述工作流程圖可知,系統(tǒng)詳細(xì)功能模塊如圖2所示。
主模塊實(shí)現(xiàn)應(yīng)用程序安裝(包括卸載)、用戶(hù)注冊(cè)、安全規(guī)則編輯、安全規(guī)則設(shè)置、防火墻系統(tǒng)工作模式設(shè)置、日志讀寫(xiě)、日志記錄及其文件處理及顯示功能;控管規(guī)則文件實(shí)現(xiàn)與主模塊中的安全規(guī)則編輯進(jìn)行交互;日志文件模塊實(shí)現(xiàn)與主模塊中的讀寫(xiě)日志文件進(jìn)行交互;驅(qū)動(dòng)程序模塊是實(shí)現(xiàn)系統(tǒng)的核心。它由主模塊引導(dǎo)執(zhí)行,包含:網(wǎng)絡(luò)數(shù)據(jù)包封包過(guò)濾模塊、安全控管規(guī)則模塊、工作模式模塊及生成日志模塊。這些模塊與主模塊交互以完成相應(yīng)的工作。
4.3 監(jiān)控界面
個(gè)人防火墻系統(tǒng)應(yīng)用程序監(jiān)控界面如圖3所示,用戶(hù)可以看到當(dāng)前正在與互聯(lián)網(wǎng)連接訪問(wèn)的應(yīng)用程序的進(jìn)程,可以清楚的此進(jìn)程的路徑、遠(yuǎn)端IP及端口、本機(jī)端口等信息。
圖3 監(jiān)控界面
5 結(jié)束語(yǔ)
文章首先對(duì)防火墻的發(fā)展和種類(lèi)進(jìn)行了介紹,并對(duì)在各階段其實(shí)現(xiàn)技術(shù)上的差異進(jìn)行分析比較結(jié)合Windows個(gè)人防火墻原理和網(wǎng)絡(luò)封包攔截技術(shù),提出了一種基于Windows構(gòu)架下網(wǎng)絡(luò)數(shù)據(jù)包攔截技術(shù)的個(gè)人防火墻的實(shí)現(xiàn)方案。
參考文獻(xiàn)
[1]陳琪,屈光,高傳善.Windows單機(jī)版防火墻包過(guò)濾多種方案比較與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2005(5):114-116.
[2]謝輝.包過(guò)濾技術(shù)在個(gè)人安全防御系統(tǒng)的研究與實(shí)現(xiàn)[D].西安:西安科技大學(xué)計(jì)算機(jī)學(xué)院,2006.
[3]蔡思飛.包過(guò)濾主機(jī)防火墻技術(shù)的研究[D].太原:太原理工大學(xué),2006.
[4]殷肖川,等.網(wǎng)絡(luò)編程與開(kāi)發(fā)技術(shù)[M].西安:西安交通大學(xué)出版社,2009.
4.1 系統(tǒng)功能分析
文章所設(shè)計(jì)防火墻是在應(yīng)用層進(jìn)行封包截獲,基于Winsock 2 SPI技術(shù),主要實(shí)現(xiàn)以下功能:
(1)實(shí)現(xiàn)計(jì)算機(jī)實(shí)時(shí)保護(hù),免被非法程序的攻擊;(2)完成應(yīng)用程序的處理具有記憶功能,對(duì)同一個(gè)或同一類(lèi)型的應(yīng)用程序處理動(dòng)作統(tǒng)一;(3)實(shí)現(xiàn)應(yīng)用程序的入網(wǎng)操作進(jìn)行分析過(guò)濾;(4)記錄應(yīng)用程序聯(lián)網(wǎng)動(dòng)作及處理方案、數(shù)據(jù)通信等詳情的日志記錄文件;(5)即時(shí)通報(bào)非法外在攻擊,并做出處理動(dòng)作;總的說(shuō)來(lái),此系統(tǒng)是基于Windows 用戶(hù)封包截獲技術(shù)的基礎(chǔ)下提出的,其核心功能是應(yīng)用層網(wǎng)絡(luò)封包攔截。
4.2 系統(tǒng)流程圖
防火墻系統(tǒng)包括三個(gè)方面:防火墻進(jìn)程(.exe)、防火墻驅(qū)動(dòng)程序(.vxd或者.sys)及防火墻安全控制規(guī)則集。工作流程如圖1所示。
由上述工作流程圖可知,系統(tǒng)詳細(xì)功能模塊如圖2所示。
主模塊實(shí)現(xiàn)應(yīng)用程序安裝(包括卸載)、用戶(hù)注冊(cè)、安全規(guī)則編輯、安全規(guī)則設(shè)置、防火墻系統(tǒng)工作模式設(shè)置、日志讀寫(xiě)、日志記錄及其文件處理及顯示功能;控管規(guī)則文件實(shí)現(xiàn)與主模塊中的安全規(guī)則編輯進(jìn)行交互;日志文件模塊實(shí)現(xiàn)與主模塊中的讀寫(xiě)日志文件進(jìn)行交互;驅(qū)動(dòng)程序模塊是實(shí)現(xiàn)系統(tǒng)的核心。它由主模塊引導(dǎo)執(zhí)行,包含:網(wǎng)絡(luò)數(shù)據(jù)包封包過(guò)濾模塊、安全控管規(guī)則模塊、工作模式模塊及生成日志模塊。這些模塊與主模塊交互以完成相應(yīng)的工作。
4.3 監(jiān)控界面
個(gè)人防火墻系統(tǒng)應(yīng)用程序監(jiān)控界面如圖3所示,用戶(hù)可以看到當(dāng)前正在與互聯(lián)網(wǎng)連接訪問(wèn)的應(yīng)用程序的進(jìn)程,可以清楚的此進(jìn)程的路徑、遠(yuǎn)端IP及端口、本機(jī)端口等信息。
圖3 監(jiān)控界面
5 結(jié)束語(yǔ)
文章首先對(duì)防火墻的發(fā)展和種類(lèi)進(jìn)行了介紹,并對(duì)在各階段其實(shí)現(xiàn)技術(shù)上的差異進(jìn)行分析比較結(jié)合Windows個(gè)人防火墻原理和網(wǎng)絡(luò)封包攔截技術(shù),提出了一種基于Windows構(gòu)架下網(wǎng)絡(luò)數(shù)據(jù)包攔截技術(shù)的個(gè)人防火墻的實(shí)現(xiàn)方案。
參考文獻(xiàn)
[1]陳琪,屈光,高傳善.Windows單機(jī)版防火墻包過(guò)濾多種方案比較與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2005(5):114-116.
[2]謝輝.包過(guò)濾技術(shù)在個(gè)人安全防御系統(tǒng)的研究與實(shí)現(xiàn)[D].西安:西安科技大學(xué)計(jì)算機(jī)學(xué)院,2006.
[3]蔡思飛.包過(guò)濾主機(jī)防火墻技術(shù)的研究[D].太原:太原理工大學(xué),2006.
[4]殷肖川,等.網(wǎng)絡(luò)編程與開(kāi)發(fā)技術(shù)[M].西安:西安交通大學(xué)出版社,2009.