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

基于LSP與NDIS驅動防火墻的設計與實現

2020-11-06 15:35:33梅足輝
現代信息科技 2020年12期

摘 ?要:信息時代個人電腦成為了生活的重要組成部分,對個人防火墻的研究對保護信息安全有重要的現實意義。目前防火墻大多在驅動層面使用包過濾技術,對數據的封包處理能力有限,并且無法接觸應用層信息,過濾匹配算法也大多為線性時間算法。為了提高防火墻的過濾能力,文章提出加入LSP過濾技術對網絡封包進行全面深度過濾,并改善了匹配算法,設計了一款內核與應用層雙重過濾的驅動防火墻。經過測試,它對網絡數據包有強大的過濾能力。

關鍵詞:網絡驅動接口規范;防火墻;LSP;包過濾

中圖分類號:TP393.08 ? ? ? 文獻標識碼:A 文章編號:2096-4706(2020)12-0140-03

Abstract:Personal computer plays an important role of life in the information age. Therefore it is important and realizable for us to research the firewall. At present,most firewalls use packet filtering technology at the driver level,which has limited processing capacity for data packets,and can not contact the application layer information,and most of the filtering and matching algorithms are linear time. In order to improve the filtering ability of firewall,LSP filtering technology is proposed to filter network packets comprehensively and deeply,and the matching algorithm is improved. A driver firewall with dual filtering of kernel and user layer is designed. After testing,it has a strong filtering ability for network packets.

Keywords:network driver interface specification;firewall;LSP;packet filtering

0 ?引 ?言

防火墻是保護網絡安全的一種重要手段,它通常部署在內網入口處與個人主機上,具有硬件與軟件的形式。防火墻通常為包過濾防火墻、狀態檢測防火墻等[1]。此類防火墻主要根據一些過濾規則對網絡包五元組(即目的與源IP地址、目的與源端口、協議)進行過濾[2],同時匹配模式通常是從第一條規則開始逐步比對,直到遇到相同規則或者按照缺省規則處理。

由于此類防火墻通常處于網絡結構下層,無法感知用戶層信息。為了提升防火墻能力,本文加入了用戶層的過濾HOOK;同時由于過濾匹配通常為線性算法,為了提高過濾效率,將過濾規則以哈希雙鏈表的方式組織[3]。實驗表明加入用戶層HOOK的防火墻擁有了感知應用層信息的能力,并且當過濾規則數量較多時,哈希雙鏈表也能有效提高匹配效率。

本文基于校內工業協議防火墻的項目對防火墻進行了研究,在NDIS中間層的過濾驅動中加入了LSP過濾HOOK,改善了過濾匹配算法,并使用共享內存與IOCTL作為主界面UI、應用層DLL、內核層驅動之間的通信方式,設計并實現了一款基于LSP與NIDS的驅動防火墻。

1 ?系統設計

1.1 ?模塊設計

本防火墻將分為三個模塊:主界面UI、應用層DLL、內核層驅動,交互過程圖如圖1所示。

(1)主界面UI:負責與用戶的交互,例如加載LSP的DLL鉤子、設定應用層與內核層的過濾規則、顯示網絡訪問監視界面、詢問用戶決定以及設置注冊表等功能。本模塊通過共享內存與應用層DLL模塊通信、通過IOCTL與內核層驅動模塊通信,保證兩層過濾模塊能夠及時獲得用戶期望的過濾行為。

(2)應用層DLL:這是一個運行在用戶模式并注入系統協議鏈的DLL模塊。負責在Winsock的層面截獲應用程序訪問網絡的請求,并根據與主界面UI的共享內存設定過濾函數的邏輯,判斷網絡請求是否記錄、通行等。

(3)內核層驅動:這是一個NDIS中間層過濾驅動,負責在內核模式根據IOCTL與主界面UI的通信結果來管理輸入輸出封包、記錄網絡活動狀態等。

1.2 ?過濾規則

防火墻將根據用戶設置的過濾規則對流經網絡的數據包進行過濾與攔截[4]。各個模塊具體規則信息如表1所示。

2 ?核心技術

2.1 ?匹配算法

本系統采用哈希雙鏈表的方式進行過濾規則匹配。通常的規則匹配都是采用循環對比的方式,此方式在規則數量足夠多時將會極大影響系統的運行效率[5]。因此本系統將規則以哈希表的形式存儲,匹配時計算規則Key值進行匹配,時間復雜度為O(1),極大地提高了防火墻的匹配效率。

2.2 ?內核層面過濾

本系統采用中間層驅動作為系統內核層的過濾方式。在Windows網絡中,應用層的網絡請求將通過SPI接口進入內核,通過TDI接口協議驅動、中間層驅動、網卡驅動傳輸至下層NIC設備發送。其實這些驅動都可以選擇作為防火墻的過濾技術,也各有商業軟件的實現。

底層網絡驅動中,協議驅動方便捕獲所有接收包,但不利于捕獲發送包;而網卡驅動則更加片面不能過濾到所有的封包。中間層驅動兼備兩者特性,對上表現網卡驅動接口,對下表現協議驅動接口,是內核中過濾網絡數據包的最佳選擇,因此本系統選擇中間層驅動作為內核層的過濾技術。通過中間層驅動可以過濾原始以太網絡包、分析協議類型、修改網絡數據包,可以過濾或修改源地址與端口、目的地址與端口、數據包內容,并可以進行任意修改、轉發、丟棄,放行[6]。

本系統中間層驅動中,注冊了包裝句柄、小端口句柄、關聯句柄、協議句柄、填寫特征函數、綁定網卡設備、創建設備對象、填寫IRP操作函數等。在系統發送網絡數據時會調用NdisSend或者NdisSendPackets函數,本系統的中間層驅動將對上層展示為網卡驅動,獲取從設備棧上層的Send操作,并在Send操作中完成對數據的過濾。同理系統Receive的回調也以類似的方式實現。

Windows傳輸封包在底層網絡中為NDIS_PACKET、NDIS_BUFFER。NDIS_PACKET(包描述符)是一組存放NDIS_BUFFER(緩沖描述符)的鏈表結構。在過濾時要以兩套過濾方法對兩種結構進行過濾,因為系統接收時調用的函數是不確定的,所以要對兩種結構的收發函數同時過濾才能截獲所有封包。

2.3 ?應用層過濾

本系統采用LSP技術進行應用層過濾。此技術本質上是一個HOOKDLL,用戶打開主程序后,本系統會將LSPDLL注冊安裝到當前主機的Winsock目錄,并且更改協議鏈的順序,否則在API調用時新的提供者將在目錄結尾,永遠不會被默認調用。

通過HOOK技術掛入主機協議鏈后,用戶系統調用WSAStartup進行Winsock編程時,會調用本系統注冊的SPI函數,當主機系統進行網絡通信,例如使用Connect、Socket、SendTo等函數,將會傳遞到本系統在DLL中的Winsock API;使用WSPConnect、WSPSocket、WSPSendTo等函數,此時所有網絡數據將會按照防火墻DLL中的規則對網絡封包進行過濾。

2.4 ?系統通信方式

用戶對防火墻進行操作時會通過主模塊與過濾模塊進行交互,例如設定內核層或者應用層的過濾規則。同時過濾模塊在進行過濾時也需要與用戶進行交互,例如詢問用戶過濾動作、顯示當前過濾信息等。因此本系統需要實現各個模塊之間的信息交互功能。

主界面UI與應用層DLL之間的通訊采用共享內存的方法實現。本系統在DLL中分配一片可讀可寫的共享內存作為通信緩沖區,在應用程序中需要使用CreateFileMapping創建內存映射獲取句柄再通過MapViewOfFile獲得映射用來訪問共享內存。此方法在訪問共同資源時需要進行對資源訪問鎖的控制,防止雙方同時改寫數據造成數據沖突。

應用層與內核層驅動之間的通訊采用IOCTL的方法實現。進行設備讀寫時,通常用戶會操控UserBuffer直接進行讀寫,但是此方式會重復復制緩沖區的信息,在防火墻中信息量通常比較大,直接用UserBuffer效率十分將低下,所以本系統使用DO_DIRECT_IO的方式進行讀寫。使用此方式時用戶訪問讀寫區域的內存結構是一個MDL,這相當于一個指針,將應用層內存空間映射到內核空間中,這是內核空間的內存通過分頁表等手段向外部的一次映射。Irp->MdlAddress則是這個MDL的指針的句柄,通過內置函數MmGetSystemAddressForMdlSage,即可得到UserBuffer對內存進行高效訪問。

3 ?程序調試與測試

調試環境:VMware Windows 7

開發環境:Visual Studio 2017,WDK 10、SDK 10

防火墻系統運行之前需要將防火墻DLL與驅動注入主機系統,DLL注入使用LoadLibrary函數,在防火墻主機面點擊加載DLL按鈕即可完成DLL的加載。

驅動加載有兩種方式,一種是右鍵打開本地連接-屬性,在網絡選線中選擇安裝,在對話框中選擇防火墻的SYS文件進行安裝。另一種是使用已經編譯好的安裝程序鍵入命令installdrv mfw.sys進行安裝。完成后即可使用防火墻的全部功能,圖2所示為防火墻的網絡訪問監視界面。

4 ?結 ?論

本文針對傳統防火墻過濾能力單一的問題,設計了一款基于LSP與NDIS雙層過濾的驅動防火墻,討論了防火墻的模塊設計和主要技術以及思路,詳細闡述了如何實現數據包過濾以及一些重要技術。雖然NDIS中間層過濾驅動功能強大,但其位于系統底層,獲取信息能力有限。針對這個問題,本文在防火墻加入了應用層的DLL防火墻,使防火墻過濾底層網絡封包又可兼顧上層應用過濾。

驅動程序復雜,稍不注意就會出現級別越界、訪問越界等問題導致藍屏死機,同時內核系統函數也復雜多樣,所以編寫程序時也需要一份樣例來指導。此防火墻在應用層與內核層進行雙重過濾,穩定高效,安全性能顯著,并且擁有圖形交互界面,方便操作。本文重點闡述了防火墻的技術難點,為NDIS驅動編寫人提供參考。

參考文獻:

[1] DIEKMANN C,HUPEL L,JULIUS MICHAELIS,et al. Verified iptables Firewall Analysis and Verification [J]. Journal of Automated Reasoning,2018,61(1-4):191-242.

[2] NEVILLE U,FOLEY S N. Reasoning about firewall policies through refinement and composition [J]. Journal of Computer Security,2018,26(2):207-254.

[3] TRABELSI Z,ZEIDAN S,MASUD M M,et al. Statistical dynamic splay tree filters towards multilevel firewall packet filtering enhancement [J]. Computers & Security,2015,53:109-131.

[4] 宮鼎.基于權重與匹配效率的防火墻規則集優化算法 [J].現代計算機(專業版),2014(14):45-50.

[5] 萬偉.基于NDIS中間層驅動的DDoS防火墻的設計 [J].實驗科學與技術,2015,13(2):32-35.

[6] 王婷婷.基于NDIS中間層驅動的網絡內容過濾關鍵技術研究 [D].天津:天津理工大學,2017.

作者簡介:梅足輝(1996.11—),男,漢族,江蘇鎮江人,研究生,研究方向:軟件開發。

主站蜘蛛池模板: 国产三区二区| 久久毛片免费基地| 天天综合色天天综合网| 中文字幕在线观| 高清国产va日韩亚洲免费午夜电影| 亚洲aⅴ天堂| 91精品专区国产盗摄| 国产精品无码一二三视频| 欧美综合区自拍亚洲综合绿色| 国产00高中生在线播放| 日本少妇又色又爽又高潮| 亚洲国产理论片在线播放| 暴力调教一区二区三区| 久久免费精品琪琪| 久久综合色播五月男人的天堂| 91精品人妻一区二区| 色婷婷视频在线| 国产中文在线亚洲精品官网| 欧美日本在线播放| 狠狠色狠狠综合久久| 欧美国产视频| 中文字幕日韩视频欧美一区| 欧美一区二区三区香蕉视| 毛片网站在线播放| 美女视频黄又黄又免费高清| 亚洲欧美日韩中文字幕一区二区三区| 亚洲综合婷婷激情| 亚洲熟女中文字幕男人总站 | 欧美有码在线观看| 青青青视频免费一区二区| 久久人搡人人玩人妻精品| 中文字幕欧美日韩| 亚洲第一成年免费网站| 亚洲男人的天堂在线观看| 亚洲女同欧美在线| 热这里只有精品国产热门精品| 成人亚洲国产| 狠狠色香婷婷久久亚洲精品| 久久久久国产一区二区| 亚洲一区精品视频在线 | 波多野结衣中文字幕一区二区| 久久99这里精品8国产| a毛片在线| 婷婷丁香在线观看| 亚洲免费福利视频| 亚洲成人精品久久| 亚洲精品高清视频| 亚洲视频三级| 制服丝袜在线视频香蕉| 欧美一道本| 亚洲福利网址| 婷婷开心中文字幕| 午夜国产小视频| 亚洲美女AV免费一区| 欧美国产综合色视频| 国产91视频免费观看| 91精选国产大片| 欧美第九页| 九色在线视频导航91| 国产在线观看人成激情视频| 国产九九精品视频| www.精品视频| AⅤ色综合久久天堂AV色综合| 欧美精品二区| 97超级碰碰碰碰精品| 午夜三级在线| 亚洲天堂色色人体| 久久久久亚洲av成人网人人软件| 一本久道久综合久久鬼色| 国产福利2021最新在线观看| 综合成人国产| 国产午夜一级毛片| 欧美三级视频网站| 另类欧美日韩| 国产精品香蕉在线观看不卡| 国产av色站网站| 老汉色老汉首页a亚洲| 国产精品伦视频观看免费| 天天摸夜夜操| 久久久久久久久久国产精品| 欧美一级特黄aaaaaa在线看片| 人妻一区二区三区无码精品一区|