秦 拯,歐 露?,張大方,Alex X.Liu
(1.湖南大學(xué) 信息科學(xué)與工程學(xué)院,湖南 長沙 410082;2.密歇根州立大學(xué) 計算機科學(xué)與工程系,密歇根 蘭西 48824-1266)
協(xié)作防火墻(Cooperative Firewall,CF)與傳統(tǒng)的防火墻不同,是部署在網(wǎng)絡(luò)域內(nèi)或域間的多個防火墻,基于訪問控制列表 (Access Control List,ACL),以協(xié)同方式進行多層數(shù)據(jù)包過濾.ACL是由一系列的規(guī)則組成,而規(guī)則的數(shù)量越多,CF的吞吐量也隨之顯著降低.因此,通過減少防火墻規(guī)則的數(shù)量來提高CF的性能成了當(dāng)務(wù)之急.
目前,協(xié)作防火墻分為域內(nèi)協(xié)作防火墻和跨域協(xié)作防火墻.在域內(nèi)協(xié)作防火墻方面,研究者針對防火墻異常檢測方法和防火墻配置錯誤檢測等開展了相關(guān)研究工作[1],但是在域內(nèi)協(xié)作防火墻的冗余規(guī)則去除方面未見相關(guān)工作報道.在跨域協(xié)作防火墻方面,研究者構(gòu)建了加密跨域防火墻模型[2],Liu等[3]解決了在VPN中安全執(zhí)行協(xié)作防火墻策略問題.另外,Chen等[4]提出了基于隱私保護的跨域協(xié)作防火墻冗余規(guī)則去除方法,但該方法只去除了協(xié)作防火墻中一方的冗余規(guī)則,未能同時去除兩個防火墻的冗余規(guī)則,難以明顯提高協(xié)作防火墻的吞吐量.
為有效去除冗余規(guī)則和明顯提高吞吐量,本文提出一種可雙向去冗余的協(xié)作防火墻優(yōu)化方法,同時刪除域內(nèi)協(xié)作防火墻的冗余規(guī)則,降低規(guī)則數(shù)量.
將CF簡化為由兩個防火墻組成,相互合作過濾外來的數(shù)據(jù)包,防御外來攻擊,其工作原理如圖1所示.防火墻A和防火墻B組成一個數(shù)據(jù)流管道T,數(shù)據(jù)包P經(jīng)防火墻A處理并被接受后,防火墻B才可對數(shù)據(jù)包P進行處理;只有在防火墻A和B都接受數(shù)據(jù)包P的情況下,數(shù)據(jù)包P才能進入內(nèi)部網(wǎng)絡(luò).倘若兩個防火墻中有一個拒絕了數(shù)據(jù)包P,數(shù)據(jù)包P就不能進入到內(nèi)部網(wǎng)絡(luò).根據(jù)CF工作原理可知,假設(shè)數(shù)據(jù)包P既能匹配防火墻A中accept規(guī)則,又可匹配防火墻B中discard規(guī)則,則防火墻A中accept規(guī)則為冗余規(guī)則.同理,若數(shù)據(jù)包P可同時匹配防火墻A中discard規(guī)則和防火墻B中任一規(guī)則,則此時防火墻B中此類規(guī)則為冗余規(guī)則.
圖1 協(xié)作防火墻模型Fig.1 Cooperative firewall model
當(dāng)且僅當(dāng)防火墻A和防火墻B依次都接收了數(shù)據(jù)包P時,數(shù)據(jù)包才能通過管道T,進入到內(nèi)部網(wǎng)絡(luò),這些允許數(shù)據(jù)包進入內(nèi)部網(wǎng)絡(luò)的規(guī)則為有效規(guī)則.為搜尋冗余規(guī)則,需先篩選有效規(guī)則,篩選出有效規(guī)則之后,可將其余的規(guī)則進行3種組合:組合1,防火墻A中accept規(guī)則和防火墻B中discard規(guī)則;組合2,防火墻A中discard規(guī)則和防火墻B中accept規(guī)則;組合3,防火墻A中discard規(guī)則和防火墻B中discard規(guī)則,如圖2所示.在組合1中,一部分discard規(guī)則與有效規(guī)則重疊,此類discard規(guī)則稱為偽有效規(guī)則,不能刪除.根據(jù)上文對協(xié)作防火墻冗余規(guī)則的定義,此時防火墻A和B中accept規(guī)則為冗余規(guī)則,可一并刪除.此外,防火墻B中除偽有效規(guī)則之外的discard規(guī)則亦為冗余規(guī)則,可刪除.
圖2 協(xié)作防火墻規(guī)則組合情況Fig.2 Rules combinations in cooperative firewall
我們給出協(xié)作防火墻的冗余規(guī)則示例,如圖3所示,其中SIP,DIP,SP,DP,PR和Dec分別表示源IP,目標(biāo)IP,源端口、目標(biāo)端口,協(xié)議類型和相應(yīng)決策.防火墻FWA和FWB中有效規(guī)則分別為r4和r4′.因r5′與r4重疊,所以r5′是偽有效規(guī)則.因此r2,r3,r1′,r2′和r3′均為冗余規(guī)則,可刪除.
圖3 協(xié)作防火墻冗余規(guī)則示例Fig.3 Example cooperative-firewall redundant rules
域內(nèi)協(xié)作防火墻屬于同一網(wǎng)絡(luò)管理域,其去冗余方法分4步進行.
1)提取有效規(guī)則 .首先,將防火墻A和B的規(guī)則分別轉(zhuǎn)化成等價的全匹配防火墻決策圖[5-7](Firewall Decision Diagram,F(xiàn)DD),然后提取全匹配FDD中非重疊的accept規(guī)則,比對兩個防火墻中提取的accept規(guī)則,計算其是否重疊,若重疊,則為協(xié)作防火墻管道T中有效規(guī)則,否則不是.
2)提取偽有效規(guī)則 .比對防火墻B中discard規(guī)則和防火墻A中有效規(guī)則,若這兩類規(guī)則重疊,此類discard規(guī)則為偽有效規(guī)則.
3)尋找備選冗余規(guī)則 .首先,剔除防火墻A和B中有效規(guī)則,剩余的accept規(guī)則均為備選冗余規(guī)則.然后,剔除防火墻B中偽有效規(guī)則,防火墻B中其余的discard規(guī)則亦為備選冗余規(guī)則.分別在兩個防火墻的全匹配FDD[8-10]中,用虛線標(biāo)示備選冗余規(guī)則.
4)雙向去除冗余規(guī)則 .分別在防火墻A和B的全匹配FDD中,用虛線標(biāo)示出備選冗余規(guī)則之后,其余規(guī)則路徑均用實線標(biāo)示,稱為有效路徑.首先提取虛線路徑中的規(guī)則,然后判定各有效路徑中編號最小的規(guī)則是否為虛線路徑中的規(guī)則.若提取的規(guī)則為有效路徑中編號最小的規(guī)則,那么該規(guī)則不能刪除;反之,該規(guī)則可以刪除.
下面給出雙向去冗余方法示例.CF中各防火墻規(guī)則提取過程如圖4所示.
首先,依次比對防火墻A和B中所有的accept規(guī)則.例如,比對nrA3和nrB1,其中[3,4]∩[3,4]≠?,[3,8]∩[0,7]≠?,那么nrA3和nrB1相重疊,則nrA3和nrB1為有效規(guī)則.同理可知,nrA5和 nrB3以及nrA6和nrB4均為有效規(guī)則.
然后,依次將防火墻B中的discard規(guī)則和防火墻A中的有效規(guī)則進行比對.例如,比對nrA3和nrB6,其中[3,4]∩[3,4]≠?,[3,8]∩[8,15]≠?,那么nrA3和nrB6重疊,因此nrB6為偽有效規(guī)則.根據(jù)上文雙向去冗余方法3),可得防火墻A中備選冗余規(guī)則為nrA1,nrA2和nrA4,防火墻B中備選冗余規(guī)則為nrB2,nrB5和 nrB7.在圖5中用虛線標(biāo)示出備選冗余規(guī)則.
最后,判定備選冗余規(guī)則是否為冗余規(guī)則,判定過程如圖5所示.rA5為有效路徑中編號最小規(guī)則,因此防火墻A的冗余規(guī)則為rA1,刪除之.同理,防火墻B的冗余規(guī)則為rB1,rB4和rB6,可刪除.
圖4 防火墻規(guī)則的提取過程Fig.4 The detection of rules in firewall
在本實驗中,實驗對象是5組防火墻,分別為Econ,Host,Wan,Ath和Comp.每個防火墻均檢測規(guī)則的5個元素為:源IP地址,目的IP地址,源端口,目的端口和協(xié)議類型,并從協(xié)作防火墻規(guī)則冗余率和吞吐量兩個方面來評估高吞吐量協(xié)作防火墻雙向去冗余方法.
圖5 協(xié)作防火墻的雙向去冗余過程Fig.5 Cooperative firewall bidirectional redundancy deletion
2.1.1 統(tǒng)計協(xié)作防火墻規(guī)則冗余率
我們在使用雙向去冗余方法優(yōu)化協(xié)作防火墻之前,統(tǒng)計各個防火墻的規(guī)則總數(shù),標(biāo)記為N.然后再統(tǒng)計優(yōu)化后的協(xié)作防火墻規(guī)則總數(shù),標(biāo)記為n.那么可知協(xié)作防火墻的冗余規(guī)則數(shù)量為N-n,其冗余率可定義為在實驗中,為了方便辨認統(tǒng)計數(shù)據(jù),將入口防火墻A中冗余規(guī)則總數(shù)標(biāo)記為a,出口防火墻B中冗余規(guī)則總數(shù)標(biāo)記為b,入口防火墻A的規(guī)則總數(shù)標(biāo)記為|FWA|,出口防火墻B的規(guī)則總數(shù)標(biāo)記為|FWB|,入口防火墻A的冗余率標(biāo)記為出口防火墻B的冗余率標(biāo)記為協(xié)作防火墻整體的冗余標(biāo)記為θ在本實驗中,將本文方法的實驗結(jié)果與現(xiàn)有協(xié)作防火墻去冗余方法的實驗結(jié)果進行對比.
2.1.2 測量協(xié)作防火墻吞吐量
吞吐量是指防火墻在不丟包情況下能轉(zhuǎn)發(fā)的最大網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量.防火墻作為內(nèi)外網(wǎng)之間的唯一數(shù)據(jù)通道,吞吐量的大小將直接影響到網(wǎng)絡(luò)的性能.因此,設(shè)計一種有效可靠的協(xié)作防火墻優(yōu)化方法是非常必要的.
為測量防火墻吞吐量,利用SmartBits6000C(SMB6000C)和 H3CS2126 24口交換機(H3C2126)來測試協(xié)作防火墻的吞吐量,測試設(shè)備、交換設(shè)備和控制臺的連接拓撲如圖6所示.為了能精確測量優(yōu)化后的協(xié)作防火墻吞吐量,我們采用二分法,其主要方法為:SMB6000C在每一對端口上,以全線速度(或測試設(shè)置中規(guī)定的速率)在測試設(shè)置規(guī)定的時間段內(nèi)生成傳輸流.如果任何端口上丟失包的話,SMB6000C就將負載減少50%并重新開始測試.然后,SMB6000C用二分搜索法搜索沒有包丟失發(fā)生時的最大速率.這個速率就是被測試設(shè)備的吞吐量,它是按測試設(shè)置中規(guī)定的每一種包長度測試得出的.
圖6 實驗拓撲圖Fig.6 Experimental topology
先測量運用雙向去冗余方法優(yōu)化前的協(xié)作防火墻吞吐量,再測量運用本文方法優(yōu)化后的協(xié)作防火墻吞吐量,然后根據(jù)測量數(shù)據(jù),計算統(tǒng)計出協(xié)作防火墻的吞吐量提高的百分比.
通過大量仿真對比實驗,驗證了雙向去冗余方法能更有效可靠地去除協(xié)作防火墻中冗余規(guī)則,并提高了協(xié)作防火墻的吞吐量.表1為現(xiàn)有協(xié)作防火墻去冗余方法的實驗結(jié)果.由于現(xiàn)有協(xié)作防火墻去冗余方法只去除了出口防火墻B中的冗余規(guī)則,所以每個防火墻組的入口防火墻A的冗余率均為0,平均總?cè)哂嗦蕿?.6%.表2為雙向去冗余的實驗結(jié)果.由表2可得,域內(nèi)協(xié)作防火墻雙向去冗余方法在Econ,Host,Ath和Comp 4組協(xié)作防火墻中,均取得了明顯成效.在5組域內(nèi)協(xié)作防火墻檢測結(jié)果中,平均FWA冗余率達到了21.3%,平均總?cè)哂嗦蔬_到了22.7%.
表1和表2的實驗結(jié)果表明,在協(xié)作防火墻中冗余規(guī)則是普遍存在的,需要設(shè)計一種有效可靠的方法來優(yōu)化協(xié)作防火墻.同時,對比2種方法中平均總?cè)哂嗦剩p向去冗余方法的平均總?cè)哂嗦适乾F(xiàn)有協(xié)作防火墻去冗余方法的平均冗余率的兩倍多.因此,在減少協(xié)作防火墻整體規(guī)則數(shù)量方面,本文提出的雙向去冗余方法明顯優(yōu)于現(xiàn)有方法.
協(xié)作防火墻吞吐量的實驗計算結(jié)果如圖7所示.運用雙向去冗余方法去除協(xié)作防火墻的冗余規(guī)則之后,在同等條件下,每組防火墻的吞吐量均有所提高.5組協(xié)作防火墻平均吞吐量提高達到了8.2%,其中Host防火墻組的吞吐量提高20.1%.這說明域內(nèi)防火墻雙向去冗余方法能有效提高協(xié)作防火墻的吞吐量.
表1 現(xiàn)有協(xié)作防火墻去冗余方法的冗余率實驗結(jié)果Tab.1 Redundant ratios for current redundancy deletion of cooperative firewall
表2 域內(nèi)協(xié)作防火墻中的冗余率實驗結(jié)果Tab.2 Redundant ratios for domain cooperative firewall
圖7 域內(nèi)協(xié)作防火墻的吞吐量Fig.7 Throughput on domain cooperative firewall
本文提出一種高吞吐量協(xié)作防火墻的雙向去冗余方法,在提取有效規(guī)則的基礎(chǔ)上,能同時去除兩個防火墻中的冗余規(guī)則,明顯提高協(xié)作防火墻的吞吐量.
隨著網(wǎng)絡(luò)的發(fā)展,協(xié)作防火墻的研究將會是一項長期的工作.在今后的工作中,我們將更深入研究域內(nèi)和跨域協(xié)作防火墻技術(shù)理論,重點是如何提高協(xié)作防火墻性能,以推動協(xié)作防火墻技術(shù)的實用化和產(chǎn)業(yè)化.
[1] SHAER-AL E,HAMED H.Discovery of policy anomalies in distributed firewalls[C]//Pro of IEEE INFOCOM2004.Hong Kong:IEEE,2004:2605-2616.
[2] CHENG J,YANG H,WONG S H,etal.Design and implementation of cross-domain cooperative firewall[C]//Pro of the 2007IEEE International Conference on Network Protocols.Beijing:IEEE,2007:284-293.
[3] LIU A X,CHEN Fei.Collaborative enforcement of firewall policies in virtual private networks[C]//Pro of 27th Annual ACM Symposium on Principles of Distributed Computing.Toronto:ACM,2008:95-104.
[4] CHEN Fei,BEZAWADA B,LIU A X.A cross-domain privacy-preserving protocol for cooperative firewall optimization[C]//IEEE INFOCOM 2011.Shanghai:IEEE,2011:2903-2911.
[5] YUAN L,CHEN H,MAI J,etal.Fireman:a toolkit for firewall modeling and analysis[C]//Pro of IEEE Symposium on Security and Privacy 2006.Berkeley:IEEE,2006:199-213.
[6] LIU A X,MEINERS C R,YUN ZHOU.All-match based complete redundancy removal for packet classifiers in TCAMs[C]//IEEE INFOCOM2008.Phoenix:IEEE,2008:574-582.
[7] LIU A X,GOUDA M G.Complete redundancy removal for packet classifiers in TCAMs[J].IEEE Transactions on Parallel and Distributed Systems,2010,21(4):424-437.
[8] LIU A X,CHAD R M,ZHOU Yun.All-match based complete redundancy removal for packet classifiers in TCAMs[C]//Pro of the 27th Annual IEEE Conference on Computer Communications (INFOCOM).Phoenix,Arizona:IEEE,2008:574-582.
[9] LIU A X,GOUDA M G.Diverse firewall design[C]//Pro of the IEEE International Conference on Dependable Systems and Networks.Florence,Italy:IEEE,2004:595-604.
[10] GOUDA M G,LIU A X.Firewall Design:consistency,completeness and compactness[C]//Pro the 24th IEEE International Conference on Distributed Computing Systems (ICDCS).Tokyo,Japan:IEEE,2004:320-327.