關(guān)鍵詞:應(yīng)用防火墻;SDN 技術(shù);分布式結(jié)構(gòu);DPI 技術(shù);虛擬機(jī)部署
在“互聯(lián)網(wǎng)+”技術(shù)應(yīng)用推廣的背景下,以HTTP、TCP/IP 為代表的各類應(yīng)用協(xié)議被廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用層中,這不僅增加了應(yīng)用層遭受惡意代碼、病毒等攻擊的概率,同時(shí)也對(duì)系統(tǒng)防火墻的安全防護(hù)性能提出了更高要求。然而傳統(tǒng)防火墻多采用集成結(jié)構(gòu)設(shè)計(jì),流量數(shù)據(jù)包解析的范圍受限,流量檢測(cè)、過(guò)濾等處理負(fù)載明顯增大,增加防火墻故障發(fā)生概率,會(huì)誘發(fā)網(wǎng)絡(luò)通信中斷、信息丟失及提高泄密風(fēng)險(xiǎn)。基于此,為滿足面向企業(yè)級(jí)網(wǎng)絡(luò)結(jié)構(gòu)的防火墻部署需求,建立一種適應(yīng)虛擬化環(huán)境的分布式應(yīng)用防火墻部署方案是亟待解決的問(wèn)題。
一、研究基礎(chǔ)
(一)應(yīng)用防火墻與DPI 技術(shù)
應(yīng)用防火墻是一種部署在計(jì)算機(jī)網(wǎng)絡(luò)Web 應(yīng)用層的防火墻,其作用是解決傳統(tǒng)部署在網(wǎng)絡(luò)出口的防火墻基于IP 數(shù)據(jù)包的源/ 目的地址、源/ 目的端口建立過(guò)濾機(jī)制,無(wú)法對(duì)應(yīng)用層進(jìn)行安全防護(hù)的技術(shù)難題[1]。為了解決這一問(wèn)題,應(yīng)用防火墻采用深度包檢測(cè)技術(shù)(DPI)對(duì)網(wǎng)絡(luò)流量進(jìn)行檢測(cè)分析,并通過(guò)捕捉網(wǎng)絡(luò)數(shù)據(jù)包的包頭、載荷,判斷網(wǎng)絡(luò)數(shù)據(jù)流量是否存在惡意垃圾郵件、病毒攻擊、惡意代碼等攻擊行為。同時(shí),利用DPI 技術(shù)建立對(duì)報(bào)文的深度分析,按由下至上的順序?qū)?shù)據(jù)分析范圍由數(shù)據(jù)鏈路幀頭、網(wǎng)絡(luò)層包頭、傳輸層包頭擴(kuò)展至應(yīng)用層,判定數(shù)據(jù)流量的類型及其承載的內(nèi)容等[2]。
(二)SDN 技術(shù)與OpenFlow協(xié)議
SDN 技術(shù)是一種基于軟件系統(tǒng)的可編程網(wǎng)絡(luò)架構(gòu),該技術(shù)將原交換機(jī)、路由器的處理邏輯分離設(shè)計(jì),利用統(tǒng)一軟件系統(tǒng)實(shí)現(xiàn)對(duì)數(shù)據(jù)轉(zhuǎn)發(fā)、路由控制功能的集中控制,從而滿足網(wǎng)絡(luò)規(guī)模擴(kuò)展與業(yè)務(wù)結(jié)構(gòu)調(diào)整需求[3]?;赟DN 的網(wǎng)絡(luò)架構(gòu)由數(shù)據(jù)層、控制層、業(yè)務(wù)層三個(gè)層級(jí)組成。在數(shù)據(jù)層設(shè)有多個(gè)網(wǎng)絡(luò)設(shè)備,利用OpenFlow關(guān)于SDN 技術(shù)的分布式應(yīng)用防火墻研究實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸功能。在控制層部署SDN 控制器與NOS 操作系統(tǒng),經(jīng)API 接口與業(yè)務(wù)層建立連接,實(shí)現(xiàn)業(yè)務(wù)應(yīng)用功能[4]。基于SDN 技術(shù)建立的網(wǎng)絡(luò)架構(gòu)主要借助OpenFlow 協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)通信功能,通過(guò)控制器提供的API 接口實(shí)現(xiàn)對(duì)底層網(wǎng)絡(luò)設(shè)備的集中配置與科學(xué)管理,使得網(wǎng)絡(luò)架構(gòu)可以適應(yīng)不同的業(yè)務(wù)需求,實(shí)現(xiàn)靈活的調(diào)整與配置。因此,將SDN 技術(shù)應(yīng)用于應(yīng)用層防火墻部署中,能夠?yàn)樘摂M化、云計(jì)算平臺(tái)下的網(wǎng)絡(luò)安全防護(hù)提供強(qiáng)有力的技術(shù)支持[5]。
二、基于SDN 與DPI 技術(shù)的分布式應(yīng)用防火墻系統(tǒng)設(shè)計(jì)方案
(一)系統(tǒng)架構(gòu)
1. 物理拓?fù)浼軜?gòu)
其一,采用擴(kuò)展的負(fù)載均衡技術(shù)(LB)實(shí)行應(yīng)用防火墻的分布式部署,采用OpenFlow 控制器對(duì)數(shù)據(jù)層的多個(gè)網(wǎng)絡(luò)設(shè)備實(shí)行集中管控,在OpenFlow 控制器內(nèi)集成LB 模塊與Web 流量重定向模塊,可根據(jù)系統(tǒng)需求將數(shù)據(jù)包分配至應(yīng)用層不同IP 的防火墻處,實(shí)現(xiàn)對(duì)數(shù)據(jù)流量、內(nèi)部流量的檢測(cè)、分析及過(guò)濾等處理。其二,引入Linux 網(wǎng)絡(luò)級(jí)防火墻技術(shù)與應(yīng)用防火墻有機(jī)結(jié)合,利用Netfilter、Iptables 等工具對(duì)通過(guò)防火墻的TCP、UDP等連接方式執(zhí)行動(dòng)態(tài)追蹤,將上傳至系統(tǒng)中的IP 報(bào)文經(jīng)由網(wǎng)絡(luò)層過(guò)濾部分流量,再送至應(yīng)用層實(shí)現(xiàn)對(duì)數(shù)據(jù)流量的快速檢測(cè)與深度過(guò)濾,降低組件運(yùn)行負(fù)載。其三,采用DPI 技術(shù)將應(yīng)用層分散分布的各數(shù)據(jù)包基于數(shù)據(jù)關(guān)聯(lián)性實(shí)現(xiàn)整合設(shè)計(jì),保證不同數(shù)據(jù)包之間建立一定聯(lián)系,在此基礎(chǔ)上完成數(shù)據(jù)流量檢測(cè),有效識(shí)別各數(shù)據(jù)包中攜帶的攻擊特征,增強(qiáng)防火墻系統(tǒng)對(duì)網(wǎng)絡(luò)攻擊行為的防御能力?;谝陨霞夹g(shù)思路設(shè)計(jì)防火墻系統(tǒng),采用分布式結(jié)構(gòu)部署服務(wù)器、工作站、網(wǎng)絡(luò)設(shè)備、主機(jī)與便攜式電腦,根據(jù)接收到的數(shù)據(jù)執(zhí)行業(yè)務(wù)處理。
2. 軟件系統(tǒng)結(jié)構(gòu)
基于SDN 技術(shù)、DPI 技術(shù)部署分布式防火墻系統(tǒng),系統(tǒng)整體由Web 界面、控制器、流量重定向、后臺(tái)用戶態(tài)程序、后臺(tái)內(nèi)核態(tài)程序等模塊組成,在Web 界面設(shè)有API 接口與數(shù)據(jù)庫(kù)讀寫(xiě)接口,向控制器下發(fā)數(shù)據(jù)配置任務(wù),在后臺(tái)用戶態(tài)程序中由主程序模塊將流量數(shù)據(jù)分別傳遞至流量統(tǒng)計(jì)、應(yīng)用檢測(cè)與防火墻配置模塊,將事件記錄后通過(guò)數(shù)據(jù)包隊(duì)列傳遞至傳統(tǒng)防火墻模塊,最終將數(shù)據(jù)檢測(cè)結(jié)果與負(fù)載均衡、流量重定向模塊的檢測(cè)結(jié)果比較分析,實(shí)現(xiàn)雙重過(guò)濾與安全防護(hù)功能(軟件系統(tǒng)結(jié)構(gòu)具體設(shè)計(jì)情況如圖1 所示)。
(二)應(yīng)用模塊設(shè)計(jì)
1. Web 界面模塊
基于Tomcat 服務(wù)器提供的Web 前臺(tái)服務(wù)設(shè)計(jì)防火墻系統(tǒng)Web 界面,在界面中設(shè)有控制器配置、傳統(tǒng)防火墻、應(yīng)用過(guò)濾、流量查看、安全審計(jì)、日記管理、數(shù)據(jù)庫(kù)讀寫(xiě)及可視化接口模塊。當(dāng)用戶在瀏覽器中輸入網(wǎng)址,即可自動(dòng)跳轉(zhuǎn)至Web 界面,執(zhí)行控制器配置、應(yīng)用防火墻組件控制等操作。
2. 控制器模塊
該模塊設(shè)有負(fù)載均衡、流量重定向兩個(gè)功能模塊:①負(fù)載均衡模塊內(nèi)設(shè)有若干NOX 開(kāi)源負(fù)載均衡器,通過(guò)建立負(fù)載均衡組件實(shí)現(xiàn)引流,用于維護(hù)系統(tǒng)中任意一個(gè)支持對(duì)外提供服務(wù)的防火墻IP 地址的循環(huán)鏈表,當(dāng)系統(tǒng)中進(jìn)入新的數(shù)據(jù)流量時(shí),利用NOX 負(fù)載均衡器將相應(yīng)數(shù)據(jù)任務(wù)分發(fā)至具體防火墻,可實(shí)現(xiàn)安全防護(hù)機(jī)制的循環(huán)運(yùn)行。②流量重定向模塊主要采集通過(guò)交換機(jī)的數(shù)據(jù)流量與鏈路信息,根據(jù)鏈路利用率計(jì)算結(jié)果實(shí)現(xiàn)對(duì)數(shù)據(jù)流的優(yōu)化調(diào)度,結(jié)合數(shù)據(jù)流的源/ 目的地址建立服務(wù)鏈并完成優(yōu)先級(jí)排序,以流指令形式發(fā)揮對(duì)數(shù)據(jù)流的重定向功能?;谏鲜鲈?,利用流量重定向模塊識(shí)別從負(fù)載均衡器處流出的數(shù)據(jù)流分配結(jié)果,可以生成面向指定防火墻的流條目并下發(fā)至交換機(jī)。同時(shí),該模塊可從控制器處接收具體配置信息,將生成的流條目下發(fā)至交換機(jī),最終將系統(tǒng)內(nèi)部流量轉(zhuǎn)發(fā)至指定防火墻。
3. 后臺(tái)用戶態(tài)程序
在用戶態(tài)程序中設(shè)有主程序、流量統(tǒng)計(jì)、應(yīng)用檢測(cè)、防火墻配置與事件記錄等模塊:①主程序模塊,該模塊直接面向分布式防火墻軟件系統(tǒng)設(shè)計(jì),用于加載不同防火墻的具體配置信息,生成防火墻內(nèi)部各模塊實(shí)例,并完成初始化處理。在主程序模塊中設(shè)有網(wǎng)絡(luò)接口,支持與Web 頁(yè)面建立通信連接,獲取Web 前臺(tái)服務(wù)層提供的配置信息,經(jīng)信息分析、檢測(cè)后調(diào)用相應(yīng)函數(shù)模型,實(shí)現(xiàn)應(yīng)用層防火墻的具體功能。②流量統(tǒng)計(jì)模塊,該模塊主要采集通過(guò)防火墻的網(wǎng)絡(luò)流量,經(jīng)由數(shù)據(jù)整理、統(tǒng)計(jì)等流程,獲取OpenFlow 類協(xié)議流量、防火墻流入/流出流量等流量統(tǒng)計(jì)結(jié)果。③應(yīng)用檢測(cè)模塊,該模塊采用DPI 技術(shù)對(duì)數(shù)據(jù)流量包執(zhí)行檢測(cè)分析,優(yōu)化原本開(kāi)源DPI 架構(gòu)下的使用功能,支持對(duì)應(yīng)用層協(xié)議篩選與識(shí)別,完成數(shù)據(jù)檢測(cè)、過(guò)濾處理等。④防火墻配置模塊,該模塊主要為包過(guò)濾防火墻配置提供服務(wù),利用Linux 提供的防火墻組件解析配置命令,分別定義配置命令的地址、服務(wù)、時(shí)間等對(duì)象,提供實(shí)現(xiàn)防火墻功能的過(guò)濾規(guī)則,并將防火墻配置結(jié)果在界面中可視化呈現(xiàn)。⑤事件記錄模塊,該模塊主要為Web 頁(yè)面中的安全審計(jì)、日志管理等功能模塊提供服務(wù),用于完善系統(tǒng)規(guī)則配置,并提供系統(tǒng)安全預(yù)警事件的存儲(chǔ)及日志檢索等服務(wù)。
4. 后臺(tái)內(nèi)核態(tài)程序
內(nèi)核態(tài)程序以傳統(tǒng)防火墻模塊為主,該模塊利用基于Linux 的網(wǎng)絡(luò)級(jí)防火墻技術(shù),運(yùn)用傳統(tǒng)防火墻下的組件工具實(shí)現(xiàn)對(duì)數(shù)據(jù)包的分析與初步過(guò)濾,減輕應(yīng)用防火墻的處理負(fù)荷,提高數(shù)據(jù)包過(guò)濾與分析速率。
三、實(shí)驗(yàn)環(huán)境建構(gòu)與測(cè)試
(一)實(shí)驗(yàn)環(huán)境
在實(shí)驗(yàn)環(huán)境設(shè)計(jì)上,采用VShere 軟件提供的開(kāi)發(fā)環(huán)境,建立一種在輕量級(jí)虛擬機(jī)中部署服務(wù)器的虛擬化解決方案。首先,在實(shí)體服務(wù)器的基礎(chǔ)上建立多臺(tái)虛擬機(jī)服務(wù)器,確保它們之間保持獨(dú)立運(yùn)行。虛擬機(jī)服務(wù)器作為控制器運(yùn)行載體,通過(guò)客戶機(jī)來(lái)實(shí)現(xiàn)對(duì)服務(wù)器的訪問(wèn)與數(shù)據(jù)配置功能,從而提高實(shí)驗(yàn)效率和節(jié)約實(shí)驗(yàn)成本。在本次實(shí)驗(yàn)中,基于Ubuntu 操作系統(tǒng)部署了兩臺(tái)虛擬服務(wù)器, 并將它們的IP 地址依次設(shè)為192.168.1.0 和192.168.1.1。這兩臺(tái)虛擬服務(wù)器的運(yùn)行內(nèi)存分別為1GRAM 和40G ROM。同時(shí),還配置一臺(tái)基于WindowsXP系統(tǒng)的客戶機(jī),并采用Chrome 瀏覽器進(jìn)行測(cè)試??蛻魴C(jī)運(yùn)行內(nèi)存為12G,磁盤(pán)存儲(chǔ)空間為500G。在系統(tǒng)測(cè)試前,將SDN 控制器分別安裝在兩臺(tái)虛擬服務(wù)器中,并基于分布式結(jié)構(gòu)在各服務(wù)器端創(chuàng)建了虛擬網(wǎng)橋、設(shè)置網(wǎng)卡端口,并安裝了應(yīng)用防火墻。同時(shí),在客戶機(jī)中也安裝了SDN 控制器,并將其端口與虛擬服務(wù)器網(wǎng)卡端口連接起來(lái),以進(jìn)行后續(xù)的測(cè)試。
(二)測(cè)試結(jié)果
1. 應(yīng)用防火墻基本操作
基于控制器規(guī)則分別在IP 地址為98.0.8.9 和98.0.8.10 的服務(wù)器端創(chuàng)建防火墻資源,根據(jù)創(chuàng)建資源分配的地址實(shí)現(xiàn)訪問(wèn),在請(qǐng)求輸入框內(nèi)輸入創(chuàng)建防火墻資源的字符串,生成128 比特位長(zhǎng)度、32 位數(shù)字的資料顯示結(jié)果,確認(rèn)接口請(qǐng)求成功后系統(tǒng)自動(dòng)將防火墻資源以字符串形式返回,同時(shí)返回HTTP 請(qǐng)求的響應(yīng)碼。
觀察防火墻測(cè)試結(jié)果可以發(fā)現(xiàn),在更新防火墻配置的情況下,指定防火墻UUID、租戶ID、狀態(tài)字段、防火墻模式字段等均顯示配置更新不成功、提示信息不可更新錯(cuò)誤,這表明防火墻更新功能符合測(cè)試要求;在創(chuàng)建防火墻配置測(cè)試上,系統(tǒng)支持隨機(jī)生成UUID 并創(chuàng)建配置,在創(chuàng)建配置資源時(shí)指定租戶不存在、路由資源不存在等情況下,測(cè)試結(jié)果均顯示配置創(chuàng)建不成功,并提示相關(guān)資源錯(cuò)誤,證明創(chuàng)建防火墻符合測(cè)試要求;在獲取防火墻配置測(cè)試上,以防火墻資源ID 作為接口參數(shù),按防火墻UUID 成功獲取配置資源,當(dāng)獲取配置指定的UUID 不存在時(shí)自動(dòng)提示獲取失敗并顯示“資源ID 不存在”提示,證明防火墻的獲取功能符合測(cè)試要求;在刪除防火墻配置測(cè)試上,同樣利用防火墻資源ID 配置接口參數(shù),在按防火墻UUID 刪除資源時(shí)成功刪除,在指定UUID 不存在情況下顯示刪除失敗并做出提示,證明防火墻配置刪除功能符合測(cè)試要求。
2. 應(yīng)用場(chǎng)景下的測(cè)試結(jié)果
為證明本文建立的分布式應(yīng)用防火墻系統(tǒng)能夠有效克服傳統(tǒng)防火墻系統(tǒng)面臨的各項(xiàng)約束條件,擬基于現(xiàn)有實(shí)驗(yàn)環(huán)境提出以下取證邏輯:①模擬傳統(tǒng)防火墻系統(tǒng)結(jié)構(gòu),設(shè)計(jì)禁止虛擬機(jī)1 訪問(wèn)虛擬機(jī)2 的安全控制策略;②檢驗(yàn)防火墻是否發(fā)揮安全控制功能,當(dāng)確認(rèn)虛擬機(jī)1無(wú)法訪問(wèn)虛擬機(jī)2 時(shí),將虛擬機(jī)遷移至客戶機(jī)處判斷原安全控制策略是否實(shí)效,當(dāng)發(fā)現(xiàn)原防火墻系統(tǒng)中安全控制策略實(shí)效,則說(shuō)明虛擬1 支持訪問(wèn)任意虛擬機(jī);③將虛擬機(jī)遷移至原位,在實(shí)驗(yàn)環(huán)境中部署分布式防火墻結(jié)構(gòu),并沿用安全控制策略實(shí)現(xiàn)分布式防火墻結(jié)構(gòu)下的網(wǎng)絡(luò)安全部署;④重新使虛擬機(jī)1 訪問(wèn)虛擬機(jī)2,判斷兩虛擬機(jī)之間能否建立通信連接。
在執(zhí)行上述取證邏輯構(gòu)成中,當(dāng)基于傳統(tǒng)防火墻的集成式結(jié)構(gòu)體系中完成安全控制策略部署后,使虛擬機(jī)1 恰好位于物理機(jī)上,觀察到虛擬機(jī)1 在訪問(wèn)虛擬機(jī)2時(shí)出現(xiàn)訪問(wèn)失敗現(xiàn)象,由此說(shuō)明原防火墻系統(tǒng)中安全控制策略發(fā)揮實(shí)效;此時(shí),將虛擬機(jī)1 遷移至虛擬機(jī)2 所在的物理主機(jī)上,重新觀察虛擬機(jī)1 能否正常訪問(wèn)虛擬機(jī)2,從中發(fā)現(xiàn)訪問(wèn)成功,說(shuō)明原防火墻結(jié)構(gòu)下的安全控制策略實(shí)效失效。針對(duì)上述現(xiàn)象原因分析可知,在虛擬機(jī)1 遷移后兩臺(tái)虛擬機(jī)之間的數(shù)據(jù)流量傳遞不再通過(guò)防火墻,導(dǎo)致原防火墻失去攔截、過(guò)濾效果,未能及時(shí)檢測(cè)到兩虛擬機(jī)之間建立通信連接,造成系統(tǒng)安全風(fēng)險(xiǎn),究其原因在于傳統(tǒng)防火墻系統(tǒng)將虛擬機(jī)部署的安全區(qū)域與網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)實(shí)行耦合設(shè)計(jì)。而在分布式應(yīng)用防火墻系統(tǒng)中,重新配置禁止兩虛擬機(jī)訪問(wèn)的安全控制策略,將虛擬機(jī)部署的安全區(qū)域與原物理拓?fù)浣Y(jié)構(gòu)實(shí)現(xiàn)解耦,保證在虛擬機(jī)1 遷移至網(wǎng)絡(luò)結(jié)構(gòu)中的任意位置時(shí),始終受應(yīng)用層防火墻安全控制策略的保護(hù),無(wú)法在不經(jīng)過(guò)防火墻的情況下訪問(wèn)虛擬機(jī)2,由此克服傳統(tǒng)防火墻結(jié)構(gòu)在安全防護(hù)功能實(shí)現(xiàn)上所受的限制條件,實(shí)現(xiàn)對(duì)數(shù)據(jù)流量包的深度檢測(cè)與過(guò)濾。
四、結(jié)束語(yǔ)
通過(guò)結(jié)合虛擬化、云計(jì)算環(huán)境下傳統(tǒng)防火墻體系存在等技術(shù)瓶頸,本文提出了一種基于SDN 與DPI 技術(shù)的分布式防火墻系統(tǒng)設(shè)計(jì)方案。該方案面向系統(tǒng)應(yīng)用層規(guī)劃了安全控制策略,并通過(guò)搭建虛擬化實(shí)驗(yàn)環(huán)境對(duì)新型防火墻系統(tǒng)開(kāi)展了性能測(cè)試。測(cè)試結(jié)果表明,在配置安全控制策略情況下,兩個(gè)虛擬機(jī)之間無(wú)法正常訪問(wèn),有效地發(fā)揮了分布式應(yīng)用防火墻的安全防護(hù)功能,支持阻斷HTTP、FTP 等多種通信協(xié)議下的數(shù)據(jù)傳輸,實(shí)現(xiàn)了數(shù)據(jù)流量的有效檢測(cè)及過(guò)濾。然而,現(xiàn)有設(shè)計(jì)方案仍存在一定性能缺陷,在控制器發(fā)生單點(diǎn)故障情況下不支持分布式防火墻組件之間的靈活切換,未來(lái)還圍繞自動(dòng)切換功能、接口調(diào)用模式、人機(jī)界面設(shè)計(jì)等層面采取相應(yīng)技術(shù)優(yōu)化措施,為系統(tǒng)安全防護(hù)與通信傳輸安全保障提供良好示范經(jīng)驗(yàn)。
作者單位:袁超 四川職業(yè)技術(shù)學(xué)院