尹金娣
(西安電子科技大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,陜西西安 710071)
隨著信息技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)安全和可靠性普遍得到人們的重視。人們花費(fèi)大量的財(cái)力物力對(duì)網(wǎng)絡(luò)風(fēng)險(xiǎn)、網(wǎng)絡(luò)可靠性等方面進(jìn)行研究使其系統(tǒng)的服務(wù)質(zhì)量得到提高。但當(dāng)前的網(wǎng)絡(luò)面對(duì)突如其來的災(zāi)難和人為攻擊顯得十分脆弱[1-2]。從而使網(wǎng)絡(luò)彈性的研究成為了一個(gè)研究熱點(diǎn)。網(wǎng)絡(luò)彈性的研究不再局限于被動(dòng)對(duì)網(wǎng)絡(luò)遭到攻擊失效后的評(píng)估,而是主動(dòng)的進(jìn)行對(duì)故障提前預(yù)測同時(shí)及時(shí)恢復(fù)失效信息。本文主要對(duì)網(wǎng)絡(luò)彈性概念的梳理、網(wǎng)絡(luò)彈性評(píng)估和度量所面臨的挑戰(zhàn)進(jìn)行分析與探討,且最為重要的是提出了新的系統(tǒng)彈性評(píng)估方法。該種模型基于馬爾科夫網(wǎng)絡(luò),不但考慮了單個(gè)服務(wù)的狀態(tài),同時(shí)融入了服務(wù)之間的依賴關(guān)系,更準(zhǔn)確地評(píng)估整個(gè)系統(tǒng)的彈性。
以前改進(jìn)系統(tǒng)彈性的工作主要是關(guān)于考慮威脅影響基礎(chǔ)上的,其中包括對(duì)設(shè)計(jì)、構(gòu)架、績效的評(píng)估。彈性系統(tǒng)的設(shè)計(jì)提出是為了檢測和修復(fù)各種類型的故障,被應(yīng)用到彈性方面的模型絕大多數(shù)是基于可靠性的。Nicol[3]提出一種基于模型的評(píng)估調(diào)查技術(shù)來量化可靠性和安全性諸多模型。此外,還可應(yīng)用到系統(tǒng)的彈性領(lǐng)域。然而,故障的解決是通過模型清楚地定義和統(tǒng)計(jì)預(yù)測。相比在惡意攻擊的系統(tǒng)中,失效率的預(yù)測更加困難。文中考慮了無法統(tǒng)計(jì)推斷的故障,如惡意攻擊絕大多數(shù)的工作涉及對(duì)惡意攻擊的探測和預(yù)防,而不僅是關(guān)注這種威脅的后果。
彈性是理解為系統(tǒng)的適應(yīng)能力。該模型的彈性定義如下:彈性是一種重要服務(wù)的適應(yīng)能力,以及系統(tǒng)應(yīng)對(duì)突發(fā)事件的能力。量化彈性模型考慮單個(gè)服務(wù)的適應(yīng)能力以及其之間的相互依賴關(guān)系。衡量服務(wù)的適應(yīng)性,文中使用了自適應(yīng)性指標(biāo),其主要包括高、中、低3個(gè)狀態(tài)。其是計(jì)算單個(gè)服務(wù)的狀態(tài),然后聚合作為一個(gè)聯(lián)合概率分布,用于計(jì)算整個(gè)系統(tǒng)的彈性。系統(tǒng)的所有服務(wù)狀態(tài)的聯(lián)合概率分布被定義為彈性函數(shù)R。該函數(shù),在式(1)中呈現(xiàn)。計(jì)算重要服務(wù)Sc的概率并未在低的適應(yīng)狀態(tài),而其他非重要服務(wù)Snc則處于低狀態(tài)
為簡潔有效地表示和計(jì)算聯(lián)合分布,該模型應(yīng)用了馬爾科夫網(wǎng)絡(luò)表現(xiàn)形式[4]。馬爾科夫網(wǎng)絡(luò)基于無向圖,其節(jié)點(diǎn)表示變量,邊表示節(jié)點(diǎn)之間的鏈接。然而,對(duì)于馬爾科夫網(wǎng)絡(luò),聯(lián)合分布是由因子組成的,而不是節(jié)點(diǎn)。一個(gè)因子特征函數(shù)φ(x)被定義為φ(x):x→R+;且一個(gè)因子通常包含由多個(gè)節(jié)點(diǎn)組成的圖,而馬爾科夫網(wǎng)絡(luò)則被定義成最大因子的集合圖。給定一系列變量 X{x1,x2,x3,…,xn},一個(gè)馬爾科夫網(wǎng)絡(luò)被定義為
其中,F(xiàn)是圖中變所屬因子的變量集合,Z為常量,通常使其單位化。文獻(xiàn)[4~5]在馬爾科夫網(wǎng)絡(luò)上作了詳細(xì)論述。本文提到的彈性量化模型包含H,S,T和F。H表示系統(tǒng)在評(píng)價(jià)下的服務(wù)圖;S表示部分系統(tǒng)服務(wù)集,其中服務(wù)的種類分為重要服務(wù)Sc和非重要服務(wù)Snc;T表示服務(wù)狀態(tài)模型,服務(wù)可能有較多不同的狀態(tài);狀態(tài)模型定義了服務(wù)的狀態(tài)種類,同時(shí)定義了如何度量服務(wù)狀態(tài)的指標(biāo);F表示因子,因子能刻畫服務(wù)圖,同時(shí)推算出系統(tǒng)彈性。
服務(wù)圖H能呈現(xiàn)系統(tǒng)中的服務(wù)彼此如何鏈接。一個(gè)服務(wù)圖H(S,L)為一個(gè)無向圖,一系列服務(wù)用點(diǎn)S={S1,S2,…,Sn}來表示,鏈接用邊 L={l1,l2,…,ln}來表示。邊的存在有且僅當(dāng)兩個(gè)服務(wù)之間至少有一個(gè)交易。一個(gè)交易被定義如下:給定兩個(gè)服務(wù)X和Y,若在X和Y之間有一個(gè)信息交換的行為,無論成功或失敗,則稱T(X,Y)為一個(gè)交易。服務(wù)圖是通過分析服務(wù)之間的網(wǎng)絡(luò)交易而建立的。為防止兩個(gè)服務(wù)之間無訪問信息交換,文中在預(yù)期交易的基礎(chǔ)上創(chuàng)建交易。
對(duì)于服務(wù)S,一個(gè)系統(tǒng)的彈性如前所述,通過服務(wù)來量化。本文使用服務(wù)定義為:服務(wù)是為系統(tǒng)中其他項(xiàng)目提供一種功能的軟件。服務(wù)有多種描述不同水平的操作級(jí)別狀態(tài)。例如,失常、一般、可接受、不可接受等。重要服務(wù)Sc對(duì)系統(tǒng)的正常運(yùn)行是較重要的,其通常優(yōu)先于其他服務(wù)。對(duì)于重要服務(wù)的識(shí)別,研究與從業(yè)人員采取了不同的方法[6-7],通常可利用重要服務(wù)系統(tǒng)專家進(jìn)行識(shí)別[8]。
服務(wù)狀態(tài)模型T:量化系統(tǒng)彈性,文中主要考慮個(gè)體服務(wù)的狀態(tài)和其之間的相互依賴關(guān)系。狀態(tài)模型定義了高、中、低3種自適應(yīng)狀態(tài)。較低的自適應(yīng)服務(wù)意味著其不能正確地響應(yīng)環(huán)境變化,較高的自適應(yīng)服務(wù)則變現(xiàn)相反,目前自適應(yīng)指標(biāo)已被廣泛應(yīng)用[9]。在文中,提出了不同于以往的自適應(yīng)指標(biāo)。本文自適應(yīng)指標(biāo)是基于服務(wù)性能屬性,評(píng)估自適應(yīng)可能有一個(gè)或多個(gè)屬性決定。為計(jì)算服務(wù)的自適應(yīng),首先要評(píng)估服務(wù)的性能屬性。屬性通常說明服務(wù)需監(jiān)控的重要方面,用 Pa={pa1,pa2,…,pan}表示一組屬性,其中 pai表示一個(gè)屬性。此外,還設(shè)置了一組參數(shù) W={w1,w2,…,wn},用于表示屬性之間相關(guān)聯(lián)的權(quán)重。自適應(yīng)的度量基于單個(gè)服務(wù)的評(píng)估分?jǐn)?shù)。因此,性能屬性必須聚合到最后得分。在創(chuàng)建匯總得分方面,使屬性值規(guī)范化,然后加權(quán)計(jì)算生成最終得分
假設(shè)一個(gè)服務(wù)有3個(gè)性Pa={2.1,0.8,3.4}能屬性,權(quán)重W={2,1,1},性能得分計(jì)算如下:首先使Pa規(guī)范化,然后結(jié)合相應(yīng)的權(quán)重,計(jì)算出 P=(0.62×2+0.23×1+1×1)/3→0.823。同時(shí),每個(gè)屬性值定期計(jì)算,從而推算出一組性能得分P={p1,p2,…,pn},最終解決單個(gè)服務(wù)的自適應(yīng)狀態(tài)度量。在計(jì)算單個(gè)服務(wù)自適應(yīng)狀態(tài)之前,必須計(jì)算自適應(yīng)得分,其是介于性能得分與服務(wù)自適應(yīng)之間的。文中假設(shè)ai代表在i數(shù)據(jù)點(diǎn)的自適應(yīng)得分,pi-1和pi分別代表在數(shù)據(jù)點(diǎn)i-1和i的性能得分。自適應(yīng)得分ai是由 pi-1和 pi根據(jù)式(2)計(jì)算得出。例如,pi=0.6 和0.60→0.54。通過此種方法計(jì)算出一組單個(gè)服務(wù)的自適應(yīng)得分 A={a1,a2,…,an-1}。
然后根據(jù)A設(shè)置一個(gè)單個(gè)服務(wù)的自適應(yīng)狀態(tài)的閾值,閾值可自動(dòng)或手動(dòng)生成。本文的閾值由系統(tǒng)自動(dòng)生成。評(píng)價(jià)單個(gè)服務(wù)自適應(yīng)狀態(tài)的方程為
其中,t1和t2為自適應(yīng)狀態(tài)的兩個(gè)閾值。
F因子代表服務(wù)圖中最大的集團(tuán)結(jié)構(gòu),其在馬爾科夫網(wǎng)絡(luò)中呈現(xiàn)出條件概率分布。例如,在服務(wù)圖1中,有4個(gè)服務(wù){(diào)A,B,C,D},有3個(gè)最大集團(tuán){A -B,C-B,D-B}。因此,有3個(gè)相關(guān)的條件概率分布因子,用其來計(jì)算出特定系統(tǒng)的聯(lián)合概率分布。
圖1 結(jié)構(gòu)圖
建立彈性量化模型分為6個(gè)步驟,從數(shù)據(jù)的采集到彈性的量化和推理。
步驟1 重要服務(wù)的分配:這是一個(gè)通過系統(tǒng)專家手動(dòng)的過程。
步驟2 數(shù)據(jù)采集:包括在服務(wù)主機(jī)獲取數(shù)據(jù)和在中央存儲(chǔ)器處理數(shù)據(jù)。且每個(gè)服務(wù)生成一組數(shù)據(jù),包括其與其他服務(wù)交易的信息以及自身性能屬性測量。
步驟3 自適應(yīng)計(jì)算:這一過程的計(jì)算遵循服務(wù)狀態(tài)模型T從所在服務(wù)獲取性能屬性值,從而推算出自適應(yīng)得分,進(jìn)而得到自適應(yīng)狀態(tài),該狀態(tài)的評(píng)估是根據(jù)式(3)進(jìn)行,得到結(jié)果后利用馬爾科夫網(wǎng)絡(luò)計(jì)算出其條件概率分布。
步驟4 服務(wù)圖:此圖是基于服務(wù)之間的交易而建立的。在系統(tǒng)中,每個(gè)時(shí)間段一個(gè)服務(wù)與另一個(gè)服務(wù)進(jìn)行交流,其中兩者之間的交易被創(chuàng)建和存儲(chǔ)。這些信息檢索過后生成服務(wù)圖,在服務(wù)圖中,兩個(gè)服務(wù)之間的鏈接表示其間的交易。
步驟5 計(jì)算條件概率分布:首先要確定服務(wù)圖中的因子。如上文所述,因子是根據(jù)服務(wù)所在關(guān)系的最大集團(tuán)得到的。一旦集團(tuán)確立,基于自適應(yīng)狀態(tài)的條件概率分布也會(huì)被計(jì)算出。
步驟6 彈性度量:模型一旦確立,可查詢重要服務(wù),計(jì)算條件概率分布,并最終根據(jù)式(1)計(jì)算出相應(yīng)的系統(tǒng)彈性。
為便于理解,舉例進(jìn)行說明,如圖1所示。該系統(tǒng)包括4個(gè)服務(wù){(diào)A、B、C、D},其中B服務(wù)是重要服務(wù),其連接著其他3個(gè)服務(wù)。該服務(wù)圖中有3個(gè)最大集團(tuán){A-B、C-B、D-B}。假設(shè)系統(tǒng)中的服務(wù)狀態(tài)模型只有兩種狀態(tài)t和f。由于B是重要服務(wù),必須保持在t狀態(tài),系統(tǒng)才能正常運(yùn)行。彈性方程根據(jù)式(1)演化生成
然后,隨機(jī)取值用于表示因子特征函數(shù)的值φ(A,B)={30,5,1,10},φ(C,B)={100,1,1,100},φ(D,B)={1,100,100,1}。其中,每個(gè)值代表對(duì)應(yīng)服務(wù)組的狀態(tài)。例如bf=30,afbt=5,依次類推。這些值被用于計(jì)算每個(gè)因子的條件概率分布。利用上述彈性方程,可計(jì)算出R=(5×1×100)/[(30×100×1)+(5×1×100)]→500/3 500≈0.14。
為評(píng)估該模型,將計(jì)算SCADA系統(tǒng)[10],其控制重要的基礎(chǔ)設(shè)施,如電網(wǎng)、核電站等。在一個(gè)典型的SCADA部署中,MTUs(Master Terminal Units)負(fù)責(zé)管理領(lǐng)域節(jié)點(diǎn)。HMI(Human-Machine Interaction)服務(wù)器對(duì)允許操作者的指令負(fù)責(zé),同時(shí)與領(lǐng)域設(shè)備相互作用。RTUs(Remote Terminal Units)和PLCs(Programmable Logic Controllers)均是控制和監(jiān)測輸電線路的設(shè)備。Historians是用來收集發(fā)生在系統(tǒng)中的操作日志;Relational Databases用于存儲(chǔ)被HMI和MTUs使用的信息。
為更好地理解SCADA系統(tǒng)與其服務(wù)功能,下面使用以下術(shù)語:css01(controller service server 01),cdb01(central database server 01),chs01(central HMI server 01)以及crs01(central remote servers)。有3個(gè)領(lǐng)域網(wǎng)絡(luò) f00,f01和 f02。r01代表 RTU01,sr01代表 sensor 01,p01代表PLC01。因存在PLCs、RTUs和sensors屬于不同領(lǐng)域網(wǎng)絡(luò),服務(wù)名稱被定義為領(lǐng)域網(wǎng)絡(luò)代碼和服務(wù)代碼的組合。例如f01r01表示URTr01與領(lǐng)域網(wǎng)絡(luò)f01的組合。在圖2中,服務(wù)圖表示系統(tǒng)包括43個(gè)節(jié)點(diǎn),為避免逐一說明,文中使用XX表示列舉的兩位數(shù)相同類型的服務(wù)。系統(tǒng)中有3個(gè)MTUs(cssXX),一個(gè)central historian(ch01),一個(gè) relational database(cdb01),一個(gè) HMI server(chsXX),兩個(gè)被用來為遠(yuǎn)程用戶提供訪問的remote servers(crsXX)以及多路RTUs(fXXrXX),sensors(fXXsrXX),PLCs(fXXpXX)。
圖2 SCADA系統(tǒng)
SCADA的仿真基于排隊(duì)理論模型,每個(gè)服務(wù)代表一個(gè)隊(duì)列,且服務(wù)時(shí)間符合指數(shù)分布,領(lǐng)域服務(wù)隊(duì)列大小受限,而HMI,historian和remote servers均定義成隊(duì)列大小不受限制。文中定義了css01和css02兩個(gè)重要服務(wù)。因此,其他服務(wù)為非重要服務(wù)。根據(jù)式(1),彈性方程可表示為
在仿真階段,需要檢測真實(shí)的服務(wù)時(shí)間(AST)屬性。其包括服務(wù)時(shí)間和排隊(duì)時(shí)間,并記錄每次的請(qǐng)求處理。在一個(gè)服務(wù)是另一個(gè)服務(wù)的客戶端情況下,AST是接受提供服務(wù)者響應(yīng)的總時(shí)間,自適應(yīng)指標(biāo)通過計(jì)算這些屬性而得到。服務(wù)圖在圖2中呈現(xiàn),其中包括45個(gè)最大集團(tuán)。因此,45個(gè)因子被用于計(jì)算彈性方程。
表1 重要服務(wù)所在的非重要服務(wù)處在高狀態(tài)水平
表2 重要服務(wù)所在的非重要服務(wù)處在中間狀態(tài)水平
表3 重要服務(wù)所在的非重要服務(wù)處在低狀態(tài)水平
通過文獻(xiàn)[10],仿真在系統(tǒng)運(yùn)行一天的基礎(chǔ)上進(jìn)行,其一共運(yùn)行10次,一個(gè)平均AST可被用到。其中,狀態(tài)閾值為t1=0.35和t2=0.70。用式(5)計(jì)算系統(tǒng)彈性,因css01和css02是獨(dú)立的,根據(jù)已有的非重要服務(wù),計(jì)算表達(dá)式0.005)≈0.28。該結(jié)果顯示系統(tǒng)處在一個(gè)較低的彈性狀水平,主要是因css01處在低水平自適應(yīng)狀態(tài)的概率較大。在表3中,可看到P(css01=low)≈0.72。
同樣可用該模型去發(fā)現(xiàn)系統(tǒng)的其他方面。例如,在表1和表2中,改變非重要服務(wù)的自適應(yīng)狀態(tài),可得到一個(gè)有價(jià)值的結(jié)果。當(dāng)非重要服務(wù)設(shè)置為一個(gè)高自適應(yīng)狀態(tài)水平時(shí),在表1中可看到系統(tǒng)彈性從R=0.28降至R=0.20。該結(jié)果顯示,對(duì)于當(dāng)前數(shù)據(jù)即使非重要服務(wù)的自適應(yīng)能力提高,也未必有助于提高系統(tǒng)的彈性。進(jìn)一步說,這是由于css01處在低狀態(tài)有著較高的概率P(css02=low)≈0.11;另一個(gè)方面,css02也響應(yīng)改變。因此,可通過表1和表2觀察相關(guān)變化。在表2中,改變非重要服務(wù)狀態(tài)水平,從高到中,使得css01和css02處在低狀態(tài)水平是一個(gè)高概率事件。其中,P(css01=low)≈0.96,P(css02=low)≈0.11。由此可發(fā)現(xiàn),css01受到影響最大,故 css01主要負(fù)責(zé)系統(tǒng)彈性。
彈性研究是網(wǎng)絡(luò)和社會(huì)工程研究的熱點(diǎn)與難點(diǎn)問題,而研究其特點(diǎn)和性質(zhì)需盡量結(jié)合特定的領(lǐng)域去分析。通過建立合理的模型對(duì)彈性進(jìn)行評(píng)估與量化,對(duì)預(yù)測和決策有較大幫助。學(xué)者和研究部門提出量化彈性的相應(yīng)指標(biāo),是建立評(píng)估模型的關(guān)鍵。本文主要通過設(shè)定一些服務(wù)屬性指標(biāo),計(jì)算出相應(yīng)的性能得分,在一組性能得分基礎(chǔ)上推出單個(gè)服務(wù)的自適應(yīng)得分和服務(wù)狀態(tài)。并結(jié)合馬爾科夫網(wǎng)絡(luò)模型及彈性函數(shù)方程,評(píng)估整個(gè)網(wǎng)絡(luò)的彈性。本文不僅考慮了單個(gè)服務(wù)的狀態(tài),且結(jié)合了服務(wù)之間的相互依賴關(guān)系。在日后的網(wǎng)絡(luò)彈性度量方面,對(duì)狀態(tài)閾值的設(shè)定和故障的快速查找將是下一步需要深入研究的重點(diǎn)。
[1] 劉密霞.網(wǎng)絡(luò)彈性研究進(jìn)展[J].計(jì)算機(jī)科學(xué),2013,11(40):46-49.
[2]于海生.協(xié)調(diào)與彈性[M].北京:科學(xué)出版社,2012.
[3]Nicol D M,Sanders WH,Trivedi K S.Model- based evaluation:from dependability to security[J].IEEE Transactions on Dependable and Secure Computing,2004,1(1):48 -65.
[4]Kinderman R,Snell K.Markov random fields and their applications[M].Providence,RI,USA:American Mathematical Society,1980.
[5]Koller D,F(xiàn)riedman N.Probabilistic graphical models principles and techniques[M].Cambridge,MA,USA:MIT Press,2009.
[6]Wasserman S,F(xiàn)aust K.Social network analysis:methods and applications[M].Cambridge,UK:Cambridge University Press,1994.
[7]Borgatti S.Identifying sets of key players in a socialnetwork,Comput[J].Mathematic Organization Theory,2006,12(1):21-34.
[8]Heegaard P,Trivedi K B.Survivability quantification of communication services[C].Anchorage,AK,USA:In Proceeding of 38th IEEE Interaction Conference DSN,2008:462 -471.
[9]Reinecke P,Wolter K.BAdaptivity metric and performance for restart strategies in web services reliable messaging[C].New York,NY,USA:In Proc.7th Interaction Workshop Software Perform,2008:201 -212.
[10]Weiss J.Protecting industrial control systems from electronic threats[M].New York,NY,USA:Momentum Press,2010.