谷允捷,吳長禾,吳 慶,張 偉,呂天航,胡 琪,宋曉斌,閆吉宇
(1.中共人民解放軍61660 部隊,北京 100084;2.國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,鄭州 450002)
網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展加快了工商業(yè)信息化速度,但也導(dǎo)致了愈演愈烈的網(wǎng)絡(luò)安全問題。CVE Details[1]發(fā)布的數(shù)據(jù)顯示,自2017 年以來安全漏洞發(fā)布數(shù)量每年呈明顯增長趨勢,2021 年首次突破20 000,達到20 141 個,其中5.8%的漏洞CVSS 評分超過了9.0,給計算機系統(tǒng)及互聯(lián)網(wǎng)用戶安全帶來極大威脅。由于用戶或管理員疏于及時保持軟件系統(tǒng)的維護與更新,導(dǎo)致安全隱患直接暴露給攻擊者,對數(shù)據(jù)隱私、系統(tǒng)安全構(gòu)成嚴重威脅[2]。漏洞掃描(簡稱漏掃)技術(shù)[3-4]是一種通過遠程探測目標終端發(fā)現(xiàn)系統(tǒng)缺陷與安全隱患的安防手段,為用戶及時發(fā)現(xiàn)并處置系統(tǒng)漏洞提供了有效保障。隨著網(wǎng)絡(luò)規(guī)模和漏洞種類的不斷增加,集中式漏掃引擎控制節(jié)點的性能成為信息處理瓶頸[5],由于無法在復(fù)雜網(wǎng)絡(luò)規(guī)模下實現(xiàn)有效擴展,導(dǎo)致部分失去安全評估的終端成為易受攻擊的目標。為解決上述問題,業(yè)界相繼采用邏輯上集中、物理上分布的級聯(lián)漏掃引擎部署方案。級聯(lián)漏掃引擎不僅具備覆蓋網(wǎng)絡(luò)節(jié)點范圍更廣、可伸縮性更強的特點,而且極大節(jié)省了網(wǎng)絡(luò)帶寬資源[6],在應(yīng)對復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)下的網(wǎng)絡(luò)安全問題上發(fā)揮了巨大作用。
盡管級聯(lián)漏掃方案解決了復(fù)雜網(wǎng)絡(luò)規(guī)模下漏掃引擎的可擴展性問題,但在實際網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)時延降低了級聯(lián)漏掃任務(wù)的執(zhí)行效率[3,7]。在執(zhí)行遠程漏掃的過程中,局域掃描引擎需要向其管轄的目標終端發(fā)送大量探測報文,并通過響應(yīng)報文確定漏掃結(jié)果,因此局域掃描引擎與目標終端通信時延將直接影響掃描效率;同時,因為局域漏掃引擎需要在中心控制引擎領(lǐng)取漏掃任務(wù),并將掃描結(jié)果回傳至中心控制引擎數(shù)據(jù)庫中,所以控制引擎與漏掃引擎之間的時延也應(yīng)予以兼顧。
級聯(lián)漏掃引擎部署問題是網(wǎng)絡(luò)安全研究領(lǐng)域的重要話題,近年來國內(nèi)外相關(guān)研究保持著持續(xù)的熱度。文獻[8]提出一種分布式入侵檢測與阻斷系統(tǒng)(Intrusion Detection System,IDS)[9-10]部署算法,綜合考慮流量、路由策略以及各類資源約束,通過線性規(guī)劃計算每個分布式節(jié)點的任務(wù)以實現(xiàn)系統(tǒng)負載均衡,文獻[11]設(shè)計一種基于智能調(diào)度算法實現(xiàn)負載均衡的分布式漏洞掃描系統(tǒng),能夠依據(jù)掃描引擎消耗的系統(tǒng)資源進行任務(wù)調(diào)度,但是相對于IDS 而言,漏掃引擎不需對大量的鏡像流量進行分析,因此負載均衡并不是影響掃描效率的重要影響因素[12-13]。文獻[14]在大規(guī)模網(wǎng)絡(luò)環(huán)境下基于貪婪算法提出一種引擎部署算法,對減少引擎數(shù)量以及鏈路帶寬占用率有較好效果,但沒有考慮鏈路時延對探測報文的影響。文獻[15-17]注重網(wǎng)絡(luò)中局域控制節(jié)點與目標終端之間的平均時延或累計時延,提出兩種面向時延優(yōu)化的部署算法,但算法缺乏對中心控制引擎與局域掃描引擎之間時延開銷的考慮。
現(xiàn)有的引擎部署策略能夠?qū)崿F(xiàn)局域掃描引擎的負載均衡,但隨著計算機處理性能與并發(fā)能力的提升,通用服務(wù)器已經(jīng)能夠滿足分布式漏掃的負載[18-20],部分文獻考慮了通信時延對分布式漏掃引擎工作效率的影響,但沒有考慮中心控制引擎、局域掃描引擎以及目標終端三者之間的級聯(lián)特性,算法容易陷入局部最優(yōu)。
針對上述研究中存在的問題,本文提出一種面向時延優(yōu)化的級聯(lián)漏洞掃描引擎部署策略,通過建立級聯(lián)引擎部署數(shù)學(xué)模型,將真實網(wǎng)絡(luò)環(huán)境抽象為承載終端設(shè)備或漏掃引擎的底層網(wǎng)絡(luò)拓撲,綜合考慮“中心控制引擎”“局域漏掃引擎”“目標終端”在底層網(wǎng)絡(luò)中受到節(jié)點承載能力、鏈接歸屬關(guān)系等條件的約束,將級聯(lián)漏掃引擎系統(tǒng)的網(wǎng)絡(luò)時延歸納為掃描時延與回傳時延兩個部分,提出級聯(lián)漏掃引擎部署時延優(yōu)化目標。此外,將級聯(lián)漏掃系統(tǒng)時延優(yōu)化問題轉(zhuǎn)化為求解系統(tǒng)自由能函數(shù)最小值問題,并基于確定性退火算法求解。
級聯(lián)漏掃方案的工作原理如圖1 所示。本節(jié)對級聯(lián)漏洞掃描引擎系統(tǒng)各元素進行定義與闡述,建立數(shù)學(xué)模型,確定面向時延的優(yōu)化目標。
圖1 級聯(lián)漏掃引擎及其部署Fig.1 Cascade vulnerability scanning engine and its deployment
1.1.1 底層網(wǎng)絡(luò)
1.1.2 部署關(guān)系
1.1.3 網(wǎng)絡(luò)時延
在級聯(lián)漏掃引擎環(huán)境下,局域掃描引擎的掃描范圍需要覆蓋所轄范圍內(nèi)全部目標終端設(shè)備,根據(jù)底層網(wǎng)絡(luò)以及級聯(lián)漏掃引擎與終端之間的部署關(guān)系,局部掃描引擎與目標終端之間的時延α可表示為式(1)所示:
所有局部掃描引擎均從中心控制引擎獲取掃描任務(wù)并將掃描數(shù)據(jù)進行回傳,因此中心控制引擎與局部掃描引擎之間的時延β可表示如下:
綜合考慮中心控制引擎、局部掃描引擎與目標終端之間的通信時延對漏掃效率的影響,面向時延的優(yōu)化目標可表示為,其中參數(shù)γ>0 用于衡量α與β兩種時延之間的重要程度,N=Card(N)用于權(quán)衡底層網(wǎng)絡(luò)規(guī)模影響,同時應(yīng)滿足式(4)~式(9)的約束關(guān)系。
其中:式(4)表示任意目標終端有且僅有一個局域漏掃引擎對應(yīng)管轄;式(5)表示建模過程中節(jié)點m,n之間的時延等價于兩者之間的歐氏距離;式(6)表示有且僅有一個中心控制引擎;式(7)表示局域掃描引擎數(shù)量不多于能承載掃描引擎的節(jié)點集合基數(shù),且不多于局域漏掃引擎數(shù)量上限;式(8)約束了一個目標終端只能位于一個節(jié)點,一個掃描引擎僅能部署在一個節(jié)點上;式(9)=1 表示所有局域漏掃引擎均與中心控制引擎鏈接且受其管轄。
分布式漏掃引擎部署過程與基于軟件定義網(wǎng)絡(luò)的控制器部署過程類似。在級聯(lián)漏掃探針系統(tǒng)中,局域漏掃引擎需要覆蓋所有目標終端。同樣地,在SDN 環(huán)境下,多個控制器需要與網(wǎng)絡(luò)拓撲中所有交換機建立映射關(guān)系。此類多域規(guī)劃問題可歸約為典型的設(shè)施選址問題[22],是運籌學(xué)中經(jīng)典的問題之一。隨著問題規(guī)模N的增加,無法在多項式的時間復(fù)雜度O(Nk)內(nèi)尋求最優(yōu)的控制器數(shù)量以及部署位置[16]。由于級聯(lián)漏掃引擎部署問題包含局域漏掃引擎部署問題,同樣可規(guī)約為設(shè)施選址問題,因此也是NP 難問題(NP-hard problem)。為降低問題求解復(fù)雜度,確保任意目標終端均有漏掃引擎管轄,同時降低級聯(lián)漏掃引擎通信時延以提升全網(wǎng)漏掃效率,本文在級聯(lián)引擎部署數(shù)學(xué)模型的基礎(chǔ)上,設(shè)計了一種啟發(fā)式級聯(lián)協(xié)同部署算法(Cascade Coordinate Deployment Algorithm,CCDA)。首先構(gòu)造合適的級聯(lián)系統(tǒng)能量函數(shù),將面向時延優(yōu)化的級聯(lián)引擎部署問題轉(zhuǎn)化為級聯(lián)系統(tǒng)自由能函數(shù)最小值問題,在此基礎(chǔ)上,基于確定性退火思想設(shè)計的級聯(lián)協(xié)同部署算法進行求解,避免求解過程陷入局部極小值,實現(xiàn)級聯(lián)引擎部署策略全局快速尋優(yōu)。
確定性退火算法利用統(tǒng)計物理的退火過程,將求解優(yōu)化問題的最優(yōu)解轉(zhuǎn)化為求一系列隨溫度變化而變化的物理系統(tǒng)自由能函數(shù)的最小值問題[23]。對于級聯(lián)引擎系統(tǒng),可以基于上述退火過程將求解面向時延優(yōu)化的引擎部署問題視為級聯(lián)系統(tǒng)能量期望函數(shù)最小值問題。設(shè)=1,?n∈N,即底層網(wǎng)絡(luò)任意一點至少具備承載目標終端的能力。定義級聯(lián)系統(tǒng)能量期望函數(shù)如下所示:
根據(jù)式(9)可知所有局域漏掃引擎均與中心控制引擎鏈接,因此級聯(lián)系統(tǒng)能量期望可表示為:
結(jié)合式(13),可得式(3)與如下式(14)等價。
依據(jù)自由能減小定律,溫度不變的封閉系統(tǒng)狀態(tài)總是朝著自由能減小的方向轉(zhuǎn)換,當自由能最小時達到系統(tǒng)平衡態(tài)。當級聯(lián)系統(tǒng)能量期望函數(shù)確定時,需要定義級聯(lián)系統(tǒng)的自由能函數(shù)F(δ,T)。為確保級聯(lián)協(xié)同部署算法的收斂性,F(xiàn)(δ,T)至少需要滿足確定性退火技術(shù)的兩項條件:當系統(tǒng)溫度T→∞時,F(xiàn)(δ,T)關(guān)于δ的全局極小值易求出;當T=0 時,F(xiàn)(δ,T)=E(δ)。參考文獻[24],系統(tǒng)自由能函數(shù)可定義為:
其中H為級聯(lián)系統(tǒng)的系統(tǒng)熵,可表示為式(16)所示:
將式(19)代入式(18)即可求解υm及υm*。
結(jié)合確定性退火算法進行迭代尋優(yōu),級聯(lián)協(xié)同部署算法可總結(jié)為算法1。
算法1級聯(lián)協(xié)同部署算法
級聯(lián)協(xié)同部署算法的復(fù)雜度取決于4 個因素:
1)終端節(jié)點分布χn以及漏掃引擎分布υm,其中n∈{1,2,…,N},m∈{1,2,…,c};
2)中心控制節(jié)點與局域控制節(jié)點之間的歐式距離計算;
3)針對聯(lián)合概率p(υm|χn)的求解過程;
4)確定性退火算法迭代次數(shù)τ。
綜上可得級聯(lián)協(xié)同部署算法的復(fù)雜度為O(NCτ)+O(C2τ)+O((N+C)τ),由于C<,且有?N,則當網(wǎng)絡(luò)具有一定規(guī)模時,算法復(fù)雜度為O(NCτ)。
本文在實驗中首先分析級聯(lián)協(xié)同部署算法的有效性,然后分析各項指標對級聯(lián)協(xié)同部署算法的影響,最后與Greedy 算法[25]、K-means 算法[26]進行對比分析。仿真實驗平臺為Inter Core i7-9750,2.6 GHz CPU,16 GB 內(nèi)存,Linux 系統(tǒng)個人電腦,采用python語言搭建仿真環(huán)境并對實驗結(jié)果進行對比分析。實驗使用兩種網(wǎng)絡(luò)拓撲結(jié)構(gòu)數(shù)據(jù)集,分別是服從高斯分布的隨機網(wǎng)絡(luò)拓撲、來自Pajek[27]與Stanford 大學(xué)[28]的網(wǎng)絡(luò)拓撲數(shù)據(jù)集。其中隨機網(wǎng)絡(luò)拓撲的規(guī)模為N,高斯集群數(shù)量為K。
本實驗主要驗證級聯(lián)協(xié)同部署算法的有效性,實驗使用服從高斯混合分布的隨機網(wǎng)絡(luò)拓撲,該拓樸使用python 腳本生成,網(wǎng)絡(luò)規(guī)模N=80,代表可承載目標終端和漏掃引擎的底層網(wǎng)絡(luò)節(jié)點,集群數(shù)量K=4,且γ=0.1,用于協(xié)調(diào)時延α與時延β。當==1,?n∈N時,任意節(jié)點具備部署目標終端以及探針引擎的能力。依據(jù)級聯(lián)協(xié)同部署算法,首先構(gòu)建滿足收斂條件的自由能函數(shù)F,并由υm0=初始化局域漏掃探針初始分布,然后進入確定性退火算法循環(huán)過程,通過貝葉斯分布求解聯(lián)合概率p(υm|χn),并結(jié)合式(17)和式(18)對局域漏掃分布結(jié)果進行迭代尋優(yōu),同時以系數(shù)ω降低系統(tǒng)當前溫度T。當系統(tǒng)溫度小于初始設(shè)定的最小溫度Tmin時停止迭代,輸出漏掃引擎分布結(jié)果υm。
圖2 展示了不同迭代次數(shù)下局域漏掃引擎與中心控制引擎對應(yīng)的部署位置,以及局域漏掃引擎覆蓋的目標終端集群。可見隨著迭代次數(shù)的增加,局域漏掃引擎的數(shù)量,部署位置,以及管轄目標終端集群均在不斷變化。當?shù)?5 次時,局域漏掃引擎的部署數(shù)量為3,而當?shù)?2 次時,局域漏掃引擎的部署數(shù)量為6,局域漏掃引擎與目標終端之間的映射關(guān)系變化較大,中心控制引擎的部署位置也隨局域漏掃引擎的部署變化而發(fā)生改變。產(chǎn)生這一現(xiàn)象的原因是當前系統(tǒng)溫度處于較高水平,部署狀態(tài)變化較為劇烈,該特性有效避免了求解過程陷入局部最優(yōu)。中心控制引擎的部署位置也在變化,但總體位于多個局域漏掃引擎之間,且數(shù)量始終為一。當?shù)?5 次以上時,局域漏掃引擎的部署位置及其管轄終端范圍逐漸趨于穩(wěn)定。受參數(shù)γ取值的影響,局域漏掃引擎位于目標終端集群中較靠近中心控制引擎的一側(cè)。
圖2 退火過程中部署策略的變化Fig.2 Change of deployment strategy during annealing
本實驗分別改變網(wǎng)絡(luò)規(guī)模N、參數(shù)γ的值來對比求解效果,從而分析各項指標對級聯(lián)協(xié)同部署算法的影響。首先分析當網(wǎng)絡(luò)規(guī)模N確定的情況下,改變衡量時延權(quán)重的參數(shù)γ對算法求解的影響。實驗使用規(guī)模N=2 000,集群數(shù)量K=5 的高斯混合分布網(wǎng)絡(luò),γ分別取值0.05,0.10,0.15,0.40 進行求解,實驗過程中改變了網(wǎng)絡(luò)規(guī)模、集群數(shù)量以及參數(shù)γ的取值,其余求解步驟與實驗1 相同,效果如圖3 所示。可見隨著γ的變化,局域漏掃引擎的部署將會受到直接影響,當γ逐漸增加時,局域漏掃引擎逐漸向中心控制引擎靠攏,且局域漏掃引擎的管轄范圍逐漸呈現(xiàn)向中心控制引擎擴張的趨勢。造成這一現(xiàn)象的原因是隨著γ的增加,局域漏掃引擎與中心控制引擎之間的通信時延在優(yōu)化目標中的權(quán)重占比增加,為了減小全局時延優(yōu)化目標,級聯(lián)協(xié)同部署算法將盡可能減少中心控制引擎與局域漏掃引擎之間的距離,從而降低掃描結(jié)果回傳的通信時延。由圖3(d)可知,當γ取值較大時,將會以減少局域漏掃引擎數(shù)量的方式降低引擎之間的通信時延。
圖3 參數(shù)γ 對算法求解的影響Fig.3 Influence of parameter γ on algorithm solution
分析網(wǎng)絡(luò)規(guī)模N發(fā)生改變時對算法求解產(chǎn)生的影響。實驗使用來自Pajek 與Stanford 大學(xué)的網(wǎng)絡(luò)拓撲數(shù)據(jù)集,N取值分別為124,234,311,451,581。在γ取不同值的情況下分別采用級聯(lián)協(xié)同部署算法進行求解,可得級聯(lián)系統(tǒng)自由能(代表時延優(yōu)化目標)隨網(wǎng)絡(luò)規(guī)模N以及參數(shù)γ的變化效果,結(jié)果如圖4所示。
圖4 級聯(lián)系統(tǒng)自由能的變化Fig.4 Change of free energy of cascade system
由圖4 可知,隨著γ的增加,級聯(lián)系統(tǒng)自由能函數(shù)趨于平穩(wěn),代表時延優(yōu)化效果趨于平穩(wěn)。原因在于γ增加會導(dǎo)致局域漏掃引擎部署時向中心控制引擎靠攏,當距離較近時級聯(lián)引擎之間的通信時延已經(jīng)不再是影響優(yōu)化目標的主要因素。同時可以觀察到隨著網(wǎng)絡(luò)規(guī)模的增加,自由能函數(shù)趨于平穩(wěn)時對應(yīng)的γ是逐漸后移的,導(dǎo)致該現(xiàn)象的原因是當網(wǎng)絡(luò)規(guī)模較大時,級聯(lián)引擎具備更寬裕的距離分布調(diào)整空間。
為驗證CCDA 算法的級聯(lián)引擎部署時延優(yōu)化性能,將K-means 部署算法[26]及Greedy 算法[25]與本文算法進行對比分析。其中K-means 算法依據(jù)平均距離原則對目標終端進行聚類,將聚類中心作為漏掃引擎節(jié)點;Greedy 算法基于分級處理思想,首先以局部掃描引擎與目標終端之間的時延為優(yōu)化目標,決策局域漏掃引擎的部署,然后以級聯(lián)引擎之間的時延為優(yōu)化目標決策中心控制引擎的部署。實驗使用網(wǎng)絡(luò)規(guī)模為100~1 000、集群數(shù)量K=6 的高斯混合分布網(wǎng)絡(luò),γ取值0.05,實驗結(jié)果如圖5 所示。由圖5可知,隨著網(wǎng)絡(luò)規(guī)模的增加,3 種算法的級聯(lián)系統(tǒng)自由能(代表時延)均會增加,相同網(wǎng)絡(luò)規(guī)模下,使用K-means 部署算法所得的時延最大,這是因為該算法在規(guī)劃過程中僅依據(jù)目標終端平均距離原則進行聚類,對局域漏掃引擎所管轄的目標終端數(shù)量缺乏規(guī)劃。Greedy 算法在網(wǎng)絡(luò)規(guī)模較小的情況與K-means部署算法相比存在優(yōu)勢,但隨著網(wǎng)絡(luò)規(guī)模增長,時延優(yōu)化效果與CCDA 算法差距逐漸增大。這是因為Greedy 算法將兩部分時延優(yōu)化目標分離并逐步尋求最優(yōu),導(dǎo)致局域漏掃引擎的部署策略僅取決于目標終端,算法容易陷入局部最優(yōu),因此當網(wǎng)絡(luò)規(guī)模增大時,級聯(lián)引擎之間的通信時延難以得到優(yōu)化。相比之下,基于CCDA 算法的時延開銷相對Greedy 與K-means 部署算法平均降低16.2%與33.7%。
圖5 不同算法的時延優(yōu)化性能對比Fig.5 Performance comparison of delay optimization of different algorithms
本文針對現(xiàn)有級聯(lián)漏掃引擎部署研究中未考慮通信時延,導(dǎo)致掃描效率有待提高的問題,提出一種面向時延優(yōu)化的級聯(lián)漏掃引擎部署策略。通過構(gòu)造級聯(lián)系統(tǒng)能量函數(shù),將面向時延優(yōu)化的級聯(lián)引擎部署問題轉(zhuǎn)化為系統(tǒng)自由能函數(shù)最小值問題,并設(shè)計算法實現(xiàn)部署策略快速尋優(yōu)。實驗結(jié)果表明,該算法有效降低了級聯(lián)引擎的通信時延,驗證了其在處理復(fù)雜網(wǎng)絡(luò)環(huán)境下級聯(lián)漏掃引擎部署的有效性與優(yōu)越性。由于大規(guī)模復(fù)雜網(wǎng)絡(luò)環(huán)境下存在大量防火墻[29]、入侵檢測等網(wǎng)絡(luò)安全設(shè)備,導(dǎo)致網(wǎng)絡(luò)通聯(lián)情況受到訪問控制的限制,影響局域漏掃引擎的部署,因此下一步將考慮訪問控制的因素,研究在訪問策略影響下的級聯(lián)漏掃引擎部署問題。