周 佳,鄧永暉,賈 悠,馮中華
(中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
隨著計算機(jī)網(wǎng)絡(luò)規(guī)模的日益龐大及網(wǎng)絡(luò)威脅的日趨嚴(yán)重,企業(yè)在安全方面的建設(shè)的逐步健全,部署的防火墻、網(wǎng)絡(luò)訪問控制設(shè)備、網(wǎng)站防護(hù)設(shè)備等日益增多,使網(wǎng)絡(luò)環(huán)境規(guī)模和復(fù)雜度不斷增加。對于安全管理員而言,通常需要管理多個安全區(qū)域,進(jìn)行多種安全設(shè)備的策略配置。然而,在大規(guī)模網(wǎng)絡(luò)中,安全設(shè)備數(shù)量種類眾多,各類安全策略配置管理方法各不相同,隨著安全策略控制粒度的日趨細(xì)化嚴(yán)格,當(dāng)業(yè)務(wù)場景需求發(fā)生變化時,需要配置在這些設(shè)備之上的網(wǎng)絡(luò)安全策略規(guī)則也相應(yīng)的變得更加繁冗和復(fù)雜。這對系統(tǒng)配置運(yùn)維工作的開展帶來了極大的壓力,導(dǎo)致大規(guī)模設(shè)備集中統(tǒng)一、快速配置成為一種新的配置運(yùn)維需求。此外,人工智能、機(jī)器學(xué)習(xí)等先進(jìn)信息技術(shù)的發(fā)展演化,促使網(wǎng)絡(luò)信息體系向著網(wǎng)絡(luò)化、智能化趨勢發(fā)展,這也驅(qū)使網(wǎng)絡(luò)安全配置管理向著智能化方向發(fā)展。因此,構(gòu)建一種應(yīng)對網(wǎng)絡(luò)安全策略快速響應(yīng)、統(tǒng)一配置的安全智能配置機(jī)制成為當(dāng)前最為迫切的需求。
網(wǎng)絡(luò)安全配置策略的自動化生成與驗證的技術(shù)研究從以下幾個方面進(jìn)行展開:
安全配置策略形式化描述:為信息系統(tǒng)設(shè)備(包括安全設(shè)備、網(wǎng)絡(luò)設(shè)備等)的配置策略提供統(tǒng)一形式化的描述方式。
安全配置意圖與策略映射模型構(gòu)建:通過構(gòu)建安全配置意圖與策略映射模型,建立安全配置意圖與策略之間的映射關(guān)系,從而為安全配置策略的自動生成提供支撐。
安全配置意圖與策略驗證:根據(jù)安全配置意圖與策略模型,對安全配置意圖與策略的映射關(guān)系進(jìn)行驗證,實現(xiàn)對安全配置意圖與策略映射模型進(jìn)一步的完善改進(jìn)。
安全配置策略自動化轉(zhuǎn)譯:根據(jù)安全配置意圖與策略映射模型,結(jié)合安全配置知識庫數(shù)據(jù),依據(jù)安全配置意圖描述,將安全配置意圖自動化轉(zhuǎn)譯為安全配置策略,避免人工配置時人為錯誤的發(fā)生。
安全配置策略沖突檢測:根據(jù)自動化轉(zhuǎn)譯的安全配置策略,檢測其是否具有沖突性,完成對安全配置策略的優(yōu)化完善。
安全配置策略輸出:根據(jù)安全配置意圖與策略模型,結(jié)合網(wǎng)絡(luò)防御意圖要求,生成系統(tǒng)設(shè)備可操作執(zhí)行的安全配置策略。
安全配置策略自動生成與驗證技術(shù)的初步預(yù)期效果如圖2 所示,安全配置策略自動生成與驗證技術(shù)主要實現(xiàn)對安全配置意圖通用描述文檔進(jìn)行機(jī)器解讀,生成相應(yīng)設(shè)備可實施、執(zhí)行的安全配置策略。整個過程中,通過構(gòu)建網(wǎng)絡(luò)安全配置知識圖譜,建立安全配置意圖和安全策略之間的模型映射關(guān)系,自動生成相應(yīng)設(shè)備的安全策略,并通過策略沖突檢測技術(shù)等,借助人工審核的力量,進(jìn)行安全策略的完善優(yōu)化。

圖1 安全配置策略自動生成與驗證技術(shù)研究流程

圖2 安全配置策略自動生成技術(shù)預(yù)期效果
安全配置策略,是指在安全區(qū)域里用于指導(dǎo)和決定如何管理、分配和控制安全相關(guān)活動的一套規(guī)則。例如,安全策略規(guī)定了當(dāng)發(fā)生安全違規(guī)事件的時候,應(yīng)當(dāng)由誰來執(zhí)行什么樣的措施進(jìn)行響應(yīng),以及在什么時候、由誰負(fù)責(zé)記錄和審計。基于策略的管理,其主旨是通過策略機(jī)制將系統(tǒng)的管理和執(zhí)行分開,從而提高管理系統(tǒng)的可伸縮性和靈活性,并使管理員把工作的著眼點(diǎn)放在業(yè)務(wù)需求而不是設(shè)備配置的細(xì)枝末節(jié)上,從而提高管理的效率。
安全配置策略進(jìn)行形式化、規(guī)范性描述是實現(xiàn)安全配置策略自動生成和驗證的核心。現(xiàn)今策略管理還沒有一個統(tǒng)一的標(biāo)準(zhǔn),RFC 只推出了草案,還沒有形成正式的文檔,沒有制定策略的統(tǒng)一格式,也沒有規(guī)定用哪種語言描述當(dāng)前的策略在安全策略統(tǒng)一描述方面具有代表性的標(biāo)準(zhǔn)和方法。現(xiàn)今,對于策略框架定義語言(Policy Framework Definition Language,PFDL)[1],其定義策略的形式是“if condition,then action”。條件部分描述設(shè)備會遇到的特定情況,可以是一個用戶或一個組,時間日期,應(yīng)用類型,或者網(wǎng)絡(luò)地址等。行動部分描述設(shè)備在具體情況下采取的行動。許多有關(guān)QoS 的策略都是用PFDL 定義的。對于策略定義語言(Policy Description Language,PDL)[2],其定義策略的形式是“event cause action if condition”。這些策略也是主要用于網(wǎng)絡(luò)管理方面。這些策略被編譯為java 類,并存放在目錄服務(wù)器中。PDL 不支持授權(quán)策略和復(fù)合策略。對于Ponder[3],它是一種描述性的、強(qiáng)類型的、面向?qū)ο蟮恼Z言,定義了4 種基本策略類型,包括授權(quán)策略、委托策略、義務(wù)策略、抑制策略,以及3 種復(fù)合策略,包括角色、角色間的關(guān)系和管理結(jié)構(gòu)。Ponder 可以用于定義基于角色訪問控制的安全策略,也可以用于定義通用的管理策略。
本研究采用比較成熟的基于Ponder 的安全配置策略形式化描述方式,該策略的語法如下:

Description:描述了策略的作用、執(zhí)行過程等信息。
Type:定義了策略種類、執(zhí)行方式等。
Action:為處理事件所要執(zhí)行的動作。
Target:為策略執(zhí)行的對象,包括對象的ID、制造商、型號等信息。
Model:為策略對象執(zhí)行action 的模板,包括執(zhí)行該action 所必需的參數(shù)或配置字段信息。
基于常識和領(lǐng)域知識融合的可證明知識推理,需要利用結(jié)構(gòu)化的網(wǎng)絡(luò)安全配置知識數(shù)據(jù)和非結(jié)構(gòu)化的開源網(wǎng)絡(luò)安全情報數(shù)據(jù),通過使用結(jié)構(gòu)化的網(wǎng)絡(luò)安全配置知識作為先驗知識的一部分,并提取非結(jié)構(gòu)化開源數(shù)據(jù)相關(guān)知識描述,能夠提高先驗知識的豐富程度。這兩種數(shù)據(jù)各有優(yōu)劣,融合使用可以互相補(bǔ)充:結(jié)構(gòu)化知識 (Structured Knowledge Source)包含大量的三元組信息(概念及其之間的關(guān)系),利于推理,但是存在覆蓋度低的問題;非結(jié)構(gòu)化知識 (Unstructured Knowledge Source),即純文本,包含大量冗余的、覆蓋范圍廣的信息,可以補(bǔ)充結(jié)構(gòu)化知識。由于兩種數(shù)據(jù)結(jié)構(gòu)迥然不同,如何考慮將其轉(zhuǎn)換為相同的數(shù)據(jù)形式并處理成能夠被預(yù)訓(xùn)練模型接受的序列數(shù)據(jù)是最需要考慮的問題。
針對非結(jié)構(gòu)化的開源網(wǎng)絡(luò)安全情報知識,由于開源數(shù)據(jù)都是文章形式的描述問題,需要實現(xiàn)檢索出真正對于問題有幫助的句子信息。首先將開源數(shù)據(jù)整理為文章,使用Spacy 工具將其打散為句子,并利用Elasticsearch 建立起索引,創(chuàng)造句子級別的搜索系統(tǒng),隨后把問題和候選答案作為查詢關(guān)鍵詞,在系統(tǒng)中檢索相關(guān)的句子,開源數(shù)據(jù)預(yù)處理如圖3所示。

圖3 開源數(shù)據(jù)預(yù)處理
開源數(shù)據(jù)中的抽取結(jié)果雖然為句子,但多個句子之間存在著內(nèi)在的聯(lián)系,為了獲取句子內(nèi)部和句子間的結(jié)構(gòu)化知識,使用語義角色標(biāo)注(Semantic Role Labeling,SRL)對每個句子進(jìn)行分析,并對多個句子的抽取結(jié)果建立邊的連接(如共現(xiàn)程度)。
針對生成句子圖問題,可以在結(jié)構(gòu)化網(wǎng)絡(luò)安全配置知識庫中定位相關(guān)實體,找到所有和此實體相關(guān)的知識三元組,每個三元組作為一個節(jié)點(diǎn),如果兩個三元組包含相同的實體,則將兩個節(jié)點(diǎn)連接起來。接著,對每個節(jié)點(diǎn)使用規(guī)則,將每個節(jié)點(diǎn)中的三元組轉(zhuǎn)換為句子,生成句子圖過程如圖4 所示。

圖4 生成句子圖過程
于是可以根據(jù)句子圖的圖結(jié)構(gòu)關(guān)系對句子進(jìn)行拓?fù)渑判颍玫接?xùn)練語料。最終,將訓(xùn)練語料與問題答案拼接起來,輸入預(yù)訓(xùn)練模型(BERT 或XLNet)中進(jìn)行訓(xùn)練和預(yù)測。
綜上所述,此過程的具體運(yùn)作流程為,首先根據(jù)用戶提供的防御意圖數(shù)據(jù),經(jīng)過文本識別技術(shù)轉(zhuǎn)化成系統(tǒng)可以識別并理解的向量形式,將得到的向量形式經(jīng)過基于圖卷積的關(guān)系抽取、基于句法特征和膠囊網(wǎng)絡(luò)的意圖識別技術(shù)以及命名實體識別技術(shù)處理后,將用戶的防御意圖轉(zhuǎn)化為系統(tǒng)可理解的表達(dá)形式,最后將此表達(dá)形式輸入策略配置系統(tǒng),并在多元知識融合知識圖譜(即知識庫)的輔助下,準(zhǔn)確識別出用戶身份、目的,并且根據(jù)防御意圖給出精確的意圖解析,為后面的策略配置提供可靠來源。
針對安全配置意圖與策略映射關(guān)系建立問題,本課題擬基于知識圖譜對防御意圖信息進(jìn)行分解,并結(jié)合相關(guān)配置要求,建立防御意圖與設(shè)備指令之間的連接,其過程如圖5 所示。

圖5 基于知識圖譜的防御意圖和策略映射關(guān)系示意
安全配置意圖首先被拆分為行為動作和操作對象兩大部分內(nèi)容,然后基于操作對象屬性進(jìn)行相關(guān)行為動作和ID 等屬性字段的適配,最后融合安全配置意圖相關(guān)信息生成最終的安全配置策略。
基于知識圖譜的意圖和策略模型的映射關(guān)系如下表所示,整個意圖與策略的映射存在于知識圖譜中,根據(jù)相應(yīng)的策略映射,生成一系列機(jī)器可以理解執(zhí)行的策略指令,并且通過知識圖譜,形成對應(yīng)的配置策略。
對于安全配置意圖與安全策略模型的驗證,主要是通過對推理策略的準(zhǔn)確率和召回率來實現(xiàn)的。準(zhǔn)確率和召回率是信息檢索、分類、識別、翻譯等各個領(lǐng)域的兩個最基本的指標(biāo)。準(zhǔn)確率為預(yù)測該類樣本的準(zhǔn)確性,越高越好;召回率為預(yù)測正確的類別C的樣本對于樣本集中類別C的樣本的覆蓋程度,越高越好。概念公式如下所示,其中P為準(zhǔn)確率,-R為召回率。


表1 基于知識圖譜的意圖和策略模型的映射關(guān)系表
二分類問題可以根據(jù)真實類別和分類器預(yù)測類別是否為正例劃分為:
真正例(True Positive,TP):真實類別和預(yù)測類別都是正例,即真實類別匹配到了,預(yù)測類別不匹配。
假正例(False Positive,F(xiàn)P):真實類別是負(fù)例,預(yù)測類別是正例,即真實類別不匹配,但預(yù)測類別匹配到了。
假負(fù)例(False Negative,F(xiàn)N):真實類別是正例,預(yù)測類別是負(fù)例,即真實類別匹配到了,但預(yù)測類別未匹配到。
真負(fù)例(True Negative,TN):真實類別和預(yù)測類別都是負(fù)例,即真實類別和預(yù)測類別都未匹配到。
準(zhǔn)確率和召回率是互相影響的,理想情況下希望兩者都高,但在實際情況下準(zhǔn)確率高、召回率就低,召回率低、準(zhǔn)確率就高。在兩者都要求高的情況下,可以用宏平均(Macro-averaging,F(xiàn)1 值或F-score、F-measure)來衡量。F1 的獲取是先統(tǒng)計每一個類的指標(biāo)值,然后求所有類的算術(shù)平均值,即P和R的調(diào)和平均值,計算公式如下所示:

在模型的驗證過程中,對于根據(jù)用戶的輸入推理出的策略與真實策略做比較,并記錄每次測試中預(yù)測錯誤的策略次數(shù),計算出每次實驗的準(zhǔn)確率與召回率,對于安全配置意圖與安全策略模型整個框架的準(zhǔn)確率要達(dá)到80%以上。
綜上所述,安全配置意圖與策略映射模型構(gòu)建及驗證的具體運(yùn)作流程如圖6 所示。

圖6 策略配置意圖與策略模型構(gòu)建流程圖
首先根據(jù)用戶提供的意圖數(shù)據(jù)(如:Z 要求區(qū)域R 執(zhí)行計劃B)等,經(jīng)過文本識別技術(shù)轉(zhuǎn)化成系統(tǒng)可以識別并理解的向量形式。將輸入的文本識別得到的詞嵌入(如:Z 要求區(qū)域R 執(zhí)行計劃B)輸入BI-LSTM(Bi-Long Short-Term Memory,雙向長短時記憶網(wǎng)絡(luò))的條件隨機(jī)場模型中識別出文本的各個實體(人物/動作/區(qū)域/動作/計劃B)。然后將上一步得到的各個實體輸入基于圖卷積的關(guān)系抽取模型中得到各個實體的關(guān)系(如:(執(zhí)行)(Z,計劃B),(范圍)(區(qū)域R,計劃B)),通過膠囊網(wǎng)絡(luò)將用戶的多個意圖識別出來,最后將上一步得到的意圖通過知識圖譜與基于常識和領(lǐng)域知識融合的機(jī)器推理技術(shù)選擇出正確的策略配置,需要補(bǔ)充的是對于意圖和策略配置的映射關(guān)系已經(jīng)存于知識圖譜中。在多元知識融合知識圖譜(即知識庫)的輔助下,準(zhǔn)確識別出用戶身份、目的,并且根據(jù)用戶的防御意圖給出精確的意圖解析,為后面的策略配置提供可靠來源。
根據(jù)安全配置意圖與配置策略的模型和映射關(guān)系,結(jié)合安全配置知識庫數(shù)據(jù),依據(jù)安全配置意圖的描述,可以實現(xiàn)將安全配置意圖自動轉(zhuǎn)譯為安全配置指令,從而為安全配置策略的自動化生成提供鋪墊。
結(jié)合安全配置策略的形式化描述,安全配置策略自動轉(zhuǎn)譯技術(shù)主要完成安全配置指令向安全配置策略的轉(zhuǎn)化。其轉(zhuǎn)譯過程如圖7 所示:

圖7 安全配置策略自動轉(zhuǎn)譯流程
安全配置策略的自動化轉(zhuǎn)譯,首先基于上節(jié)建立的安全配置意圖與配置策略映射關(guān)系,得到安全配置指令參數(shù)。然后結(jié)合安全配置策略庫信息,針對配置策略模板,生成相應(yīng)的策略描述。最后,將安全配置指令中的相關(guān)參數(shù)補(bǔ)充到安全配置策略描述,生成可下發(fā)實施的安全配置策略。
安全配置策略應(yīng)該滿足一致性條件,即策略集中任意兩個策略,如果其作用的主體、目標(biāo)相同,其對應(yīng)的響應(yīng)策略也應(yīng)該是一致的,不存在相互沖突的情形,否則該策略集是不一致的,即策略之間存在沖突。對于一個策略系統(tǒng)來說,如果要有效地運(yùn)行,選擇一個高效的檢測和解決沖突的方法就顯得十分必要。目前幾種常用的策略檢測和解決的方法如下:
(1)基于多維空間的策略沖突檢測[4]
基于多維空間的策略沖突檢測將策略規(guī)則分為條件和動作部分,每個部分由多個屬性組成,可以將每個屬性看作一項,一條策略的動作部分的多個項應(yīng)該能夠同時執(zhí)行。條件部分的每一個屬性即每一項看作是多維空間中的一個軸,即一維,這樣每條策略的條件部分應(yīng)該對應(yīng)多維空間中的一塊區(qū)域,如果有兩條或多條策略在多維空間中的區(qū)域有重疊,就會存在一個潛在的沖突,這時要檢查它們的動作部分是否可以同時執(zhí)行。
如果系統(tǒng)中存在n條策略,則進(jìn)行一次這樣的沖突檢驗所需要的時間為O(n2)。檢測到一個沖突后,可以通過給相互沖突的策略賦予不同的優(yōu)先級來進(jìn)行解決,因為優(yōu)先級也可以看作是條件部分的一個屬性,對應(yīng)多維空間中的一維,從而使沖突的策略的條件部分在多維空間中對應(yīng)的區(qū)域不再重疊。
(2)基于Ponder 和角色的策略沖突檢測[5]
在Ponder 語言描述的策略中,角色包含一個或多個策略,擁有該角色的主體意味著擁有該角色內(nèi)的策略;當(dāng)賦予主體策略時,只需要加入某個設(shè)定好的角色即可;對于策略沖突的斷定可以根據(jù)兩條策略的主體行為目標(biāo)的覆蓋范圍是否重疊來判斷,這種方法可以判斷模態(tài)沖突,而對具體應(yīng)用沖突則不能直接檢測。
大多數(shù)的應(yīng)用相關(guān)沖突不能通過靜態(tài)語法分析的方法檢查發(fā)現(xiàn),曾有向策略集合中增加對策略本身進(jìn)行約束的“策略的策略”,即所謂的元策略來解決應(yīng)用相關(guān)沖突檢測問題。但是其語法復(fù)雜,并且要求管理員根據(jù)每個沖突實例編寫一定量的程序,加大了管理員的工作負(fù)擔(dān)。
(3)基于有向圖模型的策略沖突檢測[6]
基于有向圖的策略沖突檢測和消解,使用有向圖來表示安全策略集,每個節(jié)點(diǎn)表示策略的主體或目標(biāo),分支的狀態(tài)轉(zhuǎn)化為策略的動作。如果存在兩種不同狀態(tài)的切換,則存在著策略沖突。
(4)基于PDL 邏輯編程的策略沖突檢測[7]
PDL(Policy Description Language,PDL)是基于事件的策略描述語言,具有語法簡單和描述能力強(qiáng)等特點(diǎn)。PDL 將策略描述為事件—條件—動作(event-condition-action,ECA)規(guī)則的集合。基于PDL 策略沖突檢測是通過引入動作約束來捕捉策略沖突,即動作約束規(guī)定了在特定情況下不允許一組動作同時執(zhí)行,若策略的執(zhí)行違反動作約束時,則可檢測到相應(yīng)的策略沖突。另外,基于邏輯程序(Logic Programming)的方法也可以對PDL 策略進(jìn)行沖突檢測與消解,利用邏輯推理驗證檢測與消解結(jié)果的正確性。
經(jīng)過以上對比分析,基于PDL 邏輯編程的策略沖突檢測和解決方法,按照公理使用分離性邏輯程序定義策略規(guī)則的語義和沖突檢測與解決,通過PDL 規(guī)范自動生成控制過程,既易于用戶修改、理解,又具有機(jī)器可執(zhí)行性。另外,采用靜態(tài)的優(yōu)先級定義和動態(tài)的邏輯推理相結(jié)合的沖突解決辦法,可實現(xiàn)策略沖突的有效檢測和高效解決,作為本研究的策略沖突檢測和解決的技術(shù)途徑。
通常安全配置策略由于頻繁變更、日積月累會造成很多無用策略,一方面影響系統(tǒng)設(shè)備的運(yùn)行效率,另一方面也會存在一定的安全隱患。本課題擬利用配置策略優(yōu)化完善技術(shù),定期針對系統(tǒng)設(shè)備策略對象(包括地址對象、時間對象)和配置策略(包括安全策略、ACL 策略、NAT 策略、路由策略等)進(jìn)行優(yōu)化檢查分析,梳理出各類空對象、未被應(yīng)用對象、冗余策略、隱藏策略、過期策略、可合并策略、空策略等,管理員可根據(jù)分析結(jié)果再對策略進(jìn)行精簡和優(yōu)化調(diào)整。各類優(yōu)化檢查標(biāo)準(zhǔn)與規(guī)則說明如下:
空對象:只有對象名,對象內(nèi)容為空,則刪除相應(yīng)的策略;
未被應(yīng)用對象:未被安全策略、ACL 策略和NAT 策略等所引用的對象,則刪除相應(yīng)的策略;
隱藏策略:同一策略集內(nèi),一條高優(yōu)先級策略的源地址、目的地址、服務(wù)對象、時間對象完全包含或等于另外一條低優(yōu)先級策略的源地址、目的地址、服務(wù)對象、時間對象,不管動作是否一致或相反,都刪除低優(yōu)先級的策略;
冗余策略:同一策略集內(nèi),一條低優(yōu)先級策略的源地址、目的地址、服務(wù)對象、時間對象、老化時間(長短鏈接)完全包含高優(yōu)先級另外一條策略的源地址、目的地址、服務(wù)對象、時間對象、老化時間,并且動作相同,則刪除相應(yīng)高優(yōu)先級的策略;
可合并策略:同一策略集內(nèi),指兩條源域、目的域以及動作相同的策略,源地址、目的地址、服務(wù)對象、時間對象四個元素只有一項不相同,其余均相同,則合并為一條策略;
空策略:策略引用的源地址對象、目的地址對象或服務(wù)對象有為空的對象,此類策略在實際應(yīng)用中不會被匹配,則刪除空策略;
過期策略:策略中會包含時間對象,當(dāng)時間對象過期后,該策略會顯示為過期策略,則刪除相應(yīng)的過期策略。
通過周期性地清理上述空策略、冗余策略、過期策略等等,完成系統(tǒng)設(shè)備策略的優(yōu)化更新,提升設(shè)備運(yùn)行效率和安全性。
本文對安全配置策略自動生成與驗證技術(shù)進(jìn)行研究,包括安全配置策略描述、安全策略模型的構(gòu)建與驗證、安全策略自動轉(zhuǎn)譯技術(shù)和策略檢測技術(shù),通過構(gòu)建安全策略的形式化描述,建立安全配置意圖與配置策略映射模型及映射關(guān)系,利用安全配置策略模板,結(jié)合網(wǎng)絡(luò)安全知識圖譜信息,自動化生成網(wǎng)絡(luò)安全配置意圖對應(yīng)的配置策略,并利用策略沖突檢測和智能化管理技術(shù)實現(xiàn)對網(wǎng)絡(luò)安全配置策略的完善優(yōu)化。通過配置策略自動生成與驗證技術(shù)可以快速解析、轉(zhuǎn)化、生成安全配置策略,減輕系統(tǒng)配置管理壓力,提供配置管理效率,提升安全策略智能計算生成能力,促進(jìn)安全配置管理向自動化、智能化發(fā)展。