萬 抒,余興華,吳中軍
(中國電子科技集團公司第三十研究所,四川 成都 610041)
安全策略是一定條件下的安全規則,是保障系統安全可靠運行的關鍵性要素,如何由系統安全需求正確、高效、智能地產生系統整體性的安全策略是安全領域的一個重要課題。
在這一研究領域中,分布式系統安全策略的智能生成和配置方面的研究尚處于起步階段,但需求更加迫切,面臨的問題也更加復雜。和傳統系統相比,分布式系統一般由若干個部署分散的節點區域組成聯合體,各個區域之間既可獨立自主運行,也需要協同工作,整個系統具備地域分散、高動態和弱連接等特性,同時也面臨著缺乏安全運維管理人員的困境,傳統繁瑣、低效的安全策略人工配置模式顯然無法適用于實際使用需求,急需研究適用于分布式系統的安全策略智能生成機制,在確保網絡帶寬低開銷的情況下,無須人工干預實現系統各個節點區域安全策略高效、智能地生成和配置,并能夠適應分布式系統的動態重構、在線遷移等復雜應用場景。
近幾年,國內外的一些學者已經開始進行安全策略自動生成和配置方面的研究。
文獻[2]將需求工程領域中的KAOS(Knowledge Acquisition in Automated Specification) 方法引入策略生成過程中,提出了面向目標的需求規范形式化的描述方式和求精細化方法,但并沒有實現目標求精過程和目標策略生成的自動化關聯;文獻[3]提出了采用KAOS 方法將安全需求細化成詳細的授權規則和訪問控制策略,但是由于從KAOS 規范到安全策略之間的映射并不全面,沒有實現安全需求到安全策略的自動轉換;文獻[4]提出了基于需求的策略規則分析和描述方法,但需要需求規范、軟件設計和安全策略等大量的輸入源,才能實現訪問控制策略的推導;文獻[5]等人提出了“一種網絡攻防策略圖生成算法”,該方法需要較長的時間,并需要較大的網絡帶寬資源對整個區域的網絡運行和脆弱性信息進行多源融合處理,且只能生成網絡攻防圖,而無法自動生成安全策略;文獻[6]提出了“基于異構的網絡安全策略自適應發布”機制,該方法只說明了分布式異構網絡安全策略的發布和通告機制,未涉及異構網絡安全策略的自動生成和自動部署機制。
分布式系統一般由若干個部署分散的節點區域組成聯合體,各個區域內部存在一個“域控制節點”,各個區域依托于該控制節點感知、管理和調度區域內部信息資產實現區域自治和自主運行,同時,通過該控制節點代表本域進行域間協商和動態組網,實現多域協同運行。
圖1 以4 個域的分布式系統為例進行說明。其中,域中存在信息資產a1、a2、a3和域控制節點A1,由A1負責感知、管理和調度本域內的信息資產{a1,a2,a3};同理,在域B 中,由B1負責感知、管理和調度本域內的信息資產{b1,b2,b3};在域C中,由C1負責感知、管理和調度本域內的信息資產{c1,c2,c3};在域D 中,由D1負責感知、管理和調度本域內的信息資產{d1,d2,d3};域控制節點{A1,B1,C1,D1}之間可進行信息交換和動態協商,以實現域A,B,C,D 之間的協同運行和動態組網。

圖1 分布式系統的多域協同模型設計
本文假設域內的信息資產擁有一個全網唯一的身份標識ID,以此為基礎通過“域控制節點”實現域內資產智能發現,包括域內資產可信注冊、域內資產智能發現兩方面機制,具體實現步驟如下:
1.域內資產可信注冊機制:首先,各類信息資產第一次入網時以自身的身份標識ID 為公鑰,并通過算法生成一組公私鑰對。如域控制節點Xi的公私鑰對為:

信息資產ai的公私鑰對為

信息資產ai第一次進入某個域后,和該域的控制節點Xi交換公玥,并獲取域控制節點Xi的共鑰信息Xi-ID;
2.域內資產智能發現機制:域內某一信息資產ai入網或者屬性發生變化時,利用自身的公私鑰對(ai-ID,Keyai)向本域的域控制節點Xi進行自動的入網認證,以域A內部資產a1的入網認證流程進行舉例說明:
1)當入網a1時,生成隨機數Rand(a1)發送給域控制節點A1,然后接受其返回的挑戰碼信息CC(a1);
2)a1將自身相關信息(如IP 地址、開放端口以及通信協議)等屬性信息Att(a1)、資產序列號Num(a1),結合返回的挑戰碼信息,整編生成資產注冊信息:

計算其信息摘要:

利用ECC 的組合公鑰算法對身份信息和摘要進行加密,生成認證消息并發送給域內控制節點:

3)域控制節點A1利用自身私鑰KeyA 解密認證消息,獲得資產注冊信息M和摘要X,并計算M的摘要SHA256(M),然后通過比較判斷認證消息是否被篡改過,如被篡改則丟棄;若成功,根據資產序列號Num(ai)是否為最新值,判斷是否更新資產信息。

圖2 域內資產智能發現機制設計
域控制節點A1將本域內的各個資產的屬性信息、資產序列號信息以及整體摘要信息組合形成域內資產信息鏈,若域內某一資產信息發生變化,則需要更新。
1.域控制節點A1基于對a1、a2和a3的認證注冊的結果,在本地存儲的相關信息,包括資產屬性信息Att(ai)和資產序列號Num(ai)。
2.域控制節點A1構建本域的資產信息列表LoA(A)=(Att(a1),Att(a2),Att(a3)…)和信息資產序列號LoN(A)=(Num(a1),Num(a2),Num(a3)…)。
3.在某一時刻i,域控制節點A1將需要通告其他域的資產信息構建本域的外部資產信息列表:

外部資產序列號:

4.基于公式(6)和(7),域控制節點A1計算相關摘要信息:

以此為基礎,形成域內資產信息鏈:

5.若域內某一資產信息發生變化,則該資產需要再次進行認證,并變更資產序列號Num(ai+1),域控制節點A1重新計算摘要信息并形成域內資產信息鏈CoX-Ex(Ai+1)。
各個域域控制節點之間利用自身的公私鑰對確保彼此交換的域內資產信息鏈的正確性,以此為基礎實現分布式節點的協同工作,工作步驟如下:
1.域控制節點A1利用節點私鑰KeyA對其進行加密,生成單域資產可信通告信息:

之后,采用網絡組播方式向全網其他域節點通告“域內資產信息鏈通告”。
2.其他域控制節點基于節點A的共鑰PUBA進行解密,之后采用相同的算法計算比較(LoAEx(Ai),DN-Ex(Ai))的摘要信息是否被篡改,如果被篡改,則丟棄;否則,基于DN-Ex(Ai)是否為最新值,決定是否更新區域A的資產信息鏈。
當多個域動態組網、協同工作時,多個域控制節點通過協商的方式選舉一個域控制節點A作為域間聯盟權威節點,由其負責記賬并形成某一時刻的域間聯盟資產信息鏈,之后通過組播方式告知他域控制節點,當各個域控制節點均對域間聯盟資產信息鏈的正確性達成共識,則該鏈生效。具體步驟如下:
1.當多個域動態組網、協同工作時,多個域控制節點通過協商的方式選舉域控制節點A為域間聯盟權威節點,并由A產生一個隨機數作為本聯盟序號:

2.在某一時刻i,域間聯盟權威節點A通過各個域控制節點的“域內資產信息鏈通告機制”,獲取其他域的設備資產列表,形成域間聯盟資產信息矩陣:

域間聯盟資產信息摘要矩陣:

域間聯盟資產序號矩陣:

計算域間聯盟資產摘要:

3.域間聯盟權威節點A利用域控制節點的私鑰KeyA對其進行加密,生成域間聯盟交換信息鏈發布信息:

之后采用網絡組播方式向全網發布。
4.在網的其他域控制節點采用相應的共鑰PUBA 解密資產發布消息,若和本地存儲的值相同則丟棄;否則,定向向域間聯盟權威節點申請獲取最新的(ULA(i),ULN(i))。
5.之后,將(ULA(i),ULN(i)) 和本地存儲的(ULA(j),ULN(j))進行逐一比較,若發現本域的資產信息有誤,則采用“域內資產信息鏈通告機制”通告最新的域資產信息;若發現其他域的資產信息有誤,則定向告知相關域控制節點,要求其采用“域內資產信息鏈通告機制”重新通告其最新信息。
6.域間聯盟權威節點A 若收到其他域控制節點的最新資產通告信息,則重復步驟1 的動作,直至所有域控制節點均達成共識后進行后續動作。
當各個域控制節點的資產信息達成共識后,各節點存儲的域間聯盟資產信息矩陣UMA(i)能夠確保一致,之后基于統一的安全策略語法轉換技術和安全策略增量翻譯技術,自動生成相應的安全策略。具體步驟如下:
1.域控制節點Ai采用策略自動翻譯器將域間聯盟的交換信息矩陣UMA(i)翻譯為網絡安全策略集合SPS(i)。
2.域控制節點查詢對比本地存儲的上一次網絡安全策略集合SPS(i-1),若存在,則計算兩次網絡安全策略集合的增量值ΔSPS(i);若不存在,執行步驟4)。
3.域控制節點保證原有安全策略繼續有效執行的前提下,更新ΔSPS(i)相關的安全策略。
4.域控制節點將所有網絡安全策略生效,完成本域策略智能部署。

圖3 域間聯盟資產信息鏈發布機制設計
本文通過搭建一個網絡帶寬為1000M 的測試環境,接入4 個子網:A、B、C、D,子網地址分別為:192.168.1.0/24、192.168.2.0/24、192.168.3.0/24、192.168.4.0/24。每個子網代表一個域,域A、B、C、D 的域控制節點分別為A1、B1、C1、D1,IP 地址分別為192.168.1.2/24、192.168.2.2/24、192.168.3.2/24、192.168.4.2/24。

圖4 安全策略智能生成機制設計
在域A 中,部署3 臺計算機終端/服務器a1、a2和a3,IP 地址分別為192.168.1.11/24、192.168.1.12/24、192.168.1.13/24,a1作為服務器開放80 端口對外提供服務;在域B 中,部署2 臺計算機終端/服務器b1和b2,IP 地址分別為192.168.2.11/24、192.168.2.12/24,b1作為服務器開放20、21端口對外提供服務;在域C 中,部署2 臺計算機終端/服務器c1和c2,IP 地址分別為192.168.3.11/24、192.168.3.12/24,c1作為服務器開放23 端口對外提供服務;在域D 中,部署3 臺計算機終端/服務器d1、d2和d3,IP 地址分別為192.168.4.11/24、192.168.4.12/24、192.168.4.13/24,d1作為服務器開放80 端口對外提供服務。測試環境的網絡拓撲圖如圖5 所示。
選取以下多種場景在測試環境中驗證:
1.場景1:資產首次入網場景,域A中的所有資產第一次接入網絡。
2.場景2:單域對外資產屬性更新場景,域A服務器a1的屬性發生變化,新增 20 端口對外服務。
3.場景3:多域對外資產屬性更新場景,域A服務器a1、域B 服務器b1和域D 服務器d1的屬性發生變化,a1新增 20 端口對外服務,b1新增 80 端口對外服務,d1新增 21 端口對外服務。
4.場景4:多域內部資產屬性更新場景,域A服務器a2、域B 服務器b2和域D 服務器d3的屬性發生變化,a2、b2下線,d3重新接入網絡。

圖5 測試環境網絡拓撲圖
針對以上各類場景,測試從資產屬性發生變化,到各個域控制節點A1、B1、C1、D1達成共識后實現安全策略智能生成的時間,每個場景共測試5 次,取平均值。

表1 試驗數據
試驗數據表明,當各個域對外資產屬性發生變化時,通過“基于分布式共識的多域安全策略智能生成機制”能夠確保多個區域并行、協同完成安全策略的智能生成和配置,單域、多域等不同應用場景對于機制的運行效率影響不大;且域內資產更新調整,不會觸發該機制的運行,故“域內自治”和“域間協同”的區分度較好。
基于分布式共識的多域安全策略智能生成機制主要針對多域協同運行的分布式系統,在基于域控制節點實現域內資產智能感知的前提下,通過域間協同方式實現各域對外安全策略的智能生成和智能配置。從試驗結果來看,該機制能夠適應資產入網、更新、離線等多種應用場景實現安全策略的智能生成和配置,域間信息能夠快速收斂達成共識,且域內部的資產更新、調整不會影響域間的安全策略配置,具備較強的應用前景。
但是,該機制針對域內的資產智能感知機制需要實現各類資產的統一標識,且域內的認證模式比較單一,難以適應各類應用場景;同時,該機制目前大規模的多域協同系統的應用場景驗證尚不充分,上述內容是該模型后續需要研究的問題。