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

個人防火墻系統架構設計與實現

2009-04-29 00:00:00孫興文
電腦知識與技術 2009年33期

摘要:在對防火墻的性能和效率分析和改進的基礎上,設計并實現了一個基于 Windows平臺的個人防火墻。個人防火墻在實現過程中應用了這些效率和性能改進的策略,并取得了良好效果。

關鍵詞:網絡安全;個人防火墻;驅動程序;系統服務

中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)33-9559-03

Personal Firewall System Architecture Design and Implementation

SUN Xing-wen

(Central South University, Institute of Information Science and Engineering, Changsha 410083, China)

Abstract: In firewall performance and efficiency of analysis and improvement, based on the design and implementation of a personal firewall on Windows platform. Personal Firewall application in the realization of the process of improving the efficiency and performance of these strategies, and achieved good results.

Key words: network security; personal firewall; windows driver; NDISNT service

防火墻作為最早出現的和使用量最大的網絡安全產品,受到了用戶和許多研發機構的青睞。防火墻具有很好的保護作用,它通過對流經它的網絡通信進行監控來實現安全防護。從應用角度來看防火墻基本上可以分為網絡級的防火墻和個人防火墻兩種。目前個人用戶對網絡安全的需要在不斷增加,而 Windows操作系統是使用最為廣泛的PC操作系統,本文將重點討論如何在Windows操作系統下開發個人防火墻。

1 防火墻系統的設計

根據個人計算機的安全管理和實際需求,在設計個人防火墻時主要完成了以下的功能:數據包過濾,文件系統監控,進程線程監控。

本系統總共分成三個模塊:表示層模塊,中間層服務模塊和驅動層模塊。用戶界面層模塊就是傳統的Windows應用程序,中間服務層模塊主要是Windows系統服務;驅動層模塊就是Windows驅動程序。表示層模塊和中間層服務服務模塊是用戶模式的應用程序,驅動層模塊是則是一個工作在系統內核模式的驅動程序。

表示層是一個用戶界面的接口,提供用戶和防火墻之間的對話。用戶通過界面可以輸入規則,然后向中間服務模塊和驅動層模塊傳遞規則。然后中間服務模塊向主程序傳遞統計日志信息。

中間層服務程序,主要是同上面的表示層,以及下面的驅動層進行通信,同時執行必要的計算,向上層和下層傳遞數據。

驅動層模塊主要包括三個模塊,NDIS中間層驅動模塊,文件系統監控模塊和WinSock2 SPI HOOK模塊。NDIS中間層驅動模塊主要功能是對進出系統的數據包進行分析過濾;文件系統監控模塊主要對系統內的進程線程讀寫進行監控;Winsock2SPI HOOK模塊主要對應用程序訪問網絡的行為做出判斷。

系統劃分為三層結構帶來以下的優點:

1) 系統的架構非常清晰,三個層次各司其職;

2) 層次之間非常獨立,這樣當某一層的需求發生改變時,只需在該層增加或減少相應的功能,其余兩層稍作相應的改動即可,應用程序不會出現牽一動百的情況;

3) 表示層不能直接通信驅動層,只有中間服務層可以同驅動層通信,這樣可以保證表示層不會出現不能響應的現象。

4) 系統擴展新增強,模塊化的設計使系統在橫向和縱向都很容易擴充,可以在中間層增加新的系統服務;

5) 系統可并行開發,縮短了開發周期,在定義完層次之間的接口之后,三個層就可以并行開發。

2 防火墻系統的實現

系統表示層模塊包含了整個系統的用戶界面部分,主程序主要實現了一下的功能:加載中間層服務模塊,顯示規則表;顯示當前網絡狀態文件;顯示數據包攔截過濾信息;顯示應用程序網絡監控信息;顯示當前進程線程信息;設置各種規則;同中間服務層通信。

中間層服務模塊主要分成5個模塊:表示層處理模塊,NDIS層通信模塊,SPI監控通信模塊,進程監視通信模塊,讀寫模塊。

驅動層分成3個模塊:NDIS中間層驅動,文件系統監控模塊以及Winsock2 SPI HOOK模塊。

3 防火墻系統核心功能實現

驅動模塊主要分成3個部分分別是NDIS中間層驅動模塊,文件系統監控模塊,Winsock2 SPI網絡監控模塊。

3.1 數據包過濾監控

NDIS 中間層驅動插入在網卡和上層協議中間,可以拿到所有的數據包,發送數據包和接收數據包的截獲主要是靠這三個函數實現的。

MP Send Packet:這個函數可以獲取將要發送的數據包,將數據包傳到下面一層miniport,或者直接將數據包丟棄;

PT Receive:這個函數主要用于鏈式結構的包收取策略,用于老式網卡或低檔網卡如rtl8139等等。這個函數將接收的數據包傳往上層或者丟棄;

PT Receive Packet:這個函數主要用于大緩沖包收取策略,用于新式和高檔網卡。在這三個函數里面對數據包進行分析,并同規則表進行匹配,就可以實現數據包過濾的功能。

NDIS 發送基本流程如圖1所示。

PT Receive和PT Receive Packet的基本流程如圖2所示。

當微端口層不能一次收到完整的數據報文的情況,見圖3所示。

1) 底層驅動通過調用函數Ndis M Indicate Receive/ Ndis MEth Indicate Receive通知上層已經收到數據報文;

2) 在Pt Receive中通過Ndis Get Received Packet得不到一個完整的packet,就直接調用Ndis MEth Indicate Receive函數通知NDIS;

3) 當底層miniport驅動收到了完整的數據報文后,會調用Ndis MEth Indicate Receive Complete函數通知,然后NDIS會調用函數Pt Receive Complete;

4) 同樣,在函數Pt Receive Complete里面也會繼續調用函數Ndis MEth Indicate Receive Complete,通知NDIS收到完整的報文;

5) 當上層協議驅動得知底層已經收到了完整的數據報文后,就會調用Ndis Transfer Data,要求下層上傳數據;

6) 然后NDIS接著調用MP Transfer Data例程。在 MP Transfer Data 中,再調用 Ndis Transfer Data。如果返回值為success,就說明數據立刻就上傳上去了,此時就可以返回了,不用再進行(7)和(8)兩步了;如果返回pending,表明底層現在處于阻賽,底層會在稍后再進行第(7)步;

7) 當底層 miniport 驅動上傳完了完整的packet,會調用Ndis Transfer Data Complete;

8) 同樣在中間層的Pt Transfer Data Complete 再作一次同樣的調用。至于驅動和中間服務層的通信問題,可以查看后文中驅動層同中間服務層的通信接口。

3.2 進程線程監控

木馬,蠕蟲等軟件中大量使用遠程線程技術,通過在目標進程中插入線程的方式運行插入的線程,實現方式在前文已經介紹過了。因此如何防止這種遠程線程注入也是個人防火墻的重要功能之一。

實現對進程和線程的監控主要是通過Ps Set Create Process Notify Routine()和Ps Create Thread Notify Routine()兩個函數實現的。這兩個函數向系統注冊一個Call Back函數對進程和線程進行監視。啟動流程如圖4所示。

1) 調用Ps Create Thread Notify Routine函數;

2) 調用Ps Set Create Process Notify Routine函數。

3.3 驅動層同中間服務層的接口

驅動層同中間的服務層之間的接口主要通過共享事件和Device IO Control接口來實現。

中間的服務層主動通信驅動層主要是通過Device IO Control接口的Device IO Control、函數實現的。Device IO Control函數原形如下:

BOOL Device IO Control(

HANDLE h Device,

DWORD dw IO Control Code,

LPVOID lp In Buffer,

DWORD n In Buffer Size,

LPVOID lp Out Buffer,

DWORD n Out Buffer Size,

LPDWORD lp Bytes Returned,

LPOVERLAPPED lp Over lapped);

其中:h Device [in]:是一個只向將要進行操作的設備的句柄,該句柄可以通過Create File函數得到;

Dw In Control Code[in]:操作控制碼。將操作控制碼傳給設備后,以決定采取何種操作;

Lp In Buffer[in]:一個指向輸入給設備的數據區的指針;

N In Buffer Size[in]:輸入設備的數據區的大小;

Lp Out Buffer[out]:一個指向從設備輸出的數據區的指針;

N Out Buffer Size[in]:設備輸出的數據區的大小;

Lp Bytes Returned[out]:一個指向輸出數據緩沖區大小的指針;

Lp Over lapped[in]:一個指向 OVERLAPPED 結構的指針。

驅動層主動同中間層通信主要是通過共享內存和事件實現的。

1) 中間服務層通過函數Create Event創建Event,然后通過函數Device IO Control將 Event傳遞到驅動層;

2) 驅動層通過調用Ob Reference Object By Handle函數就可以得到傳遞進來的事件的指針;

3) 中間服務層通過函數Device IO Control得到驅動層創建的共享內存的地址。然后在中間服務層運行Wait For Single Object函數或者Wait For Multpl Object函數,等待驅動層的事件通知。當驅動層想通知中間服務層時就通過調用Ke Set Event 函數,這樣中間層就可以收到驅動層的事件通知了。

4 結束語

本文對從五個系統性能和效率瓶頸出發:1)規則表的匹配低效;2)驅動層同中間層的繁忙通信;3)進程間的繁忙數據交換;4)文件讀寫的低效;5)策略表的低效查找。針對這些瓶頸,我們給出了解決瓶頸的七點改進策略:1)優化規則表;2)規則表細分;3)共享內存和事件的通信方式;4)內存映射;5)直接驅動層計算;6)二分查找;7)使用索引表。采用上面的改進策略構造了一個單機防火墻系統。實現了對本地系統的網絡數據包,文件系統以及進程線程的監控功能。

參考文獻:

[1] 陳琪,屈光,高傳善.Windows單機版防火墻包過濾多種方案比較與實現[J].計算機應用與軟件,2005,22(5):114-116.

[2] 晁汾濤,鄭鋒.基于中間驅動程序的數據包截獲技術[J].空軍雷達學院學報,2005(2):50-53.

[3] 郭興陽,高峰,唐朝京.一種NDIS中間層數據包過濾方法[J].計算機工程,2004(17):102-103,145.

[4] 王永彪,徐凱聲.用包過濾技術實現個人防火墻[J].計算機安全,2005(5):21-22.

[5] 王萍霞.今后的防火墻將何去何從[J].辦公自動化,2005(5):25-26.

主站蜘蛛池模板: 日韩a级片视频| 亚洲美女一级毛片| 69视频国产| 一级毛片中文字幕| 男人天堂亚洲天堂| 九九久久精品免费观看| 精品综合久久久久久97超人| 亚洲无线国产观看| 国产日本视频91| 国产精品一线天| 亚洲欧美精品日韩欧美| 无码国产偷倩在线播放老年人 | 亚洲AⅤ永久无码精品毛片| 99re精彩视频| 成人午夜免费观看| 亚洲 欧美 日韩综合一区| 亚洲天堂日韩在线| 日本人又色又爽的视频| 26uuu国产精品视频| 综合五月天网| 欧美一区二区三区不卡免费| 二级特黄绝大片免费视频大片| 色悠久久久久久久综合网伊人| 国产欧美精品专区一区二区| 日韩av无码DVD| 免费在线成人网| 四虎永久在线视频| 亚洲三级成人| 日本欧美在线观看| 国产福利拍拍拍| 久久精品人妻中文系列| 国产欧美性爱网| 久热中文字幕在线| 欧美不卡视频一区发布| 成人精品免费视频| 国产99视频免费精品是看6| 成·人免费午夜无码视频在线观看| 亚洲伊人久久精品影院| 香蕉视频在线精品| 国产一级在线观看www色| 午夜精品区| 五月婷婷激情四射| 欧美黑人欧美精品刺激| 青青草国产精品久久久久| 日本午夜视频在线观看| 久久国产亚洲偷自| 一区二区欧美日韩高清免费| 热99精品视频| 亚洲国产综合精品中文第一| 热re99久久精品国99热| 99视频精品全国免费品| 亚洲国产黄色| 色婷婷在线影院| 国产肉感大码AV无码| 欧美激情视频一区| 亚洲欧美成人网| 国产日韩欧美在线视频免费观看| 永久免费无码日韩视频| 精品撒尿视频一区二区三区| 国产成人精品男人的天堂下载 | 91在线播放免费不卡无毒| JIZZ亚洲国产| 国产精品lululu在线观看| 99re热精品视频国产免费| 日韩在线播放欧美字幕| 亚洲天堂2014| 国产精品分类视频分类一区| 精品国产中文一级毛片在线看| 伊人网址在线| 国产成人艳妇AA视频在线| 精品久久香蕉国产线看观看gif| 亚洲欧美h| 99无码中文字幕视频| 国产第一页第二页| 亚洲男人的天堂视频| 一本一道波多野结衣av黑人在线| 久久情精品国产品免费| 日韩免费中文字幕| 婷婷伊人五月| 色偷偷综合网| 久无码久无码av无码| 在线国产欧美|