摘要:該文對(duì)防火墻規(guī)則集中的可能存在的沖突進(jìn)行了討論,對(duì)不同類型的規(guī)則沖突作了分類定義,在此基礎(chǔ)上編寫設(shè)計(jì)了規(guī)則沖突檢測(cè)算法程序;對(duì)防火墻規(guī)則間的泛化沖突,交互沖突的消解技術(shù)作了一定的分析討論,并給出了具體解決方案。
關(guān)鍵詞:防火墻;網(wǎng)絡(luò)安全;規(guī)則;沖突檢測(cè);沖突消解
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)05-0913-04
Analysis and Discussion on the Conflict Detection and Resolution Technique of Firewall Rules
GONG Ding
Abstract: Discussed the conflict among the rules of firewall, made the definition of different types of conflict of rules,designed conflict detection algorithm of rules.Discussed resolution technique of generalization conflict, interactive conflict of rules ,and gived specific solutions.
Key words: firewall; network security;rule; conflict detection; conflict resolution
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,數(shù)據(jù)信息安全日益引起人們的重視,防火墻是連接內(nèi)外網(wǎng)絡(luò),保證數(shù)據(jù)信息安全的重要設(shè)備[1]。網(wǎng)管在對(duì)防火墻規(guī)則策略進(jìn)行配置時(shí),需要注意規(guī)則間的關(guān)系與順序,以確保配置規(guī)則集安全語義的正確性[2]。隨著局域網(wǎng)規(guī)模的擴(kuò)大,防火墻配置規(guī)則也越來越多,增大了規(guī)則間沖突的可能性,網(wǎng)管對(duì)其規(guī)則集進(jìn)行再編輯與管理的難度也隨之增加[3]。檢測(cè)防火墻規(guī)則集中存在的沖突及解決規(guī)則沖突問題成為當(dāng)前研究的一個(gè)重要課題,該文對(duì)防火墻規(guī)則間沖突進(jìn)行分析討論,編寫了沖突檢測(cè)算法程序,并對(duì)沖突消解技術(shù)做了一定的探討,在網(wǎng)絡(luò)安全管理方面有著一定的應(yīng)用與參考價(jià)值。
1 防火墻配置規(guī)則集的沖突檢測(cè)
在對(duì)防火墻的規(guī)則集進(jìn)行配置的過程中,隨著規(guī)則數(shù)目的增加,會(huì)導(dǎo)致規(guī)則間出現(xiàn)沖突,這樣會(huì)影響網(wǎng)絡(luò)的安全語義[4]。該文首先分類定義了規(guī)則間可能存在的沖突類型,然后據(jù)此編寫了沖突檢測(cè)算法的相關(guān)程序,以及時(shí)發(fā)現(xiàn)規(guī)則集的沖突問題。
1.1規(guī)則沖突的類型判定
防火墻配置中有些配置規(guī)則間的沖突會(huì)導(dǎo)致嚴(yán)重的錯(cuò)誤,這些規(guī)則必須作修改,排除錯(cuò)誤;有些規(guī)則間的沖突不是嚴(yán)重的錯(cuò)誤,只需警告引起注意就可以了[5],對(duì)防火墻規(guī)則間存在的沖突進(jìn)行的歸類定義如下所示:
定義1:若前面規(guī)則的各個(gè)域與這條規(guī)則相應(yīng)的域都是包含關(guān)系,且這兩條規(guī)則的動(dòng)作域是不同的,那么就該規(guī)則被前條規(guī)則覆蓋,配置規(guī)則之間發(fā)生了覆蓋沖突。
規(guī)則間的覆蓋沖突會(huì)導(dǎo)致一些規(guī)則起不到作用,影響防火墻策略的安全語義,這是比較嚴(yán)重的錯(cuò)誤。這樣可能會(huì)使防火墻對(duì)合法的網(wǎng)絡(luò)數(shù)據(jù)包的進(jìn)出執(zhí)行不當(dāng)?shù)牟僮?,如果發(fā)現(xiàn)規(guī)則間存在覆蓋沖突,必須進(jìn)行修正。
定義2:若前一條規(guī)則的部分域能夠匹配后條規(guī)則相對(duì)應(yīng)的域,后條配置規(guī)則的部分域也可以匹配前一條規(guī)則相對(duì)應(yīng)的域,且這兩條規(guī)則動(dòng)作域的值不同,那么規(guī)則間發(fā)生了交互沖突。
交互沖突中也會(huì)存在一部分因?yàn)椴僮鲃?dòng)作相反,使得該規(guī)則不能被執(zhí)行的狀況,可將這兩條配置規(guī)則換下順序,那么這些數(shù)據(jù)包又是被允許通過的,由此看出交互沖突存在部分配置規(guī)則安全語義的二義性,但由于出現(xiàn)錯(cuò)誤的概率不多,該文將這種沖突的級(jí)別設(shè)為警告,以引起管理員的注意。
定義3:若前面規(guī)則的各個(gè)域與后條規(guī)則相應(yīng)的域都是包含關(guān)系,并且規(guī)則的動(dòng)作域的值相同,那么后條規(guī)則是冗余的,規(guī)則間發(fā)生了冗余沖突。
后條配置規(guī)則對(duì)防火墻系統(tǒng)并不產(chǎn)生作用,添加與刪除該規(guī)則都不會(huì)對(duì)配置規(guī)則集的安全語義產(chǎn)生影響。但是系統(tǒng)中若這樣的規(guī)則大量存在,會(huì)使得防火墻的過濾效率顯著降低。因此管理員需及時(shí)地發(fā)現(xiàn)冗余規(guī)則,將這些錯(cuò)誤從規(guī)則集中刪除,以提高防火墻系統(tǒng)的性能。
定義4:若前一條規(guī)則可以匹配后一條規(guī)則的所有數(shù)據(jù)包,但后條規(guī)則不能匹配前一條所有的數(shù)據(jù)包,并且此兩條規(guī)則的執(zhí)行域的值不相同,該文將前一條配置規(guī)則稱為后條配置規(guī)則的泛化,這兩條規(guī)則間發(fā)生了泛化沖突。
規(guī)則間的泛化沖突并不能稱作出錯(cuò),但如果這種沖突規(guī)則次序改變,會(huì)引起影響網(wǎng)絡(luò)策略的安全語義。因此當(dāng)網(wǎng)管添加一條配置規(guī)則到防火墻系統(tǒng)中時(shí),需要對(duì)是否會(huì)引起泛化沖突進(jìn)行提示。
1.2 規(guī)則沖突檢測(cè)的算法
檢測(cè)防火墻規(guī)則間是否存在沖突的核心思想是判斷兩條規(guī)則在策略樹中的路徑是否一致[6]。若路徑一致,那么這兩條規(guī)則很可能存在沖突,否則它們是完全不相關(guān)的,不存在沖突。檢測(cè)新插入的規(guī)則和之前插入的規(guī)則是否存在沖突,需要添加一些參數(shù)來跟蹤狀態(tài)的變化[7]。該文編寫的防火墻規(guī)則間的沖突檢測(cè)算法程序如圖1所示。
Function DiscoverAbnormalRules (rule , field , node , abnormal_condition)
for each node in branch.rules_list do
if rule.field.value = branch.value then
valuefound = TRUE /*規(guī)則集中有規(guī)則域值相同*/
if abnormal_condition = NOABNORMAL then
DiscoverAbnormalRules (rule , field.next , branch.node , REDUNDANT)
else
discoverAbnormalRules (rule , field.next , branch.node , abnormal_condition)
end if
else if rule.field.value branch.value then
if abnormal_condition = GENERALIZATION then
discoverAbnormalRules (rule , field.next , branch.node,CORRELATION)
else if abnormal_stat = REDUNDANT then
DiscoverAbnormalRules (rule,field.next,branch.node,SHADOW)
End if
Else if rule.field.value branch.value then
If abnormal_condition = SHADOW then
Abnormal_condition = CORRELATION
DiscoverAbnormalRules ( rule , field.next , branch.node , CORRELATION )
Else if abnormal_condition = REDUNDANT then
Abnormal_condition = GENERALIZATION
DiscoverAbnormalRules ( rule,field.next,braneh.node,GENERALIZATION)
End if
else
DiscoverAbnormalRules (rule , field.next , branch.node,DISJOINT)
End if
End for
If field = ACTION then /*規(guī)則域值等于動(dòng)作域時(shí)結(jié)束遞歸調(diào)用*/
New_branch = newBranch ( rule , rule.field , rule.field.value )
for each node in branch.rules_list do
If rule.field.value = branch.value then
branch.rules_list.add(new_branch)
end if
end for
call Decide Abnormal( rule, field , node , abnormal_condition)
end if
end Function
圖1 算法1.1 規(guī)則沖突檢測(cè)算法
本文對(duì)規(guī)則沖突檢測(cè)算法的解釋如下:在設(shè)計(jì)的規(guī)則沖突檢測(cè)函數(shù)中,依次比較新規(guī)則中的各個(gè)域值順次與已有的策略樹的各分支域值,遞歸調(diào)用該函數(shù),遍歷該規(guī)則策略樹的所有分支,若程序執(zhí)行到該規(guī)則的動(dòng)作域時(shí),那么就調(diào)用沖突判定函數(shù)來以判定此規(guī)則與現(xiàn)有規(guī)則是否存在沖突及沖突的類型。
1.3實(shí)驗(yàn)結(jié)果及分析
在原始的規(guī)則集中存在著各種沖突關(guān)系,經(jīng)控制臺(tái)的沖突檢測(cè)模塊對(duì)其進(jìn)行檢測(cè)發(fā)現(xiàn),規(guī)則間的沖突關(guān)系如圖2所示。
圖2 沖突檢測(cè)結(jié)果
可根據(jù)規(guī)則沖突檢測(cè)結(jié)果對(duì)防火墻的規(guī)則集進(jìn)行編輯處理,以保證防火墻安全語義的正確性,方便網(wǎng)絡(luò)管理員對(duì)防火墻的管理。
2 對(duì)防火墻沖突消解技術(shù)的討論
在對(duì)防火墻的實(shí)際管理與應(yīng)用中,其規(guī)則間是存在各種類型的關(guān)系的,在對(duì)配置規(guī)則進(jìn)行優(yōu)化排序時(shí),很有可能會(huì)影響規(guī)則集的語義的正確性,因此需要盡可能消除規(guī)則間的相互影響[8]。根據(jù)前面的討論,規(guī)則間主要有四種沖突,其中的冗余沖突與覆蓋沖突對(duì)配置規(guī)則的安全語義有嚴(yán)重的影響,管理規(guī)則集時(shí)需對(duì)該類沖突的規(guī)則作刪除處理;而泛化沖突與交互沖突不是嚴(yán)重的錯(cuò)誤,但使得規(guī)則間存在了一定的聯(lián)系,這樣在修改規(guī)則集時(shí),需要使得這些規(guī)則的順序相對(duì)不變。該文對(duì)規(guī)則間的交互沖突和泛化沖突的消除化解方法做了一定的探討如下:
2.1關(guān)于消解規(guī)則間泛化沖突的分析討論
本文先舉一個(gè)防火墻配置規(guī)則集中發(fā)生泛化沖突的較簡(jiǎn)單的實(shí)例,例如防火墻規(guī)則集中的兩個(gè)規(guī)則(規(guī)則1,規(guī)則2)各域的值如表1所示:
表1 泛化沖突的防火墻規(guī)則集1
[order\&protocol\&src_ip\&src_port\&dst_ip\&dst_port\&action\&1\&P1\&s1,s2\&sp1\&d1,d2\&dd1\&DROP\&2\&P1\&s1,s2,s3\&sp1\&d1,d2\&dd1\&ACCEPT\&]
這兩條發(fā)生泛化沖突的規(guī)則,可以通過對(duì)規(guī)則2的重寫,使得規(guī)則2的源IP域與規(guī)則1相應(yīng)域無關(guān),重寫表2所示:
表2 預(yù)處理后的防火墻規(guī)則集1
[order\&protocol\&Src_ip\&src_port\&dst_ip\&dst_port\&action\&1\&P1\&s1,s2\&sp1\&d1,d2\&dd1\&DROP\&2\&P1\&s1,s2\&sp1\&d1,d2\&dd1\&ACCEPT\&3\&P1\&s3\&sp1\&d1,d2\&dd1\&ACCEPT\&]
規(guī)則1與規(guī)則2五元組相同做消除處理以解決泛化沖突,最終結(jié)果表3所示:
表3 消除處理后的防火墻規(guī)則集1
[Order\&protocol\&src_ip\&src_port\&dst_ip\&dst_port\&action\&1\&P1\&s1,s2\&sp1\&d1,d2\&dd1\&DROP\&2\&P1\&s3\&sp1\&d1,d2\&dd1\&ACCEPT\&]
這種方法將兩個(gè)規(guī)則的源IP域的集合作減法,以消除對(duì)應(yīng)域間的包含關(guān)系,從而消解規(guī)則間的泛化沖突。下邊的表4是一個(gè)較復(fù)雜的例子:
表4 泛化沖突的防火墻規(guī)則集2
[order\&protocol\&src_ip\&src_port\&dst_ip\&dst_port\&action\&1\&P1\&s1,s2\&sp1\&d1,d2\&dd1\&DROP\&2\&P1\&s1,s2,s3\&sp1\&d1,d2,d3\&dd1\&ACCEPT\&]
該例中規(guī)則2的源IP域和目的IP域分別是規(guī)則1相應(yīng)域的超集。將源IP和目的IP域各分為子集與非子集兩個(gè)部分進(jìn)行處理以消除泛化沖突,重寫如表5所示:
表5 消除處理的防火墻規(guī)則集2
[order\&protocol\&src_ip\&src_port\&dst_ip\&dst_port\&action\&1\&P1\&s1,s2\&sp1\&d1,d2\&dd1\&DROP\&2\&P1\&s1,s2\&sp1\&d3\&dd1\&ACCEPT\&3\&P1\&s3\&sp1\&d1,d2\&dd1\&ACCEPT\&4\&P1\&s3\&sp1\&d3\&dd1\&ACCEPT\&]
產(chǎn)生泛化沖突的原因是相應(yīng)域之間有包含關(guān)系,所以消除泛化沖突的主要方法是對(duì)這兩個(gè)規(guī)則相應(yīng)域的集合作分解,以消除域間的包含關(guān)系。上述的方法,可以對(duì)規(guī)則間泛化沖突進(jìn)行消解,但這樣也可會(huì)導(dǎo)致規(guī)則集空間長(zhǎng)度的增加,從而降低了規(guī)則匹配效率,當(dāng)發(fā)生這種沖突時(shí),需要提示管理員根據(jù)具體情況作出合理的選擇。
2.2關(guān)于消解規(guī)則間交互沖突的分析討論
規(guī)則間產(chǎn)生泛化沖突的條件是兩個(gè)規(guī)則的一些對(duì)應(yīng)域間有交集的關(guān)系,如表6所示:
表6 交互沖突的防火墻規(guī)則集3
[order\&protocol\&src_ip\&src_port\&Dst_ip\&dst_port\&action\&1\&P1\&s1,s2,s3\&sp1\&d3\&dd1\&ACCEPT\&2\&P1\&s3\&sp1\&d1,d2,d3\&dd1\&DROP\&]
此兩條規(guī)則間存在交集,且地址為s3的源地址,地址為d3的目標(biāo)地址在第一條規(guī)則中是允許通過,而第二條規(guī)則是禁止的,若規(guī)則順序改變將影響策略語義?,F(xiàn)將這兩個(gè)規(guī)則相應(yīng)域進(jìn)行再劃分,重寫表7所示:
表7 預(yù)處理的防火墻規(guī)則集3
[order\&protocol\&src_ip\&src_port\&dst_ip\&dst_port\&action\&1\&P1\&s1,s2\&sp1\&d3\&dd1\&ACCEPT\&2\&P1\&s3\&sp1\&d3\&dd1\&ACCEPT\&3\&P1\&s3\&sp1\&d1,d2\&dd1\&DROP\&4\&P1\&s3\&sp1\&d3\&dd1\&DROP\&]
從表7可以看出,規(guī)則2可覆蓋規(guī)則4;為了消解規(guī)則間的沖突,使得規(guī)則間的順序?qū)Σ呗哉Z義不造成影響,對(duì)規(guī)則4作刪除處理,最終結(jié)果如表8所示:
表8 消除處理后防火墻規(guī)則集3
[order\&protocol\&src_ip\&src_port\&dst_ip\&dst_port\&action\&1\&P1\&s1,s2\&sp1\&d3\&dd1\&ACCEPT\&2\&P1\&s3\&sp1\&d3\&dd1\&ACCEPT\&3\&P1\&s3\&sp1\&d1,d2\&dd1\&DROP\&]
消除交互沖突可能會(huì)增加防火墻規(guī)則數(shù),影響規(guī)則匹配效率,但若能夠解除規(guī)則之間的沖突,那么規(guī)則的相對(duì)次序改變就不會(huì)影響安全語義,為更好地優(yōu)化防火墻策略做必要的準(zhǔn)備。
3 小結(jié)
本文分析研究了防火墻配置規(guī)則間可能存在的沖突,并歸類定義了各種不同的沖突類型,編寫了防火墻的沖突檢測(cè)程序,并用實(shí)驗(yàn)驗(yàn)證了算法的有效性;為了維持防火墻規(guī)則集語義的正確性,該文還對(duì)防火墻規(guī)則間交互沖突,泛化沖突的消解技術(shù)進(jìn)行了實(shí)例討論,為設(shè)計(jì)編寫智能消解規(guī)則間沖突的算法程序作了一定的準(zhǔn)備。
參考文獻(xiàn):
[1] D.Wang, R.Hao, D.Lee. Fault detection in rule-based software systems[J].Information and Software Technology, 2010, 45(12): 865-871. (下轉(zhuǎn)第931頁)
(上接第916頁)
[2] 李鑫,季振洲,劉韋辰,等.防火墻過濾規(guī)則集沖突檢測(cè)算法[J].北京郵電大學(xué)學(xué)報(bào), 2011,29(4): 90-93.
[3] L.Lu, R.Safavi-Naini, J.Horton, W.Susilo. Comparing and debugging firewall rule tables[J]. IET Information Security, vol1, no4, 2009: 145-146.
[4] Myung Kun, Yoon Shigang, Chen Zhan Zhang. Reducing the Size of Rule Set in a Firewall[C]. IEEE International Conference on Communications, 2012: 1274-1279.
[5] D.Wang, R.Hao, D.Lee. Fault detection in rule-based software systems[J].Information and Software Technology, 2012, 45(12): 865-871.
[6] 王衛(wèi)平,陳文惠,朱衛(wèi)未,等. 防火墻規(guī)則配置錯(cuò)誤快速檢測(cè)算法[J].計(jì)算機(jī)工程, 2010,33(11): 132-134.
[7] 莊冠夏.防火墻規(guī)則沖突檢測(cè)和次序優(yōu)化的研究與實(shí)現(xiàn)[D].上海: 華東師范大學(xué),2011.
[8] 劉更樓,丁常福,姜建國(guó). 基于狀態(tài)檢測(cè)的防火墻系統(tǒng)研究[J]. 航空計(jì)算技術(shù), 2009,34(1): 122-125.