方 明
(91977部隊,北京 100841)
網(wǎng)絡安全是一個廣義的概念,它主要用來處理一組互聯(lián)的計算機之間的安全威脅,每一臺互聯(lián)的計算機都有自己的安全流。計算機網(wǎng)絡安全風險值是通過網(wǎng)絡攻擊的概率以及攻擊所造成的后果的嚴重程度計算出來的。幾乎所有的網(wǎng)絡攻擊都是利用網(wǎng)絡安全漏洞所進行的多級攻擊,在多級網(wǎng)絡攻擊中,某一特定的網(wǎng)絡安全漏洞被黑客所利用的概率依賴于與之相關的其他網(wǎng)絡安全漏洞被利用的概率,一些已經(jīng)發(fā)表的網(wǎng)絡安全模型中已經(jīng)提出了這種相關性如文獻[1-3]。該模型通過每一個網(wǎng)絡安全漏洞以及與之相關的其他安全漏洞來定義網(wǎng)絡安全威脅,并計算安全風險值。
在文章的第二部分,我們對相關的文獻進行評論,在文章的第三部分,我們對一些必要的背景材料進行介紹并闡述標準建模語言(Unified Model Language,UML)安全模型,在文章的第四部分,我們介紹如何針對特定的網(wǎng)絡應用該模型,并產(chǎn)生該網(wǎng)絡的風險值。文章的最后部分,我們對評估的結果進行總結,并對未來的進一步工作進行探討。
攻擊者通過網(wǎng)絡安全漏洞可以無授權訪問計算機網(wǎng)絡中的資產(chǎn),并對計算機網(wǎng)絡系統(tǒng)構成安全威脅。為了方便起見,我們把網(wǎng)絡安全漏洞被攻擊者利用的風險稱作“漏洞風險”。文獻[4-8]提出了幾種漏洞風險的評估方法。常見漏洞評分系統(tǒng)[7](Common Vulnerability Scoring System,CVSS)和共同弱點評分系統(tǒng)[8](Common Weakness Scoring System,CWSS)提出了一組用于評估漏洞風險的可量化指標,但是這些方法只是分別針對每個漏洞風險進行風險值評估,并沒有考慮漏洞之間的關聯(lián)性。
目前有很多針對多級攻擊的建模方法,比如petri網(wǎng)模型[2,9]、博弈論模型[1,10]、以及攻擊樹模型[3,11-14],這些模型代表了網(wǎng)絡中彼此互聯(lián)的網(wǎng)絡安全漏洞,并指定攻擊路徑。由于攻擊樹建模方法容易被人們理解,并且符合圖論理論,因此攻擊樹模型被廣泛研究。攻擊圖不僅是指定和分析攻擊路徑的手段,同時也可以代表網(wǎng)絡安全漏洞被利用時所必須的相關漏洞,并可以計算這些漏洞被利用的概率。在文獻[11,15,16]中貝葉斯網(wǎng)絡被用于代表安全漏洞被利用概率與攻擊者攻破網(wǎng)絡目標節(jié)點概率之間的依賴項。在文獻[17]中,貝葉斯網(wǎng)絡被用來確定網(wǎng)絡中風險最高的威脅項集合,并確定如何實施風險控制措施以達到在有限預算條件下獲得最優(yōu)網(wǎng)絡安全等級的目標。雖然這些工作在網(wǎng)絡風險值評估以及降低網(wǎng)絡安全威脅過程中很高效,但是他們都沒有考慮攻擊路徑在構造過程中的復雜度和困難。由于攻擊圖或貝葉斯網(wǎng)絡的復雜程度,這些分析方法依然需要網(wǎng)絡安全專家的指導意見。
本文所提出的網(wǎng)絡安全風險分析模型,不需要網(wǎng)絡管理員擁有專業(yè)的網(wǎng)絡安全知識就可以實施網(wǎng)絡安全風險分析過程,代替這些網(wǎng)絡安全專業(yè)知識的是一個與攻擊方式和網(wǎng)絡類型相關的抽象的模型。
正如我們之前所提到的,產(chǎn)生和分析網(wǎng)絡安全模型時會遇到一系列的困難和問題,為了獲得更加精確的結果,我們需要網(wǎng)絡安全專家為我們修正那些由掃描儀和分析儀等自動化工具所獲得的數(shù)據(jù)。此外,這些自動化工具也需要必要的網(wǎng)絡系統(tǒng)信息,通常這些信息主要來源于對網(wǎng)絡異常情況的記錄。
我們所提出的網(wǎng)絡安全風險分析模型適用于任何類型的計算機網(wǎng)絡,這個網(wǎng)絡安全風險分析模型的主要優(yōu)點總結如下:
(1)計算機網(wǎng)絡安全風險分析過程所必須的復雜概念被一個抽象化的模型所代替。
(2)我們定義了在一個實例化網(wǎng)絡中,安全風險值及風險概率的計算過程。
(3)我們提出的安全風險分析模型是動態(tài)的并且對網(wǎng)絡系統(tǒng)的改動是自適應的,比如在網(wǎng)絡中增加或移除一臺主機時所產(chǎn)生的網(wǎng)絡結構變化對網(wǎng)絡連接關系或網(wǎng)絡漏洞的影響會通過安全模型進行發(fā)布,同時根據(jù)網(wǎng)絡變化自動更新網(wǎng)絡風險值,與其他模型[11,18]不同的是,當網(wǎng)絡結構變動時,我們的模型不需要重新構建。
(4)我們的模型保持網(wǎng)絡拓撲結構和網(wǎng)絡邏輯結構的一致性,這種一致性可以有效提高風險控制方案的實施效率,同時降低風險的影響后果。
我們所提出的UML模型是由兩種模型結合產(chǎn)生的,一個是抽象安全模型(Abstract Security Model, ASM)另一個是網(wǎng)絡安全模型(Network Security Model,NSM)。其中ASM模型是用于描述網(wǎng)絡節(jié)點和安全分析時所必須的類信息模型,例如安全漏洞、網(wǎng)絡節(jié)點間的可達性以及安全漏洞之間的關系等,ASM模型是建立目標網(wǎng)絡NSM模型的基礎,ASM模型通常只建立一次,并在此基礎上建立不同網(wǎng)絡的NSM模型。
圖1 UML風險模型概況
通過對目標網(wǎng)絡的ASM模型進行實例化,我們可以得到目標網(wǎng)絡的NSM模型,目標網(wǎng)絡的實例化過程需要目標網(wǎng)絡的相關信息,并將目標網(wǎng)絡的相關信息與目標網(wǎng)絡ASM模型中所定義的適當?shù)念愊嘟Y合產(chǎn)生出目標網(wǎng)絡的NSM模型。圖1展示了這種實例化的過程,以及這兩個模型之間的關系。
ASM模型是網(wǎng)絡節(jié)點的上層模型,它提供了以概率論推倒網(wǎng)絡安全風險值的基礎。在圖2中我們展示了ASM模型中所定義的類圖,在圖中每個網(wǎng)絡節(jié)點都由網(wǎng)絡節(jié)點類所表示。一個網(wǎng)絡節(jié)點可以是一臺數(shù)據(jù)終端或者是服務器。
在ASM模型中,每個網(wǎng)絡節(jié)點都是經(jīng)由連接類所連接。每個網(wǎng)絡節(jié)點都包含一個訪問權限類,這個訪問權限類指定了每個網(wǎng)絡節(jié)點的用戶訪問類型。攻擊者很有可能是一個合法的用戶,并且對于一些網(wǎng)絡節(jié)點,攻擊者擁有合法的訪問權限。對于一個網(wǎng)絡系統(tǒng)而言,一個網(wǎng)絡節(jié)點很有可能包含某個特定的安全漏洞。為了利用這個網(wǎng)絡安全漏洞,攻擊者必須擁有一定的網(wǎng)絡節(jié)點訪問權限等級,當攻擊者針對某一安全漏洞成功實施攻擊后,他極有可能獲得了更大的訪問權限等級。所以安全漏洞類是攻擊實施前攻擊者訪問權限等級與攻擊實施后攻擊者訪問權限等級之間的關聯(lián)類。一個網(wǎng)絡系統(tǒng)包含許多網(wǎng)絡節(jié)點,每個網(wǎng)絡節(jié)點都包含一定的安全需求,這些安全需求的作用是允許指定的權限等級訪問網(wǎng)絡節(jié)點,并對非法的訪問操作進行記錄。
ASM模型是由一系列類所組成,它們被表示為:C1,C2,C3…每個類都有一些屬性集合和一些操作集合,通過這兩個集合我們可以指定攻擊路徑以及計算攻擊實施成功的概率。對于某個類C,屬性集合表示為A(C),操作集合表示為O(C)。C.A表示類C的屬性集合,C.O表示類C的操作集合。用D(C.A)表示類C的屬性集合的域,例如:訪問權限類(Privilege)的訪問類型屬性(Access Type)集合的域包括:網(wǎng)絡,本地用戶,ROOT訪問。所以它被表示為:D(Privilege.AccessType)={網(wǎng)絡,本地用戶,ROOT訪問}。
構建目標網(wǎng)絡的網(wǎng)絡安全模型所需要的對象來源于ASM模型中適當?shù)念惖膶嵗?。在NSM模型中,我們用實例化的ASM模型的類對象來代表目標網(wǎng)絡中的節(jié)點,包括節(jié)點的特性和連接關系。每個對象的構造函數(shù)都用一個參數(shù)來表示增加這個對象后,可能增加的違反網(wǎng)絡安全需求的概率。這個概率的每一次修改,模型都會向與之相關的對象進行發(fā)布。這個概率是由貝耶斯方法計算出來的,而這個概率的發(fā)布方法是由前面介紹過的文獻[11]提供的。
通過在主機H中增加漏洞V,這個漏洞對于主機H的安全需求的影響會馬上生效,并更新主機H可能違反安全需求的概率H.Pi,當H.Pi進行更新時,它會同時調用與主機H有連接關系的節(jié)點中權限類對象的函數(shù),這些被調用的函數(shù)用于重新計算每個對象違反安全需求的概率。
圖2 網(wǎng)絡安全風險分析的ASM模型
安全風險值是由違反安全需求的概率與網(wǎng)絡漏洞影響值相乘的結果得出的,由式(1)計算。
常見漏洞評估系統(tǒng)[7,19],可以為評估網(wǎng)絡安全漏洞被利用后的影響值提供一系列的指標依據(jù)。雖然我們的風險評估模型不依賴于某一個特定的影響值評估模型,但是CVSS模型中基本指標的一個子集對安全漏洞影響值的計算還是有很大幫助的。這些指標包括:保密影響、信譽影響和可用性影響。最終的安全漏洞被利用的影響值由等式(2)給出。影響值的計算是依據(jù)CVSS標準的。
其中Impactconf代表保密性影響值,Impactinteg代表信譽影響值,Impactavail代表可用性影響值。在本文所提出的風險評估模型中,一組基本的CVSS模型指標用于評估網(wǎng)絡安全漏洞被利用的可能性,這些指標主要包括:訪問向量、訪問復雜度、以及認證功能強度等。網(wǎng)絡漏洞被利用的概率由等式(3)計算,在文獻[19]中說明了CVSS指標值的含義。
在對多級攻擊下網(wǎng)絡漏洞被利用的概率計算過程中,我們還要考慮網(wǎng)絡漏洞間的關聯(lián)性,并將這種關聯(lián)性反應到網(wǎng)絡漏洞被利用概率的數(shù)值上。我們的風險攻擊模型用貝葉斯攻擊圖模型[3,11]來代表關聯(lián)的概率。
貝葉斯攻擊圖是由攻擊圖模型和貝葉斯網(wǎng)絡結合產(chǎn)生的。貝葉斯網(wǎng)絡是一個有向無環(huán)圖,在圖中每個節(jié)點都包含一個離散的隨機變量,圖中每個弧代表了隨機變量間的獨立性條件。
此外,每個節(jié)點對應于一個條件概率表,這個條件概率表指明了該節(jié)點的父母節(jié)點的概率狀態(tài)。
攻擊圖模型說明了針對目標網(wǎng)絡實施多級攻擊時可能被使用的攻擊路徑[20]。在攻擊圖模型中,每個節(jié)點代表了一個網(wǎng)絡安全漏洞以及該漏洞被利用之前和之后系統(tǒng)的狀態(tài)。圖中的弧展示了網(wǎng)絡漏洞與漏洞被利用之前、之后系統(tǒng)狀態(tài)間的相關性。
貝葉斯攻擊圖用一個4元組表示:BAG={X,ε,τ,P},其中X代表攻擊圖中的節(jié)點,包括終點、內部節(jié)點、外部節(jié)點。圖中的弧用有序對集合τ表示。集合ε表示進入同一個節(jié)點不同弧之間的關系,集合ε的值包括“與”和“或”即,ε={AND,OR}。P是一個條件概率分布集合,包含的條件概率為:P=Pr(ni|Parent[ni])。這個概率值是由聯(lián)合概率分布和噪聲或關系(Noisy-Or)按照文獻[3]中定義的方法計算的。計算方法如下所示:在di=AND的情況下,Pr(ni|Parent[ni])=0如果ni滿足條件 nj∈parent[ni],有nj=0。如果不存在nj=0,則:
在di=OR的情況下,Pr(ni|Parent[ni])=0,如果滿足條件:?nj∈parent[ni],有nj=0。否則:
其中ei表示網(wǎng)絡漏洞被利用的事件,當這個網(wǎng)絡漏洞被利用后,系統(tǒng)從狀態(tài)ni過渡到nj。事件ei的概率由等式(3)計算。在ASM模型中,Pr(ei)包含在網(wǎng)絡安全漏洞類的屬性集合中。攻擊者可以通過利用網(wǎng)絡漏洞從一個狀態(tài)過渡到另一個狀態(tài)并且可以獲得新的網(wǎng)絡系統(tǒng)權限。當一個節(jié)點的被攻擊概率改變時,它的繼任節(jié)點的被攻擊概率也會受到相應的影響,這個影響值通過貝葉斯等式(6)進行發(fā)布,并更新繼任節(jié)點被攻擊的概率。
測試網(wǎng)絡結構圖以及在其上部署的安全漏洞 見圖3。
在ASM模型中,這個過程由權限類操作集合中的AdjustProbability()操作函數(shù)實施。當一個權限類中的綜合概率參數(shù)Privilege.compromiseProbability發(fā)生改變時,就會觸發(fā)其所有繼任節(jié)點調用AdjustProbability()操作函數(shù)來更新被攻擊概率。全系統(tǒng)的被攻破概率由AdjustProbability()操作函數(shù)的調用環(huán)實現(xiàn)。
圖3 測試網(wǎng)絡結構圖以及在其上部署的安全漏洞
在這一部分,為了應用我們的風險評估模型,我們對試驗網(wǎng)絡進行風險評估,我們展現(xiàn)了用試驗網(wǎng)絡的ASM模型構造NSM的實例化結果。
我們將本文提出的風險評估模型應用到如圖3所示的測試網(wǎng)絡中,在該網(wǎng)絡中包含兩個區(qū)域,一個信任域(Trusted Zone)和一個隔離域(DMZ Zone)。在測試網(wǎng)絡結構圖中,我們用紅色標出每個網(wǎng)絡主機中的安全漏洞,把圖2中所示的ASM模型用測試網(wǎng)絡信息實例化,我們構造出了測試網(wǎng)絡的NSM模型,如圖4所示。
為了構造測試網(wǎng)絡的NSM模型,我們需要選取ASM模型中適當類進行實例化后的對象,我們將用實例化的對象來代替測試網(wǎng)絡中每個節(jié)點以及節(jié)點的屬性和連接關系。模型通過調用對象的構造函數(shù)來向NSM模型中添加一個實例化的對象。新對象的構造函數(shù)對于NSM中已經(jīng)存在的對象所產(chǎn)生的影響是自適應的。
舉個例子,在一個簡單測試網(wǎng)絡的NSM模型中,為了代替主機1(host1)和數(shù)據(jù)庫服務器(SQLServer)之間的連接關系,我們實例化一個連接類的對象取名為C3。這個連接意味著主機1(host1)與數(shù)據(jù)庫服務器(SQLServer)之間有一個通過1433端口的網(wǎng)絡訪問。通過向目標網(wǎng)絡NSM模型中增加這個對象,我們發(fā)現(xiàn)在權限類P3與P4之間產(chǎn)生一條攻擊鏈路,同時在權限類P2與P4之間也產(chǎn)生了一條攻擊鏈路。產(chǎn)生這個攻擊鏈路的原因是因為主機1有一個通過端口1433對數(shù)據(jù)庫服務器的訪問流程。所以,一個擁有主機1 root權限的攻擊者可以利用網(wǎng)絡漏洞4(Vul4)。Vul4漏洞是數(shù)據(jù)庫注入漏洞,利用這個漏洞的前提是攻擊者擁有網(wǎng)絡訪問數(shù)據(jù)庫的權限。
圖4 目標網(wǎng)絡的NSM模型
為了展示測試網(wǎng)絡安違反全需求概率的計算過程,圖5中列出了建立NSM模型的兩個連續(xù)的步驟。圖6中展示了目標網(wǎng)絡NSM模型。WebServer實例化對象還沒有添加進測試網(wǎng)絡的NSM模型中。圖5展示了測試網(wǎng)絡NSM模型的初步構建過程,進一步的構建過程如圖6所示,在圖6中,我們向由圖5所示的構建過程產(chǎn)生的初步NSM模型中增加實例化的網(wǎng)絡安全漏洞Vul3(MS Video Active Stack BoF),測試結果顯示,一條連接權限類對象P1和P3的攻擊鏈路被建立起來,這條鏈路就是漏洞Vul3被利用后產(chǎn)生的后果。網(wǎng)絡漏洞構造函數(shù)在實例化的時候會建立一條連接漏洞被利用前和利用后權限類對象的鏈路,以展示網(wǎng)絡漏洞被利用后攻擊者權限的更改。同時,當漏洞類構造函數(shù)實例化Vul3時,它會調用權限類對象P3的概率調整函數(shù)P3.AdjustProbability(),P3.AdjustProbability()被調用后,權限類對象P3被攻擊者獲得的概率增加到0.86,由于P3的概率被更改導致所有與P3連接的權限類對象的AdjustProbability()都會被調用,以發(fā)布漏洞Vul3對全網(wǎng)安全性的影響。在本例中所有連接P3的路的集合只有一條鏈路Link2,它是連接P3與P4的唯一鏈路。當主機1與數(shù)據(jù)庫服務器通過端口1433建立連接時,這條鏈路就產(chǎn)生了,所以P4的AdjustProbability()函數(shù)被調用,它將權限類對象P4的概率由0提升到0.86,由于P4的概率被更改了,所以P5的AdjustProbability()函數(shù)也被調用,這是由于P5通過鏈路Link1與P4連接,所以當P5的AdjustProbability()函數(shù)被調用后,P5的概率更新為0.69。
通過向測試網(wǎng)絡NSM模型中增加或移除類對象,對象的概率值與風險值會被相應的更新。事實上類對象概率的每一次更改都會通過AdjustProbability()函數(shù)向整個NSM模型發(fā)布。舉個例子,由于目標網(wǎng)絡增加了漏洞防護措施,使得某一漏洞被利用概率降低了,這種概率的變化會影響到所有與之相關的類對象。測試網(wǎng)絡系統(tǒng)安全需求被違反的最終風險值在表1中列出。風險值以及對安全需求的影響值分別有等式(1)與(2)計算。
表1 系統(tǒng)最終風險值
圖5 NSM模型構建的中間步驟
圖6 增加網(wǎng)絡漏洞后的NSM模型
本文提出了兩個UML模型來代替安全專家提供的專業(yè)信息。ASM模型提供了一個影響網(wǎng)絡安全風險的網(wǎng)絡要素的一個抽象視圖。ASM模型只構建一次,并且可以多次產(chǎn)生任何網(wǎng)絡的NSM模型,同時,NSM模型可以識別目標網(wǎng)絡的安全威脅并計算目標網(wǎng)絡的風險值。NSM模型是動態(tài)適應目標網(wǎng)絡拓補結構變化的,當增加網(wǎng)絡節(jié)點時,該網(wǎng)絡節(jié)點對全網(wǎng)的安全影響將通過調用AdjustProbability()函數(shù)來發(fā)布。我們的模型的另一個優(yōu)點就是與目標網(wǎng)絡物理模型的一致性,這有利于網(wǎng)絡管理員更好的分配安全風險控制措施。在進一步的工作中,我們可以考慮將NSM模型的產(chǎn)生過程完全自動化,為了達到這個目的,我們首先要將NSM模型的產(chǎn)生過程以及產(chǎn)生該模型所使用的輸入進行正式的定義。