王 健 趙國生 趙中楠 李 可
1(哈爾濱理工大學計算機科學與技術學院 哈爾濱 150080)2(哈爾濱師范大學計算機科學與信息工程學院 哈爾濱 150025)
脆弱性是引發(fā)網絡安全問題的重要因素,始終是網絡安全領域研究的熱點之一.隨著人們對網絡需求的日益提高,網絡架構也在發(fā)生著重大變化.一種新型網絡架構——軟件定義網絡(software defined networking, SDN)的出現(xiàn)[1],更好地滿足了人們的需求.它采用控制和轉發(fā)相分離的體系架構,使網絡管理員可以通過軟件實現(xiàn)任意的網絡控制邏輯,而不需要對網絡設備本身進行修改,具備極強的靈活性與開放性.在SDN的靈活性與開放性為網絡管理員及用戶帶來便利的同時,也使網絡引入了更大的安全風險及脆弱性.從控制器通過南向接口傳播蠕蟲病毒給底層交換機[2],由交換機對控制器發(fā)起DDoS攻擊[3],應用層惡意非法用戶篡改身份占用SDN帶寬[4]等,都會造成SDN的癱瘓故障.因此,SDN的安全問題成為制約其普及應用的障礙.
目前,針對SDN脆弱性研究仍處于初級階段.文獻[5]基于SDN的可編程性提出了一種防火墻應用,該應用可以不借助任何硬件即可工作,解決了傳統(tǒng)網絡中不同防火墻間規(guī)則沖突等問題.文獻[6]面向云計算,提出了一種入侵檢測和控制器的聯(lián)動機制相融合的入侵防御方法,該方法解決了傳統(tǒng)的入侵防御系統(tǒng)由于串聯(lián)在網絡環(huán)境中且處理能力有限所造成的網絡擁塞問題.文獻[7-10]結合SDN集中控制與網絡虛擬化的特性,利用SDN網絡解決在傳統(tǒng)網絡中一直困擾網絡管理者的DDos攻擊問題.以上研究者的關注點在通過SDN解決某些在傳統(tǒng)網絡中不能妥善解決的問題,而沒有關注到SDN自身的安全問題.文獻[11]根據STRIDE威脅影響模型對SDN所面臨的脆弱性問題及解決策略進行研究,但是并沒有考慮到SDN內脆弱性的關系及擴散差異問題.文獻[12]則研究SDN內交換機、控制器、通信信道等重要的網絡元件所具有的脆弱性問題及解決對策,雖然該方法考慮到了SDN內各網絡元件之間的差異性,但是并沒有考慮脆弱性在SDN層內及層間的動態(tài)擴散問題.此外,一些研究者則從局部,比如以SDN架構某一層[13-16]或接口[17-18]為切入點來對SDN存在的脆弱性問題進行分析,還有一些研究者則從整體架構層面[19-22]對SDN存在的脆弱性問題進行分析.這些研究都是從局部或外部層面上對SDN面臨的脆弱性問題及解決策略進行分析,并沒有對脆弱性的產生及擴散的內部因素等展開深入研究,難以有效指導SDN的安全設計.文獻[23]針對SDN流表更新一致性的問題及措施展開研究.文獻[24]針對SDN開放性較高及安全問題出現(xiàn)概率較大的問題,對SDN的接入控制進行研究.上述研究面向SDN中的某一具體安全問題進行了探討,但是這些研究結果因針對性較強,不能遷移到其他類型安全問題的分析,即上述研究并沒有系統(tǒng)地分析安全性問題產生的內在原因或者說脆弱性擴散/傳播的內在因素.
綜上所述,研究者更多關注于基于SDN增強傳統(tǒng)網絡的安全性,雖然已有部分研究為引發(fā)SDN安全性問題的內因(脆弱性)及其預測抑制提供了重要的研究基礎,但由于SDN分層架構、集中控制及開放靈活等特性而引入的脆弱性擴散分析仍具有一定局限性:1)已有研究僅面向SDN不同組件,已有安全模型僅針對某一類脆弱點引發(fā)的安全問題,各有其應用與限制范圍,未突破面向SDN脆弱性分析的簡單性和局限性;2)目前對于SDN脆弱性的分析,普遍基于三層兩接口的SDN架構進行分類描述,但在實際SDN安全對抗中,往往是采用跨層模式,已有研究缺乏對SDN脆弱性及其擴散過程的完整描述與分析能力;3)雖然已有少量研究涉及SDN內脆弱性的關系及擴散差異性,但并沒有考慮脆弱性在SDN層內及層間的動態(tài)擴散問題,對于脆弱性系統(tǒng)化地建模與動態(tài)擴散過程分析,尚無實際解決方案.
① 文內不再區(qū)分反應與動作,因“動作”為PEPA中的概念,“反應”為生化網絡環(huán)境下與PEPA中動作相等價的概念,Bio-PEPA為PEPA基礎上融合生化網絡概念發(fā)展而來的新型形式化語言,因此在Bio-PEPA中二者等價,無區(qū)分的必要.
針對已有研究不足,本文借助形式化建模語言Bio-PEPA,對SDN脆弱性擴散問題以層為單位進行建模,通過SDN層內及層間脆弱性擴散的形式化模型,研究SDN內脆弱性在水平(層內)及垂直(層間)2個維度內的擴散本質,抑制脆弱性在SDN內的擴散.本文的主要貢獻有5個方面:
1) 系統(tǒng)分析了SDN內不同組件及SDN各層/接口存在的脆弱性及內在安全交互問題;
2) 基于Bio-PEPA的層次化特性,構建SDN脆弱性擴散過程的形式化模型,提高了對SDN組件間邏輯關系及動態(tài)演化過程的描述能力;
3) 考慮了脆弱性在SDN架構層內及層間2個維度上的擴散機理,適合于SDN脆弱性擴散的特點,以此為基礎系統(tǒng)地分析SDN脆弱性的擴散規(guī)律;
4) 借助Eclipse Bio-PEPA Plugin工具,分別采用ODEs和Gillespie’s Stochastic方法對SDN脆弱性模型進行分析,過程透明客觀,驗證其合理性;
5) 實現(xiàn)對SDN脆弱性的實時監(jiān)控,進一步對擴散因素及趨勢進行分析與預測,使面向SDN脆弱性的管理從被動變?yōu)橹鲃?,并制定有效的抑制策略,提升SDN安全性.
Bio-PEPA是為生化系統(tǒng)的建模和分析而開發(fā)的一種形式化語言.它主要包括描述物種行為的物種組件(S)和描述物種組件間交互的模型組件(P).2種組件描述為[25]:
S∷=(α,k)opS|S+S|C,
(1)
其中,op=↓ | ↑ |⊕|?|⊙;
(2)
此外,還需對Bio-PEPA中的位置(locaction)進行說明,位置構成了靜態(tài)層次結構,適用于SDN這種具有明顯層次結構的性能分析.符號S@L表示由組件S描述的物種位于位置L中.每個位置由“L:sunit,kind”表示.其中L是位置的名稱,是唯一的;s表示大小;unit是與之相關的度量單位;kind代表種類.
為收集系統(tǒng)動態(tài)信息,Bio-PEPA用函數速率fa與動作α相關聯(lián).這個函數代表了關聯(lián)反應的動力學規(guī)律,即反應速率.對于函數速率的定義,Bio-PEPA考慮具有簡單運算的數學表達式和包含常數參數和分量的運算符,所有動力學法則都可按照這種方式進行定義.Bio-PEPA還包括一些預定義函數來表達最常用的動力學法則.因此,函數速率可以通過數學操作符(sk)和預定義函數(sk2)進行定義:
(3)
sk∷=int|float|vachar|sk+sk|sk×sk|sk/sk|sk-
sk|sks k|exp(x)|log(sk)|sin(sk)|cos(sk),
(4)
sk2∷=fMA(sk)|fMM(sk,sk)|fH(sk,sk,int).
(5)
本文涉及的函數速率為mass-action類型,即f_rate∷=fMA(sk),該類型反應①的反應速率僅與反應物濃度相關,即對于任意反應α,函數速率(即反應速率)fα∷=fMA(rα)=rα×反應物濃度,其中r為反應轉化率參數.
Bio-PEPA可以通過多種方法進行求解,如隨機模擬、連續(xù)時間Markov鏈(CTMC)和常微分方程(ODEs)的方式進行求解,同時Bio-PEPA語言有一整套自動處理Bio-PEPA模型的軟件工具支持模型求解.求解Bio-PEPA主要是為了獲得各組件的近似穩(wěn)態(tài)概率,繼續(xù)對系統(tǒng)做進一步的分析.所謂近似穩(wěn)態(tài)概率是指模型穩(wěn)定后,各種類組件的數量占所有組件總量的比例.本文用這個性能參數來評價SDN網絡的脆弱性擴散結果.
SDN是一種集中控制的網絡架構,其空間結構主要包括3個層次:基礎設施層(infra-structure layer)、控制層(control layer)和應用層(application layer).該架構將傳統(tǒng)網絡設備的數據平面和控制平面分離,底層硬件的復雜度得到大大簡化.主張通過集中式的控制器平臺實現(xiàn)網絡的控制,由于軟件控制器的數量遠遠小于傳統(tǒng)網絡中網絡設備的數量,配置和檢查工作均被大大簡化;另外,由于軟件控制器一般由第三方實現(xiàn),使得控制平面脫離了硬件廠商的限制,修改和添加新特性只需在軟件控制器上修改或者添加應用即可,相比于傳統(tǒng)網絡簡單很多.雖然SDN為網絡引進了控制面和數據層分離,具有簡化底層硬件實現(xiàn)、簡化網絡配置過程以及向上層應用提供網絡全局視圖等優(yōu)點,但是,作為一個尚在起步階段的體系結構,SDN在簡化網絡管理、縮短創(chuàng)新周期的同時,也引入了不可低估的安全威脅.
基礎設施層位于SDN網絡架構的最底層,由路由器、物理/虛擬交換機、接入點等網絡設備組成.該層主要負責數據的處理、轉發(fā)和狀態(tài)收集,底層硬件的復雜度得到大大簡化.該層設備是可訪問的,通過南向接口,由控制器管理,對控制器下發(fā)的流規(guī)則完全信任.該層存在的主要脆弱性問題包括:惡意/虛假流規(guī)則注入、DDoS/DoS攻擊、數據泄露、非法訪問、身份假冒和交換機自身的配置缺陷等.此外,基礎設施層還可能面臨著由虛假控制器的無序控制指令導致的交換機流表混亂等威脅.
控制層包含一個特別的網絡組件控制器,按照邏輯集中物理分散的原則進行分布.控制器實質上是一個軟件平臺,主要負責SDN網絡內流規(guī)則的建立和終止.SDN控制器為底層網絡提供可編程接口,其整體管理功能完全托付在SDN控制器,這有利于整個網絡的集中管理.同樣,這也成為SDN的致命弱點.當攻擊者入侵控制器,將有能力控制整個網絡,進而將給SDN帶來難以估量的危害.控制層的典型脆弱性問題是集中式管控帶來的控制器單點故障問題,如針對控制器的DoS/DDoS攻擊及控制器在邏輯/物理上遭到破壞而導致的拒絕服務等故障.此外,控制層還面臨非法訪問、身份假冒、惡意/虛假流規(guī)則注入以及控制器自身的配置缺陷等脆弱性問題.
應用層負責提供一系列的服務和應用,例如入侵檢測系統(tǒng)、入侵防護系統(tǒng)、深度包檢測、負載均衡、安全監(jiān)測、接入控制等Openflow應用程序、安全服務類應用程序、第三方應用程序.一些流規(guī)則還將由上述應用程序制定,并由控制器下發(fā)至相關的交換機和網絡設備.目前,針對應用程序自身的安全型保護機制并不健全,由于基礎設施層的各種交換機和網絡設備對控制器下發(fā)的流規(guī)則完全信任,且不假思索的執(zhí)行,一旦這些參與制定流規(guī)則的應用受到篡改和攻擊,將給SDN帶來難以預估的危害.因此,應用層面臨的脆弱性主要包括:應用程序隱含的惡意代碼、應用程序代碼的惡意篡改、身份假冒、非法訪問以及應用程序自身的配置缺陷等.
針對以上SDN三層結構,將SDN結構及各層包含的脆弱性問題總結如圖1所示:
Fig. 1 SDN architecture and vulnerability analysis圖1 SDN架構及脆弱性分析
脆弱狀態(tài)是指一個已授權狀態(tài),且由該狀態(tài)經過已授權的轉移方式可以到達未授權狀態(tài),而脆弱性是指脆弱狀態(tài)區(qū)別于非脆弱狀態(tài)的特征,通常將這種具有脆弱性的組件稱為脆弱點.造成系統(tǒng)脆弱性的原因具有多種類型,傳統(tǒng)上主要包括操作系統(tǒng)的設計缺陷、軟件bug等.此外,連接性、可疑用戶輸入、不合理信任關系、間諜或者惡意軟件等因素也會引入額外的脆弱點.
根據SDN結構及對SDN脆弱性的分析,我們分別以層為單位,通過對底層網絡設備、控制器、上層應用3種類型組件在垂直及水平2個維度內的運行變化,來分析脆弱性層內和層間的擴散情況.為了描述脆弱性擴散的過程,需要定義組件的運行狀態(tài),因此將SDN組件運行狀態(tài)抽象為以下5種.
P:該狀態(tài)表示節(jié)點具有潛在的脆弱性,在其他節(jié)點的作用下,可能被滲透而具有脆弱性.
U:該狀態(tài)表示節(jié)點已經表現(xiàn)出脆弱性,但尚未被檢測出.
D:該狀態(tài)表示節(jié)點已經表現(xiàn)出脆弱性,且已經被檢測出.
F:該狀態(tài)表示節(jié)點中的脆弱性未得到及時處理,節(jié)點出現(xiàn)故障或失效.
M:該狀態(tài)表示經減緩、修復等操作,節(jié)點脆弱性得到減緩.
其中,{U,D,F}歸類為脆弱態(tài)集合,網絡的脆弱性主要由這3種狀態(tài)的組件數量影響,因此本文用脆弱態(tài)組件的穩(wěn)態(tài)概率(即脆弱態(tài)組件占所有組件的比例)來衡量SDN脆弱性的擴散結果.
Bio-PEPA起初是針對生化網絡建模提出的,SDN網絡與生化網絡有相似之處,它的靜態(tài)分層等特性在研究SDN脆弱性的擴散建模中仍然很具適用性,但需要針對應用環(huán)境進行相應變換.在SDN網絡中,依據Bio-PEPA定義的語法語義,可進行基本抽象:
1) 將SDN中的3個層(Layer)抽象為Bio-PEPA模型中的位置,設置如下:
location1:size=1,type=compartment;
location2:size=1,type=compartment;
location3:size=1,type=compartment.
2) 5種SDN組件狀態(tài)對應于Bio-PEPA模型中的物種組件(S),P,U,D,F,M狀態(tài)的節(jié)點,在Bio-PEPA模型中分別被稱作潛在態(tài)組件、未檢測態(tài)組件、檢測態(tài)組件、故障態(tài)組件和修復態(tài)組件.
3) SDN網絡中,任意2種組件之間的一種交互變化,對應于Bio-PEPA模型中的一種動作類型α,其動態(tài)性對應于Bio-PEPA模型中的函數速率fα.
SDN組件之間的交互變化可抽象為5個類型的反應,簡述為連接反應、檢測反應、異常反應、修復反應和缺陷反應,具體內容將在3.2,3.3節(jié)詳述.
Connetion*={Connection1_i,Connection2_i,
Connection3_i,Connection1_i_j,
Connection2_i_j,Connection3_i_j};
Detection*={Detection_i};
Abnormity*={Abnormity1_i,Abnormity2_i};
Mitigation*={Mitigation1_i,Mitigation2_i};
Defect*={Defect_i}.
4) SDN脆弱性擴散模型由5種組件間的合作操作進行定義.
若模型內有U,D,F三種狀態(tài)的脆弱點存在,且各反應轉化率參數不為0,即會觸發(fā)脆弱性擴散.連接反應轉化率使得U,D,F(xiàn)狀態(tài)下的脆弱點與P狀態(tài)的脆弱點反應,使P狀態(tài)組件表現(xiàn)出脆弱性,完成脆弱性由U,D,F(xiàn)向P的擴散.U,D組件由于異常反應轉化率不為0,脆弱態(tài)會近一步演化為F狀態(tài).
層內擴散是指同層內組件間脆弱性的擴散.例如,在基礎設施層,攻擊者可能會嘗試將一些惡意的流規(guī)則插入到流表中,導致整個安全機制受到損害.此外,大量無用的流規(guī)則即流表洪泛攻擊,也會引發(fā)基礎設施層主機無法存貯正常的流規(guī)則,導致脆弱性在基礎設施層內進行擴散.在控制層,多控制器協(xié)同工作時,若網絡中存在延遲且得不到妥善處理時,就難以保證轉發(fā)規(guī)則的一致性,進而造成網絡面臨環(huán)路或者沖突.同時,東西向接口的不安全性,使得一些脆弱性在控制器間進行通信時得以迅速擴散.在應用層,由于缺乏身份認證授權等管理,使得非法應用可以接入到網絡中,可以避開安全規(guī)則的審計.此外,多個應用共享數據流,同時處理一個數據流的時候就會造成規(guī)則的沖突,導致脆弱性在應用層內進行擴散.
為便于描述,將基礎設施層、控制層、應用層分別記為:Layer_1,Layer_2,Layer_3,即Layer_i∈ {Layer_1,Layer_2,Layer_3}.因此,基于Bio-PEPA定義的層內脆弱性擴散規(guī)則描述如下:
[horizon]
U@Layer_i+P@Layer_i→U:P@Layer_i+U@Layer_i;
U:P@Layer_i→U@Layer_i;
D@Layer_i+P@Layer_i→D:P@Layer_i+D@Layer_i;
D:P@Layer_i→U@Layer_i;
F@Layer_i+P@Layer_i→F:P@Layer_i+F@Layer_i;
F:P@Layer_i→U@Layer_i;
U@Layer_i→D@Layer_i;
U@Layer_i→F@Layer_i;
D@Layer_i→F@Layer_i;
D@Layer_i→M@Layer_i;
F@Layer_i→M@Layer_i;
M@Layer_i→P@Layer_i.
在層內脆弱性擴散模型中,設每種反應的轉化率為rα,α為層內擴散.用[P@Layer_i],[U@Layer_i],[D@Layer_i],[F@Layer_i]及[M@Layer_i]分別表示第i層中組件P,U,D,F(xiàn),M的初始個數.由Bio-PEPA的Mass-Action語義規(guī)則,則函數速率分別滿足:
fConnection1_i=rConnection1_i×[U@Layer_i]×
[P@Layer_i];
fConversion1_i=rConversion1_i×[U:P@Layer_i];
fConnection2_i=rConnection2_i×[D@Layer_i]×
[P@Layer_i];
fConversion2_i=rConversion2_i×[D:P@Layer_i];
fConnection3_i=rConnection3_i×[F@Layer_i]×
[P@Layer_i];
fConversion3_i=rConversion3_i×[F:P@Layer_i];
fDetection_i=rDetection_i×[U@Layer_i];
fAbnormity1_i=rAbnormity1_i×[U@Layer_i];
fAbnormity2_i=rAbnormity2_i×[D@Layer_i];
fMitigation1_i=rMitigation1_i×[D@Layer_i];
fMitigation2_i=rMitigation2_i×[F@Layer_i];
fDefect_i=rDefect_i×[M@Layer_i].
脆弱性擴散也會發(fā)生在相鄰2個垂直層之間,與層內擴散不同的是,層間擴散會將某層內的脆弱性通過南北向接口傳播至相鄰層的不同類型組件上.同理,基于Bio-PEPA定義的層間脆弱性擴散規(guī)則描述如下:
[vertical]
P@Layer_i+U@Layer_j→U:P@Layer_i+U@Layer_j;
U:P@Layer_i→U@Layer_i;
P@Layer_i+D@Layer_j→D:P@Layer_i+D@Layer_j;
D:P@Layer_i→U@Layer_i;
P@Layer_i+F@Layer_j→F:P@Layer_i+F@Layer_j;
F:P@Layer_i→U@Layer_i.
在vertical系列規(guī)則中,Layer_j表示與Layer_i相鄰的層.因此,j∈{i+1,i-1}∩{1,2,3}.結合圖2及SDN各層間脆弱性擴散原理,對SDN層間擴散規(guī)則vertical進行闡述.
Fig. 2 Vulnerability propagation between layers圖2 層間脆弱性擴散
1) 基礎設施層→控制層
攻擊者首先侵入SDN中的部分主機,使其表現(xiàn)為U@Layer_1,D@Layer_1或者F@Layer_1狀態(tài),并通過其向網絡中輸入惡意請求.如:大量偽造的無效網絡流量請求(DoS攻擊),從而觸發(fā)SDN交換機的轉發(fā)流規(guī)則請求操作,導致大量Packet-In流信息同時涌向P@Layer_2狀態(tài)的控制器.使控制器服務能力達到上限,不能響應正常的流請求,使得控制器服務能力癱瘓,表現(xiàn)為U@Layer_2狀態(tài),使脆弱性由基礎設施層通過Packet-In信息向控制層進行擴散.
2) 控制層→基礎設施層
當攻擊者侵入控制器并使其表現(xiàn)為U@Layer_2,D@Layer_2或者F@Layer_2狀態(tài)時,控制器會產生一些攜帶脆弱性的非法流規(guī)則,并且通過Controller-to-switch信息下發(fā)到基礎設施層的網絡設備.由于基礎設施層的網絡設備對控制器下發(fā)的流規(guī)則完全信任,因此,基礎設施層的部分設備表現(xiàn)為P@Layer_1狀態(tài).網絡設備很容易因執(zhí)行控制器下發(fā)的非法流規(guī)則而表現(xiàn)出脆弱性,使脆弱性從控制層通過Controller-to-switch信息傳播至基礎設施層.
3) 控制層→應用層
應用層的應用行為由來自控制器的事件或者外部輸入所驅動.當與應用相連的控制器被攻擊而表現(xiàn)為U@Layer_2,D@Layer_2或者F@Layer_2狀態(tài)時,P@Layer_3狀態(tài)的應用有可能由于控制器上傳的非法事件而感染脆弱性,進而表現(xiàn)為U@Layer_3狀態(tài),脆弱性由控制層通過非法事件擴散到應用層.
4) 應用層→控制層
在應用層中,惡意的應用程序可以很容易地被開發(fā),已授權的合法應用程序也可能被篡改,從而使某些應用表現(xiàn)為U@Layer_3,D@Layer_3或者F@Layer_3狀態(tài).當非法應用程序向控制層的控制器下發(fā)流表信息時,應用層的脆弱性就通過流規(guī)則與控制器相連,使控制器不能正常工作,將脆弱性由應用層通過非法流規(guī)則擴散至控制層.
在層間脆弱性擴散模型中,設每種反應的轉化率參數分別為rConnection1_i_j,rConnection2_i_j,rConnection3_i_j.用[P@Layer_i],[U@Layer_j],[D@Layer_j],[F@Layer_j]分別表示第i層中組件P及第j層中組件U,D,F(xiàn)的初始個數.由Bio-PEPA的Mass-Action語義規(guī)則,則此時函數速率分別滿足:
fConnection1_i_j=rConnection1_i_j×[P@Layer_i]×
[U@Layer_j];
fConversion1_i_j=rConversion1_i_j×[U:P@Layer_i];
fConnection2_i_j=rConnection2_i_j×
[P@Layer_i]×[D@Layer_j];
fConversion2_i_j=rConversion2_i_j×[D:P@Layer_i];
fConnection3_i_j=rConnection3_i_j×
[P@Layer_i]×[F@Layer_j];
fConversion3_i_j=rConversion3_i_j×[F:P@Layer_i].
本文將SDN網絡以層為單位,分析了脆弱性在水平(層內)及垂直(層間)2個維度的擴散情況.綜合以上層內及層間分析,可將SDN脆弱性擴散狀態(tài)轉移圖概括為圖3所示:
Fig. 3 State transition diagram of vulnerability propagation圖3 脆弱性擴散狀態(tài)轉移圖
基于此,可用Bio-PEPA對狀態(tài)轉換即SDN脆弱性擴散過程進行形式化建模,部分關鍵描述如下:
在模型組件表述中,組件后面標注的數字代表對應組件的初始數量.具體地,模型組件描述如下:
利用該模型可以對SDN內部各層、層間脆弱性及其在水平、垂直2個維度內的擴散過程進行描述和分析.需要說明的是,在節(jié)點有防護的情況下,可以通過增大檢測反應轉化率或者提高修復反應轉化率來實現(xiàn),進而降低脆弱性在網絡中的擴散,表現(xiàn)為脆弱態(tài)組件數量減少.另一方面,由于內外條件變化等,脆弱性擴散后在SDN不同層內及層間對其他節(jié)點帶來的影響具體表現(xiàn)不同,在模型中統(tǒng)一用脆弱態(tài)組件的數量進行衡量.
針對本文所構建的脆弱性擴散模型,我們分別對SDN架構中的3個層次進行了層內和層間脆弱性擴散行為的形式化建模與分析.為了進一步準確分析驗證本文提出模型的合理性,本文選用Eclipse Bio-PEPA Plugin工具包,分別采用ODEs方法和Gillespie’s Stochastic方法進行測試.本實驗設定脆弱性組件總數為一個常數,由3 000個個體組成,3個層內組件數量(P,U,D,F,M)的初始值分別為(1 000,0,0,0,0),(600,300,100,0,0),(1 000,0,0,0,0).觀察時間取24個時間單位,模型的參數取值如表1所示,Gillespie’s Stochastic方法選取97個隨機點.
Table 1 Main Parameter Values of Model表1 模型主要參數取值表
采用Gillespie’s Stochastic算法的脆弱性擴散隨機仿真實驗和脆弱性擴散的ODE仿真結果分別如圖4和圖5所示.對比2圖可以發(fā)現(xiàn),2種仿真方法脆弱性的擴散趨勢及結果大致相同.從圖3中可以看出,系統(tǒng)中P組件的數量在反應開始后迅速減少,U,D組件數量迅速上升.這是由于此時系統(tǒng)中P組件數量最多,濃度最大,此時Connection系列反應占主導,迅速消耗P組件,產生U,D,F(xiàn)三種組件.對應于實際SDN網絡中脆弱性組件U,D與潛在脆弱性組件P在連接反應的作用下,使脆弱性在SDN網絡內迅速擴散.此外,從圖3中還可以看出,U@Layer_1,U@Layer_3從0開始增長,P@Layer_1,P@Layer_3從1 000開始下降,說明此時發(fā)生了層間脆弱性擴散現(xiàn)象.脆弱性由Layer_2層(控制層)的U@Layer_2,D@Layer_2,F(xiàn)@Layer_2組件向Layer_1層(基礎設施層)、Layer_3層(應用層)進行擴散,部分P組件轉化為U組件,進而在Layer_1層、Layer_3層內進行層內擴散.U組件數量在0~2個時間單位之間達到峰值并開始出現(xiàn)下降趨勢,D組件數量仍在上升.說明此時U組件濃度達到最大,此時Detection反應占據主導,消耗U組件,生成D組件.對應于擴散模型中的Detection過程,脆弱性組件U被檢測到脆弱態(tài),進而表現(xiàn)為D狀態(tài).D組件數量在2~4個時間單位之間達到峰值并出現(xiàn)下降趨勢,F(xiàn)組件數量在8~9個時間單位之間達到峰值并出現(xiàn)下降趨勢,而M組件仍處在上升階段.這是由于在這2個時間點,D,F(xiàn)組件濃度達到最大,Mitigation系列反應占據主導,消耗D,F(xiàn)組件,生成M組件.對應于擴散模型中的Mitigation過程,表現(xiàn)出脆弱性D,F(xiàn)的組件通過一系列修復手段,脆弱性得到緩解,轉變?yōu)镸狀態(tài).最終,P,U,D,F(xiàn),M組件數量趨于穩(wěn)定,達到一種擴散平衡態(tài).因此,本文基于Bio-PEPA構建的SDN脆弱性擴散形式化模型可以正確反映SDN網絡中的脆弱性擴散問題.
Fig. 4 Random simulation results for vulnerability propagation of SDN圖4 SDN脆弱性擴散隨機仿真結果
Fig. 5 ODE simulation results for vulnerability propagation of SDN圖5 SDN脆弱性擴散ODE仿真結果
通過對擴散機制的分析,本文著重研究連接轉化率參數rConnection*、檢測反應轉化率參數rDetection*、修復反應轉化率參數rMitigation*三個因素對SDN網絡脆弱性擴散的影響.
1) 潛在態(tài)組件數量對脆弱性擴散的影響
Fig. 6 Changes of vulnerable components in SDN圖6 SDN內脆弱態(tài)組件變化情況
潛在態(tài)組件的存在為SDN內脆弱性的擴散提供了可能,脆弱態(tài)組件可通過連接反應,使?jié)撛趹B(tài)組件感染脆弱性,使脆弱性在網絡內快速擴散.因此,潛在態(tài)組件的數量是影響SDN網絡內脆弱性擴散的一個重要因素.針對該因素對脆弱性擴散的影響,本部分實驗采用改變基礎設施層和應用層內潛在態(tài)組件數量的方式,以擴散平衡狀態(tài)下脆弱態(tài)組件的穩(wěn)態(tài)概率作為衡量指標進行實驗.試驗中基礎設施層和應用層內潛在態(tài)組件數量分別為1 000,100,10,其他參數不變,運行時間為50個時間單位,SDN網絡內脆弱態(tài)組件變化情況如圖6所示.
此外,保持其他變量不變,使?jié)撛趹B(tài)組件數量在0到1 000之間隨機取7個值,計算擴散平衡狀態(tài)下脆弱態(tài)組件的穩(wěn)態(tài)概率,結果如表2所示.由表2可以看出,在SDN內隨著基礎設施層和應用層潛在態(tài)組件的減少,SDN脆弱性擴散平衡狀態(tài)下脆弱態(tài)組件的穩(wěn)態(tài)概率逐漸減小.這是由于潛在態(tài)組件數量減少,脆弱態(tài)組件不能或者更難尋找到感染的受體,因而脆弱性的擴散受到抑制.因此,可以通過減少潛在態(tài)組件的數量來抑制SDN網絡內脆弱性的擴散.
Table 2 Steady-State Probability of Vulnerable Components
2) 連接轉化率對脆弱性擴散的影響
連接反應擴散方式是層內脆弱性擴散及層間脆弱性擴散的主要反應方式之一,主要由連接轉化率參數rConnection*進行控制.層內連接轉化率參數rConnection1_i,rConnection2_i,rConnection3_i表示層內處于U,D,F(xiàn)狀態(tài)的組件對P狀態(tài)組件狀態(tài)轉化的影響,層間連接轉化率參數rConnection1_i_j,rConnection2_i_j,rConnection1_i_j則表示SDN某層內處于U,D,F(xiàn)狀態(tài)的組件對直接相鄰層內P狀態(tài)組件狀態(tài)轉化的影響.為了分析連接轉化率參數rConnection*對脆弱性擴散的影響,下面將以穩(wěn)態(tài)概率作為評估指標,在整個SDN網絡層面,考察連接轉化率參數rConnection*取值水平對脆弱性擴散的影響.分別對層內及層間連接轉化參數從0.1到1之間10等分均勻取值,整個網絡范圍內穩(wěn)態(tài)概率變化如圖7所示.
Fig. 7 The influence of connection conversion rate on SDN vulnerability圖7 連接轉化率參數對SDN脆弱性的影響
從圖7中可以看出,隨著連接轉化率參數逐漸增大,SDN網絡的脆弱性穩(wěn)態(tài)概率值逐漸增大.這是由于隨著連接轉化率參數的增大,層內及層間節(jié)點交互更為緊密,發(fā)生脆弱性傳播的幾率加大,導致在SDN網絡達到平衡狀態(tài)時,脆弱態(tài)組件數量增多.因此,可以得出連接轉化率參數與脆弱性擴散速率正相關,因而為了抑制SDN網絡內脆弱性的傳播需降低連接轉化率參數.
3) 檢測轉化率參數對脆弱性擴散的影響
檢測反應可以及時發(fā)現(xiàn)SDN網絡中存在的U狀態(tài)組件將其轉化成D狀態(tài)組件,并進行修復等操作,因此檢測反應轉化率參數對脆弱性擴散有一定影響.本部分實驗以檢測參數取值0.3為基準,分別取基準值的1/3,1/2,1,2,3倍,即0.1,0.15,0.3,0.6,0.9進行對比試驗,采用脆弱性穩(wěn)態(tài)概率作為評估指標,衡量網絡的脆弱狀況.不同檢測參數取值下,SDN網絡內脆弱態(tài)集合內組件數量情況如圖8所示,脆弱性穩(wěn)態(tài)概率如圖9所示.
Fig. 8 The influence of detection conversion rate on the number of components in the vulnerable state set圖8 檢測轉化率參數對脆弱態(tài)集合內組件數量的影響
Fig. 9 The influence of detection conversion rate on the steady-state probability of vulnerability圖9 檢測轉化率參數對脆弱性穩(wěn)態(tài)概率的影響
結合兩圖可以看出,隨著檢測轉化率參數的增大,脆弱態(tài)集合內組件數量和呈下降趨勢.這是由于隨著檢測轉化率參數的增大,更多的U狀態(tài)組件可被檢測出脆弱性進而轉化為D狀態(tài)組件,D狀態(tài)組件又經Mitigation反應轉變?yōu)镸狀態(tài)組件,也就是說組件狀態(tài)經歷了U→D→M的過程,進而遷移出脆弱態(tài)集合,使脆弱態(tài)集合內組件數量減少,使SDN脆弱性降低.因而,可以通過增大檢測轉化率參數來抑制脆弱性擴散.
4) 修復轉化率參數對脆弱性擴散的影響
SDN網絡內部,修復能力的存在可以有效地降低系統(tǒng)內D,F(xiàn)組件的數量,緩解網絡的脆弱性.本部分實驗以穩(wěn)態(tài)概率作為SDN脆弱性的衡量指標,對修復轉化率參數rMitigation1*和rMitigation2*在[0,1]之間每0.1間隔隨機取值,其他參數完全相同.通過對比實驗,研究修復轉化率參數對SDN網絡內脆弱性擴散的影響,實驗結果如圖10所示:
Fig. 10 The influence of repairing conversion rate on SDN vulnerability圖10 修復轉化率參數對SDN脆弱性的影響
從圖10中可以看出,隨著修復轉化率參數的增大,穩(wěn)態(tài)概率值逐漸變小,說明此時,網絡內脆弱態(tài)集合內組件總數量逐漸變小,SDN網絡脆弱性降低.同時,觀察左右2個側面圖,我們可以發(fā)現(xiàn)rMitigation2*對網絡脆弱性的擴散影響較大,即脆弱性在不同脆弱態(tài)組件間的擴散具有差異性.這是由于在脆弱性狀態(tài)循環(huán)中,如圖3所示,當rMitigation1*較小時,部分D狀態(tài)組件還可以通過Mitigation2*系列反應轉化為F狀態(tài)組件,F(xiàn)狀態(tài)組件經過Mitigation2*系列反應轉變?yōu)镸組件,從而遷出脆弱態(tài)集合;當rMitigation2*較小時,F(xiàn)狀態(tài)組件沒有其他反應途徑進行狀態(tài)轉化,導致大量的F組件滯留在脆弱態(tài)集合中,無法轉化為非脆弱態(tài)的組件,使網絡脆弱性較高.因此,可以得出修復轉化率參數與脆弱性擴散速率負相關,因而為了抑制SDN網絡內脆弱性的傳播需提高修復轉化率參數,尤其是Mitigation2*轉化率參數.
綜合以上分析,可以看出本文構建的形式化模型對SDN脆弱性擴散狀態(tài)間的邏輯關系及動態(tài)變化具有較強的描述能力,且與仿真分析結果基本相符,能夠正確地反映出不同條件下SDN脆弱性的變化趨勢.可以通過降低連接轉化率,提升檢測轉化率及修復轉化率等措施抑制SDN脆弱性的擴散.具體地,針對SDN存在的可能脆弱點,可以通過設計面向SDN的可靠控制器,制定授權認證及安全約束,擴展安全通信協(xié)議,采用連接遷移、流量遷移、執(zhí)行觸發(fā)、主動流規(guī)則檢測與分析、擬態(tài)防御、應用隔離及彈性策略、容錯機制、探測防御、安全加固等技術與防御方法,多維度提高 SDN安全性.
本文采用Bio-PEPA對SDN網絡的脆弱性擴散問題進行了形式化建模,針對SDN具有明顯分層的網絡架構,分別就水平垂直2個維度內的脆弱性的擴散的本質問題進行了研究.本文對構建的Bio-PEPA形式化模型分別采用ODEs方法和Gillespie’s Stochastic方法進行了測試,實驗結果基本相符,反映本文所構建SDN脆弱性模型的合理性.此外,本文還對影響SDN脆弱性擴散的因素進行了分析,通過仿真實驗證明,潛在態(tài)組件數量、連接轉化率參數、檢測轉化率參數、修復轉化率參數都對SDN脆弱性的擴散具有影響,因此,本文對SDN網絡的構建具有一定指導性意義.在下一步研究工作中,將面向SDN的可擴展性,對其脆弱性擴散模型展開深入研究.