欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種面向軟件定義網(wǎng)絡的控制器安全性定量分析方法與流程

文檔序號:12123275閱讀:434來源:國知局
一種面向軟件定義網(wǎng)絡的控制器安全性定量分析方法與流程

本發(fā)明涉及一種開源計算機軟件安全性定量分析方法,特別是涉及一種面向軟件定義網(wǎng)絡的控制器安全性定量分析方法。



背景技術(shù):

軟件定義網(wǎng)絡(Software Defined Network,SDN)的控制轉(zhuǎn)發(fā)互相分離、虛擬化、動態(tài)可編程三大優(yōu)勢使其成為解決當前網(wǎng)絡難題的首選。當前開源及商業(yè)控制器普遍基于模塊化設計,使用虛擬化的方法實現(xiàn),不僅控制器的基本架構(gòu)有所差異,并且由于實現(xiàn)虛擬化控制器所用的編程語言不同,如NOX使用C++實現(xiàn),POX、Ryu使用Python,F(xiàn)loodlight和OpenDaylight使用Java等,導致不同類型控制器在性能、安全性上存在較大差異。如Floodlight控制器的北向REST API實現(xiàn)中未對資源加以認證保護導致攻擊者可以利用該漏洞實現(xiàn)對控制器的越權(quán)訪問。攻擊者通過對控制器流表的篡改,可以造成全網(wǎng)的拒絕服務,或者將流表目的地址修改為特定的目標,實現(xiàn)目標的信息竊取等。

因此如何對已有的控制器進行安全性度量比較,選擇符合用戶安全需求的控制器成為SDN組網(wǎng)的重要前提。當前針對控制器的安全性分析主要通過定性的方法進行,如分析控制器與交換機之間是否采用認證和加密算法,分析控制器北向REST API訪問是否采用訪問控制機制,分析控制器應用程序執(zhí)行環(huán)境是否采用沙箱隔離機制等等。但是,上述方法僅能夠定性分析控制器所采用的安全機制,無法比較不同安全機制下控制器的安全性。此外,由于控制器和上述安全機制均是通過編程實現(xiàn)的軟件產(chǎn)品,上述方法也無法確定安全機制在代碼實現(xiàn)中是否存在脆弱性。

因此對不同控制器的安全性進行比較仍然可以采用傳統(tǒng)的軟件安全性比較方法,如使用軟件漏洞檢測的方法,比如源碼審計工具Coverity、動態(tài)漏洞檢測工具BitBlaze等,通過檢測不同控制器的漏洞數(shù)目和漏洞威脅等級,比較控制器之間的安全性。但是該方法存在以下兩個方面的不足:(1)同一個漏洞在不同的攻擊者手中可能產(chǎn)生不同的攻擊效果,漏洞威脅等級無法準確評估;(2)漏洞數(shù)目與漏洞威脅之間無法建立對應的量化關(guān)系,如100個中等威脅等級的漏洞與1個高危等級的漏洞無法實現(xiàn)定性和定量的比較。因此無法通過上述依賴于漏洞檢測的方法對待測軟件進行準確的安全性評估。

對此微軟Michael提出使用相對攻擊面熵值計算法(Relative Attack Surface Quotient,RASQ)度量系統(tǒng)的安全性,具體做法是:首先根據(jù)經(jīng)驗確定Windows中常被用于攻擊的進程、服務等,如open sockets、動態(tài)web頁面、用戶賬戶管理;Michael定義20個攻擊向量,然后為每個攻擊向量中的元素根據(jù)經(jīng)驗賦予一定的權(quán)值;最后對每個攻擊向量計算元素加權(quán)值,將所有攻擊向量權(quán)值累加即可得到系統(tǒng)安全性的量化值。

由于RASQ的方法在選擇攻擊向量和對攻擊向量進行賦值時過度的依賴經(jīng)驗,并且僅能用于操作系統(tǒng)安全性度量中,因此Manadhata等對RASQ進行改進,提出攻擊面的量化度量方法。與RASQ方法相比,該方法在攻擊向量的選擇和攻擊向量賦值方面不再依賴經(jīng)驗,度量結(jié)果更加的客觀,通用性更強。但是上述方法根據(jù)操作系統(tǒng)的安全機制度量應用軟件的脆弱性,未對應用軟件本身的安全性進行量化度量,并且上述方法沒有針對攻擊類型進行分析,實用性和指導性有所欠缺,如某種網(wǎng)絡環(huán)境中需要控制器具備很強的抗拒絕服務攻擊的能力,那么用上述方法無法完成安全性度量。



技術(shù)實現(xiàn)要素:

本發(fā)明克服了現(xiàn)有技術(shù)中,網(wǎng)絡環(huán)境中控制器的實用性和指導性有所欠缺的問題,提供一種度量結(jié)果更加客觀,通用性更強的面向軟件定義網(wǎng)絡的控制器安全性定量分析方法。

本發(fā)明的技術(shù)解決方案是,提供一種具有以下步驟的面向軟件定義網(wǎng)絡的控制器安全性定量分析方法:包括下述步驟:

1)對控制器源碼進行預處理,篩選出需要進行量化分析的代碼模塊;

2)根據(jù)1)中代碼模塊生成所有入口點和出口點函數(shù)的調(diào)用圖,從圖中得出每個入口點和出口點的前置和后置序列數(shù);

3)將源碼插裝編譯并執(zhí)行,監(jiān)控執(zhí)行過程,根據(jù)2)中生成的調(diào)用圖得出協(xié)議接口、數(shù)據(jù)項資源的前置和后置序列數(shù);

4)根據(jù)2)和3)中的前置和后置序列數(shù),計算入口點、出口點、協(xié)議接口,以及數(shù)據(jù)項資源的TE值;

5)對4)中得到的TE值加權(quán)計算得到控制器脆弱集的TE值。

在1)中保被測控制器是開源的,根據(jù)被測對象的主進程、核心組件或者根據(jù)定量分析的目標選擇代碼模塊進行后續(xù)的分析,定量分析的目標為針對特定組件進行定量分析。

在2)中,調(diào)用圖使用第三方IDE環(huán)境,如PyChar、Eclipse手動構(gòu)建,或者通過編寫腳本程序,自動搜索完成;入口點包含直接入口點和間接入口點,出口點包含直接出口點和間接出口點。

在3)中,需要修改或者在源碼特定位置添加監(jiān)控代碼,編譯執(zhí)行后,動態(tài)跟蹤控制器執(zhí)行過程中使用的協(xié)議接口和訪問的數(shù)據(jù)資源;協(xié)議接口是南向協(xié)議所采用的通信接口,數(shù)據(jù)資源是指全網(wǎng)拓撲結(jié)構(gòu)和流表。在4)和5)中,TE值是根據(jù)后置序列數(shù)與前置序列數(shù)的比值得到的,并且加權(quán)計算脆弱集的TE值時,將入口點、出口點、協(xié)議接口、數(shù)據(jù)資源的權(quán)值均設為1。

與現(xiàn)有技術(shù)相比,本發(fā)明面向軟件定義網(wǎng)絡的控制器安全性定量分析方法具有以下優(yōu)點:本發(fā)明提出一種基于Threat/Effort模型(以下簡稱TE模型)的控制器脆弱性定量分析方法,與RASQ和改進的RASQ方法相比,TE模型不依賴于控制器底層操作系統(tǒng)的安全機制,而是從控制器的代碼實現(xiàn)定量分析控制器的脆弱性。TE模型對被測對象的入口和出口進行形式化建模,定義控制器資源的前置和后置條件,根據(jù)條件量化計算每個資源的TE值,加權(quán)得出控制器的脆弱性量化值。同時本發(fā)明引入攻擊指數(shù),在量化評估中計算控制器的攻擊指數(shù)可以分析不同控制器的抗拒絕服務攻擊的能力。

本發(fā)明面向軟件定義網(wǎng)絡的控制器安全性定量分析方法,根據(jù)控制器的脆弱集模型,從控制器的代碼實現(xiàn)定量分析控制器的脆弱性。與當前定性分析的方法相比,該方法可以得到量化的具體值,評價標準更加詳實可靠。

本發(fā)明面向軟件定義網(wǎng)絡的控制器安全性定量分析方法,不僅可以分析不同類型控制器的安全性,對同一控制器的不同版本也可以提供量化的分析,可以同時為控制器的選擇和控制器的安全開發(fā)提供參考。

附圖說明

圖1是本發(fā)明面向軟件定義網(wǎng)絡的控制器安全性定量分析方法中控制器脆弱集量化度量的流程圖;

圖2是本發(fā)明面向軟件定義網(wǎng)絡的控制器安全性定量分析方法中出/入口點TE值計算流程圖;

圖3是本發(fā)明面向軟件定義網(wǎng)絡的控制器安全性定量分析方法中協(xié)議接口、數(shù)據(jù)資源TE值計算流程圖;

圖4是本發(fā)明面向軟件定義網(wǎng)絡的控制器安全性定量分析方法中直接入口點函數(shù)與數(shù)據(jù)流向關(guān)系圖;

圖5是本發(fā)明面向軟件定義網(wǎng)絡的控制器安全性定量分析方法中間接入口點函數(shù)與數(shù)據(jù)流向關(guān)系圖。

具體實施方式

下面結(jié)合附圖和具體實施方式對本發(fā)明面向軟件定義網(wǎng)絡的控制器安全性定量分析方法作進一步說明:

實施例一:參見圖1,本發(fā)明具體包括下述步驟:

1)對控制器源碼進行預處理,篩選出需要進行量化分析的代碼模塊;

2)根據(jù)1)中代碼模塊生成所有入口點和出口點函數(shù)的調(diào)用圖,從圖中得出每個入口點和出口點的前置和后置序列數(shù);

3)將源碼插裝編譯并執(zhí)行,監(jiān)控執(zhí)行過程,根據(jù)2)中生成的調(diào)用圖得出協(xié)議接口、數(shù)據(jù)項資源的前置和后置序列數(shù);

4)根據(jù)2)和3)中的前置和后置序列數(shù),計算入口點、出口點、協(xié)議接口,以及數(shù)據(jù)項資源的TE值;

5)對4)中得到的TE值加權(quán)計算得到控制器脆弱集的TE值。

在2)中,選擇的源碼中不存在間接入口點和間接出口點,生成的調(diào)用圖數(shù)目相對少,計算TE值更加快速。

在3)中,無循環(huán)路徑存在,不需要經(jīng)過重復節(jié)點復制的過程即可完成調(diào)用圖的生成。

所述的面向軟件定義網(wǎng)絡的控制器安全性定量分析方法,包括:

步驟一:刪除源碼中的非核心代碼,從篩選后的源碼中按照入口點和出口點的定義掃描代碼,提取滿足條件的入口點和出口點;

步驟二:按照函數(shù)調(diào)用圖生成方法從提取到的入口點和出口點生成調(diào)用圖,從圖中計算得到前置和后置序列數(shù),按照公式計算TE值;

步驟三:監(jiān)控編譯后的控制器執(zhí)行過程,根據(jù)協(xié)議格式篩選得到協(xié)議接口和數(shù)據(jù)資源的訪問情況,根據(jù)步驟二中生成的調(diào)用圖,得到二者的前置和后置序列數(shù),再次按照公式計算TE值;

步驟四:根據(jù)步驟二和步驟三的TE值計算結(jié)果,按照加權(quán)公式得到控制器脆弱集的TE值。

下面詳細說明步驟一、步驟二、步驟三、步驟四所包含的相關(guān)內(nèi)容:

(一)步驟一:

從篩選后的源碼中提取入口點和出口點,需要根據(jù)入口點和出口點的定義進行。二者的定義如下:

使用C表示SDN控制器的集合,對于給定控制器c,c∈C,定義控制器c的網(wǎng)絡環(huán)境為Nc,Nc=<U,D,T>,其中集合U表示用戶集,集合D表示數(shù)據(jù)集,集合T表示集合C中除去c外的子集,即T=C/{c}。需要指出的是在SDN網(wǎng)絡中,U中的元素可能為主機,也可能是交換機,D可能為流表、拓撲等信息,T表示與該控制器相連的所有控制器,攻擊者通過控制U實施攻擊行為。

定義控制器源代碼中負責接收(直接或間接)網(wǎng)絡輸入的API函數(shù)為系統(tǒng)的入口點。對于該API函數(shù)a,存在直接入口點和間接入口點兩種類型。

1.直接入口點

對于控制器c,以下三種情況下稱c直接從網(wǎng)絡中接收數(shù)據(jù):(1)用戶U(圖1(A))或者控制器c'(圖1(B))調(diào)用函數(shù)a,并且將數(shù)據(jù)項d(d∈D)輸入到a中;(2)函數(shù)a從數(shù)據(jù)集合D中直接讀取數(shù)據(jù)(圖1(C));(3)a調(diào)用控制器c'的函數(shù),從被調(diào)函數(shù)的返回值中得到數(shù)據(jù)項d(如圖1(D))。

定義1.直接入口點:定義控制器c的輸入函數(shù)為a,當a至少滿足下面三個條件之一時稱a為c的直接入口點:(1)用戶U包含輸出函數(shù)a(圖1(A));(2)控制器c'(c'∈T)包含輸出函數(shù)a(圖1(B)和圖1(D));(3)數(shù)據(jù)集合D包含輸出函數(shù)a(圖1(C))。

2.間接入口點

對于控制器c,以下兩種情況下稱c間接的從網(wǎng)絡中接收數(shù)據(jù):(1)控制器c中存在函數(shù)a1,a1直接從SDN網(wǎng)絡中接收數(shù)據(jù)項d,并將其作為函數(shù)a的輸入傳遞給a(圖5(A)),或者a接收a1的返回值d作為輸入(圖5(B));(2)控制器c中存在函數(shù)a2,a2間接的從SDN網(wǎng)絡中接收數(shù)據(jù)項d,并將其作為函數(shù)a的輸入傳遞給a(圖5(C)),或者a接收a2的返回值d作為輸入(圖5(D));例如對于控制器負責認證的函數(shù),其接收用戶的登陸信息,但是將該登陸信息傳遞給認證模塊的其它函數(shù)進行處理,此時該函數(shù)即為系統(tǒng)的一個間接入口點。

對于控制器c,輸入函數(shù)a,如果a直接接收網(wǎng)絡輸入的數(shù)據(jù)項d,并且a的后續(xù)函數(shù)依賴于d的值,那么d屬于函數(shù)a的后置條件,表示為d∈Res(a.post),其中符號Res(p)表示函數(shù)p包含的資源集合。

定義2.間接入口點:控制器c的內(nèi)部函數(shù)a,當a至少滿足下述兩個條件之一時稱a為c的間接入口點:(1)存在直接入口點a1,并且存在數(shù)據(jù)項d,d∈Res(a1.post)∧d∈Res(a.pre)(圖5(A)和圖5(B));(2)存在間接入口點a2,并且存在數(shù)據(jù)項d,d∈Res(a2.post)∧d∈Res(a.pre)(圖5(C)和圖5(D))。控制器c的入口點集合是直接入口點和間接入口點的合集。

類似的可以給出直接出口點和間接出口點的定義,如下。

定義3.直接出口點:控制器c的輸出函數(shù)a,當函數(shù)a至少滿足下述三個條件之一時稱a為c的直接出口點:(1)用戶U調(diào)用輸出函數(shù)a;(2)控制器c'(c'∈T)調(diào)用輸出函數(shù)a;(3)數(shù)據(jù)集合D調(diào)用輸出函數(shù)a。

定義4.間接出口點:控制器c的中間函數(shù)a,當函數(shù)a至少滿足下述兩個條件之一時稱a為c的間接出口點:(1)存在直接輸出點a1,滿足并且存在數(shù)據(jù)項d,d∈Res(a.post)∧Res(a1.pre);(2)存在間接輸出點a2,滿足并且存在數(shù)據(jù)項d,d∈Res(a.post)∧Res(a2.pre)??刂破鱟的輸出點集合為直接輸出點和間接輸出點的合集。

通常攻擊者利用控制器資源集合的子集完成對控制器的攻擊,如利用控制器的入口點、出口點、協(xié)議,以及數(shù)據(jù)資源向控制器發(fā)送數(shù)據(jù)或者從控制器中竊取數(shù)據(jù)。因此控制器的脆弱集是由入口點集合、出口點集合、協(xié)議集合,以及數(shù)據(jù)資源集合構(gòu)成。

(二)步驟二:

生成入口點和出口點的調(diào)用圖,得到前置和后置序列數(shù),計算TE值。TE值的計算需要根據(jù)如下定義進行。

定義5.給定控制器c,網(wǎng)絡環(huán)境Nc,則c的脆弱集可用以下三元組表示,其中是入口點和出口點集合,是協(xié)議接口集合,是數(shù)據(jù)資源集合。

因此,對于同一控制器的兩個版本或者兩個功能相似的控制器,比較上述三元組的大小可以得出二者安全性差異。

為實現(xiàn)脆弱集的量化度量,本發(fā)明引入經(jīng)濟學中的效費比模型(即TE模型)對控制器資源的脆弱集進行度量。效費比包含兩個方面:一是攻擊者利用該資源能夠?qū)刂破髟斐傻膿p害大小(即threat,T值,用r.th表示),二是攻擊者為獲取該資源需要付出的努力程度(即effort,E值,r.ef),前者越高,同時后者越低,那么該資源對控制器的安全威脅越大。本發(fā)明使用全序符號>表示資源對脆弱集影響的大小,對于兩個資源r1和r2,如果前者對脆弱集的影響比后者大,那么二者的效費比關(guān)系可以表示為r1>r2。

定義6.資源TE值定義:給定控制器c,以及c的兩個資源r1和r2,當且僅當滿足下述三個條件之一時r1≥r2成立:

(1)r1.th≥r2.th∧r2.ef≥r1.ef;

(2)r1.th=r2.th∧r2.ef≥r1.ef;

(3)r1.th≥r2.th∧r2.ef=r1.ef;

將定義8與控制器脆弱集三元組結(jié)合,可得到如下定義。

定義7.脆弱集TE值定義:給定控制器c,其中的兩個函數(shù)a1和a2,兩個協(xié)議接口p1和p2,兩個數(shù)據(jù)項d1和d2,屬性at∈{th,ef},當且僅當滿足下述三個條件之一時<a1,p1,d1>><a2,p2,d2>成立:

(1)a1.at>a2.at∧p1.at≥p2.at∧d1.at≥d2.at;

(2)a1.at≥a2.at∧p1.at>p2.at∧d1.at>d2.at;

(3)a1.at≥a2.at∧p1.at≥p2.at∧d1.at>d2.at。

根據(jù)脆弱集只能對給定的兩個控制器做出定性的判斷,如一個控制器的脆弱集相對于另一個來說較大,無法對控制器脆弱集給出定量的度量。需要給出基于TE模型的效費比計算方法,據(jù)此實現(xiàn)控制器脆弱性的定量度量。

如果攻擊者獲得了對高權(quán)限函數(shù)的訪問權(quán),那么攻擊者能對控制器造成的威脅會更大。因此,從攻擊者的角度看,付出更多以獲取具有高權(quán)限的資源是值得的。因此,使用效費比可以刻畫資源對脆弱集的影響程度,控制器的TE值表示為其中η也稱資源的效費比。

定義映射函數(shù)dera:api→η,完成函數(shù)到效費比的映射。在實際計算時資源的效費比時需要對資源的屬性賦值,通常是具體的數(shù)值。例如計算一個函數(shù)的效費比可以通過函數(shù)優(yōu)先級以及訪問權(quán)限對函數(shù)賦予一定的數(shù)值,具有較高權(quán)限的函數(shù)賦值大于較低權(quán)限的函數(shù)。

前置和后置序列數(shù)的計算可以按照下述方法進行。

在控制器脆弱集中,函數(shù)a的T值是其后置條件,T值描述了函數(shù)a可以調(diào)用的其它函數(shù)的數(shù)目,即函數(shù)調(diào)用序列中位于a后的函數(shù)數(shù)目,因此在一定程度上可以表示函數(shù)a對脆弱集的貢獻,T值越大,a可以調(diào)用的函數(shù)越多,這種序列也越多。類似的,函數(shù)a的E值描述了可以調(diào)用函數(shù)a的其它函數(shù)的數(shù)目,即在函數(shù)調(diào)用序列中位于a之前的,可以直接調(diào)用a的函數(shù),這種序列越多,函數(shù)a的E值就越少。因此a的效費比可以由函數(shù)a所在序列的序列數(shù)決定,對于函數(shù)a1和a2,dera(a1)>dera(a2)表示函數(shù)a1出現(xiàn)的序列數(shù)多于a2

(三)步驟三:

監(jiān)控編譯后的控制器執(zhí)行過程,得到協(xié)議接口和數(shù)據(jù)資源的訪問情況,根據(jù)步驟二中生成的調(diào)用圖,得到二者的前置和后置序列數(shù),計算TE值;

對于協(xié)議接口p,如果p出現(xiàn)在函數(shù)a1,2,...,n的前置條件中,那么p的T值可以用n表示,如果a1,2,...,n出現(xiàn)在p的前置條件中,那么p的E值也可以用n表示。對于數(shù)據(jù)項d的效費比計算也可以采用類似的方法。

(四)步驟四:

根據(jù)步驟二和步驟三的TE值計算結(jié)果,加權(quán)得到控制器脆弱集的TE值。計算加權(quán)TE值需要根據(jù)如下定義進行。

定義8.給定控制器c,其脆弱集為則控制器c的脆弱集量化值為

根據(jù)定義8即可完成控制器脆弱集的TE值加權(quán)計算。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
台前县| 上蔡县| 二连浩特市| 清远市| 榆社县| 成都市| 清镇市| 南和县| 沂源县| 广昌县| 峡江县| 镇江市| 五家渠市| 高尔夫| 包头市| 盱眙县| 仁怀市| 读书| 枝江市| 和龙市| 灵山县| 尼勒克县| 秭归县| 龙游县| 仙游县| 永泰县| 深水埗区| 酒泉市| 太保市| 永定县| 鹿泉市| 安塞县| 丰台区| 丰台区| 垣曲县| 杂多县| 南充市| 永清县| 安阳市| 新田县| 原阳县|