本站小編為你精心準備了安全評估論文:高效的網絡安全評定方式探微參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
作者:王春露王彥丞單位:北京郵電大學計算機學院北京郵電大學可信分布式計算與服務教育部重點實驗室中國工商銀行數據中心網絡部
相比于分析單個弱點的脆弱性,基于模型的評估方法能更好的模擬攻擊者行為、表達弱點關聯性。盡管這些方法改善了網絡安全評估的效果,但當前工作仍有以下缺陷:
(1)非自動化。雖然攻擊圖生成已經實現了自動化,具備高可擴展性,但是網絡安全評估的其他部分仍需手動完成。評估依賴的數據庫(Bugtraq,/)并不包含弱點的“前提”和“結果”屬性,弱點關聯關系需要從弱點描述字段手動提取。
(2)評估效率。當前的網絡安全評估仍集中在機器數比較少的小規模網絡,為了獲取比較準確的分析結果,必須使用較復雜的評估模型,計算復雜度也會隨之提高。在評估有效性和評估規模之間,大部分工作選擇的是前者。因而,如何簡化評估模型,將評估方法推廣到大規模網絡是一個亟待解決的問題。本文提出了一種高效的網絡安全評估方法。在已有工作基礎上解決了三個關鍵問題:
(1)將變量消元算法應用到貝葉斯網中,不構建聯合概率分布表,直接計算評估結果。通過變量消元使提高了評估的效率,評估規模從原有的數十臺提升到數千臺。
(2)提取弱點信息,構建弱點的前提和結果集,同時整合當前主流的弱點數據庫,形成一個包含弱點詳細信息的量化關聯數據庫。
(3)提出一種基于原子域的攻擊圖計算方法,簡化了攻擊圖生成和評估模型的計算。本文組織結構如下:第2章介紹基本思想;第3章討論弱點關聯數據庫的構建;第4章給出原子域的攻擊圖生成方法;第5章提出基于變量消元的貝葉斯網評估模型;第6章通過真實環境下大量實驗,驗證本方法的有效性;第7章是總結與進一步工作。
基本思想
獲取當前網絡脆弱性信息是安全評估的前提,在此基礎上利用攻擊圖模擬入侵者行為,進而通過量化評估模型分析攻擊者在當前安全策略下所有可能的行為和后果,評價網絡的脆弱性,提出加固建議。
圖1是本評估方法的簡單流程。數據存儲池包括弱點數據庫和從網絡管理員獲得的配置信息(如網絡拓撲、訪問控制策略等)。此部分信息是生成攻擊圖,構建網絡評估模型的基礎。弱點掃描器包括控制服務器端和客戶端。客戶端安裝在每臺待評估機器上,由服務器端控制,對系統進行掃描,獲得當前網絡包含的所有弱點和它們的量化概率信息。之后,攻擊圖生成系統將弱點關聯,利用基于原子域的攻擊圖生成方法生成攻擊圖和貝葉斯網。以此為基礎,通過變量消元和貝葉斯推理,計算評估維度并顯示評估結果,給出安全加固策略。
弱點關聯數據庫
1弱點數據庫創建
計算機的弱點通常指軟硬件設計或策略上的缺陷,使得攻擊者可以在未授權的情況下訪問系統。一個好的弱點數據庫不僅能從多方面描述一個弱點的詳細信息,而且是攻擊圖生成和網絡安全評估的基礎。雖然有的研究工作根據經驗手動構建漏洞庫,能較準確的反映弱點某一方面的特征。但是此類數據庫由于人力有限,不可能包含當前所有弱點的詳細信息。同時,弱點信息不斷更新,新的弱點會不斷出現,如何保證數據庫的實時性是一個難點。
另一個構建漏洞庫的難點是如何提取弱點的關聯信息。攻擊圖的生成是一個將網絡中一系列弱點進行關聯的過程,通過攻擊路徑模擬攻擊者可能的攻擊行為。因此,為了自動化生成攻擊圖,必須有一個能反映弱點關聯關系的數據庫。一個弱點的前提集是指攻擊者要利用這個弱點實施攻擊,必須滿足的前提條件。弱點的結果集是指攻擊者利用這個弱點成功完成攻擊后,所能取得的權限提升或對主機和網絡造成的破壞。如果數據庫中的每一個記錄(弱點)都有前提和結果信息,就可稱之為關聯數據庫。
本文采用美國國家漏洞庫(NationalVulnerabilityDatabase,nvd.nist.gov/)作為數據庫的主要信息來源,在此基礎上結合其他弱點信息,構建一個綜合的關聯弱點庫。同時使用一個器,每隔一段時間下載新出現的弱點。采用NVD的原因在于,它是迄今為止最完整的漏洞庫,與美國國家標準局(NIST)制定的CVE標準()兼容。以NVD為基礎,系統整合了其他數據庫的弱點信息(如攻擊腳本,加固策略等)。具體來說,從NVD提取的弱點信息占50%,從Bugtraq提取的弱點攻擊腳本和解決方案占25%,CERT/CC(www.us-cert.gov/)包含的量化弱點信息占10%,其他信息占15%。表1表示該數據庫中弱點編號為CVE-2010-3847的部分信息。
2弱點關聯信息提取
前提結果集不僅反映了一個弱點潛在的威脅和攻擊復雜度,也是構建攻擊圖、進行網絡評估的基礎。為了簡單起見,我們用權限表示弱點的關聯信息。這里的權限分三種:無(none),用戶(user),管理員(root)。圖2表示的是從NVD數據庫中提取的弱點信息。通過“攻擊向量”的描述,可以知道如果一臺主機有這個漏洞,攻擊者可以通過任何與它有網絡連接的機器發起攻擊。因此,該弱點的前提屬性是“無”(none)。通過“利用結果”屬性,得出攻擊此漏洞可以獲得管理員特權。所以,該弱點的結果集是“管理員”(root)。
接著通過一個java程序,將這些關聯信息導入到數據庫。除了關聯性,系統數據庫還包括弱點的量化信息。圖2中的“攻擊復雜度”屬性值為“低”,在通用漏洞評估系統(commonvulnerabilityscoringsystem,CVSS,/cvss/cvss-guide.html)中,攻擊復雜度是一個包含三個值的枚舉變量,即:0.31(H),0.61(M)和0.71(L)。所以,攻擊者成功利用該弱點的概率為0.71。
單個弱點的概率信息是進行概率推理、計算評估結果的基礎,一些研究者利用經驗設定一個弱點被利用的概率。但是弱點數據庫可能包含上萬條記錄并不斷更新,手動部署量化信息比較困難。雖然本數據庫設定的弱點利用概率值只能是0.31、0.61或0.71,但弱點的重要程度是相對的。通過這種方式構建量化數據庫不僅能使評估自動化,而且能比較準確得反映弱點的相對重要程度。基于以上技術,系統使用MySQL創建了包含46953條記錄的弱點數據庫,每條記錄包括弱點的基本信息、前提結果集和量化信息。
3基于弱點數據庫的掃描器
為了分析待評估網絡的脆弱性,系統以開源弱點評估語言(openvulnerabilityandsssessmentlanguage,OVAL,/)為核心構建弱點掃描器。選擇開源弱點評估語言的原因在于它是通用的弱點描述語言,描述方式符合CVE標準,方便從數據庫中提取信息。其次,掃描客戶端安裝在每臺機器上,能以管理員身份查找漏洞。考慮到評估網絡的重要性和安全性,安裝掃描器的代價是可接受的。除了主機掃描,系統還集成了網絡掃描器Nessus,從單個系統和整體網絡兩方面檢查漏洞信息,為網絡評估提供詳細的弱點列表。
攻擊圖生成
攻擊圖描述了入侵者利用弱點逐步達到目標的過程。本文提出了一種原子域構建攻擊圖的方法,簡化了攻擊圖生成過程。該方法分兩步:原子域初始化和攻擊圖生成。
1原子域初始化
原子域指的是特定主機的特定權限。為了對網絡建模,首先設定每個原子域的可用弱點集合。通過分析與攻擊者相連的所有主機組成的小網絡,可以初始化攻擊者的原子域。接著按照同樣的步驟初始化其他原子域,通過把一個大網絡分解成一組原子域,實現攻擊圖生成的簡化。當網絡結構或配置發生改變時,只需要更改相應的原子域,圖3是一個例子網絡[8]。表2是這個網絡包含的所有弱點信息,包括它們的利用條件和所在主機。表3顯示的是原子域初始化結果,也就是每個原子域的可用弱點集合。其中IpDUser表示了IpD機器的User權限。按照攻擊圖生成的單調性假設:攻擊者不會發動不能使他權限提升的攻擊,因此ipWRoot的可用弱點集合不包含“ap”。
2攻擊圖生成
當所有原子域初始化完畢,系統就可以通過原子域間的通信生成攻擊圖。首先從攻擊者所能訪問的原子域開始,分析攻擊者所能發起的攻擊,激活和當前原子域相鄰的子網絡中包含的原子域。接著以相同的方式,按廣度優先原則激活每個原子域和它相鄰的原子域組。當所有的原子域激活,攻擊圖生成過程結束。圖4是該網絡的攻擊圖。每個節點代表一個原子域(ip3Root表示主機3上的Root權限),每條邊代表攻擊者利用弱點實施的一次權限提升攻擊。由于采用單調性假設,所以攻擊圖中沒有回邊。
基于優化貝葉斯網的評估方法
1評估模型的建立
為了進行網絡安全評估,需要一個定量分析模型計算當前網絡的脆弱性,本文使用貝葉斯網結合貝葉斯推理完成這一任務。為了方便將攻擊圖和貝葉斯推理結合,引入貝葉斯攻擊圖的概念,并做如下定義:定義1設X表示一組離散變量集{X1,…,Xn},集合中每個變量的祖先變量是Pa1,…,Pan。條件概率分布表(CPT)指明了每個變量所包含的條件概率分布(CPD)如果攻擊圖和用概率分布表表示的量化信息結合,就可稱為“貝葉斯攻擊圖”。圖中的每個變量代表一個伯努利隨機變量Xi,P(Xi=T)表示攻擊者成功達到目標的概率,每條邊表示入侵者利用弱點發動的攻擊,而概率分布表表示了節點之間的概率依賴關系。正如前面所述,本文使用通用弱點評分系統中的“攻擊復雜度”表示一個弱點被成功利用的概率。雖然這種方法只能表示0.31,0.61和0.71三個值,但這并不影響評估結果。因為我們更關注一組弱點的相對威脅程度,而不是單個弱點的重要度。一些已有的工作使用通用弱點評分系統的“基本分”(BasicScore,BS)表示弱點被利用的難易度。他們將基本分除以10,用得到的0到1之間的值表示該弱點被攻擊者成功攻擊的概率。雖然此方法能從掃描結果中自動提取量化信息,但弱點的基本分除了包含一個弱點被利用的難易程度,還表示該弱點被攻擊后可能造成的破壞程度和影響。很多弱點的基本分是10,并不表示這些弱點被成功利用的概率是1。
在構建貝葉斯網過程中,應用了一個通用的假設:給定一個變量X,X的祖先節點獨立影響X的狀態,即,每個節點的條件概率不受其他節點的影響。已有的工作通過修改概率信息消除上述假設,Bobbio等通過關聯條件概率分布表解決這一問題。為了方便起見,本文不討論這種情況。圖5是一個包含三個原子域A、B、C的貝葉斯攻擊圖,e1和e2表示原子域之間的依賴關系,每條邊對應主機C上一個弱點。圖的右邊表示節點C的條件概率表,其中C=1表示該原子域激活成功,P(e1)和P(e2)是從數據庫中提取的弱點攻擊概率。當每個節點部署完概率信息后,就可以通過貝葉斯推理計算評估維度。
2評估維度
評估維度決定了評估的方向和結果,為管理員加固網絡提供了重要的依據。由于網絡安全分析和故障分析有相同的目標和類似的過程,所以借用故障分析理論提出兩個評估維度:頂事件不可靠度和底事件重要度。定義3(頂事件不可靠度)在一個貝葉斯網中,頂事件指一個與管理員規定的安全屬性有關的狀態,表示攻擊者成功達到目標的可能性。給定一個貝葉斯頂事件不可靠度表示了當前網絡的整體安全狀態。如果網絡管理員根據系統給出的安全建議,應用了加固策略,再次運行評估系統,將會發現頂事件不可靠度降低,系統整體安全性提高。
定義4(底事件關鍵度)底事件是造成網絡不安全狀態的根本原因。在一個貝葉斯攻擊圖(S,τ,S0,ss)中,底事件對應于S0。不失一般性,我們假設系統中存在多個狀態s10,s20,…,sj0。底事件sk0的重要度是一個后驗概率:本文提出的底事件計算方法不同于文獻。
Wang等人用邏輯表達式表示頂事件,式中的每個謂詞代表一個初始條件(即底事件)。雖然他們的評估方法能給出加固策略,但仍是一種定性評估。在貝葉斯評估模型中,底事件關鍵度是一個量化值,表達了對頂事件的影響程度。通過比較可知道如果攻擊者完成攻擊目標,最有可能從哪個底事件發起攻擊。另一個不同點是本文提出的計算方法不是通過圖搜索而是貝葉斯推理。如果當前網絡弱點信息發生改變,不需要重新生成攻擊圖,只需要改變相應節點的條件概率表再進行一次推理。相比于攻擊圖生成,貝葉斯推理代價更小,簡化了評估維度的計算。
3基于變量消元的評估維度計算算法
本節首先介紹變量消元的原理和使用變量消元降低推理復雜度的原因,接著給出評估算法。
3.1消元運算以圖6中的貝葉斯網為例,考慮計算P(D),有假設所有變量均為二值,則上式的計算復雜度如下:P(A)與P(B|A)需要做4次數字乘法,其結果與P(C|B)相乘需要做8次數字乘法,它的結果再與P(D|C)相乘需要做16次數字乘法。所以總共需做28次數字乘法。
為了利用聯合概率分布的分解來降低推理的計算復雜度,注意到在式4右邊的4個因子中,只有P(A)和P(B|A)與變量A有關,而變量C也只出現在因子P(C|B)和P(D|C)中,所以有式(5)的計算復雜度如下:P(A)與P(B|A)相乘需要做4次數字乘法,然后消去A需要做兩次數字加法,同樣的,消去變量B和變量C也分別需要4次乘法和兩次加法,所以乘法總次數為12,加法總次數為6。
比式4復雜度低。變量消元之所以能降低復雜度,主要是因為它使得運算可以局部化,每一步計算只關注單個變量和與它直接相連的變量。在上面的例子中,運算局部化大約節省了一半的運算量。在變量眾多的網絡中,節省可能是指數級的。
3.2評估算法
圖7給出的是基于變量消元的網絡安全評估算法。開始時為每個節點構建條件概率分布表,接著利用變量消元計算底事件不可靠度,在計算過程中得到頂事件不可靠度。
3.3算法復雜度分析
變量消元的復雜度與消元順序有關,本文使用最小缺邊搜索確定消元順序。在變量消元算法中,最耗費事件和空間的步驟是對消元操作的調用(圖7算法中第8到第13行)。從f中挑出所有涉及X的函數{f1,f2,…,fk},將它們相乘得到中間函數g,再將X從g中消去。設X1,…,Xl是g中除X之外的變量,如果把函數表示成多維表,則g所存儲的函數值的個數這便是變量X的消元成本。因此,算法的復雜度與當前的貝葉斯網結構有關。相比于通過聯合概率分布分析網絡脆弱性,這種局部化推理簡化了計算過程。大量真實環境下的測試表明,基于變量消元的評估方法能使評估復雜度降低,評估規模從原有的數十臺提升到數千臺。
測試
本章通過一個真實環境下的實驗,驗證所提出的方法有效性。試驗網絡環境如圖8所示,其中防火墻將網絡分為2個部分:攻擊者所在的網絡和運行關鍵數據服務的局域網。假設攻擊者從防火墻外部發起攻擊,防火墻設定的訪問規則如下:攻擊者只能直接訪問四臺機器:Ip1,Ip2,Ip3和Ip4。Ip15是數據庫服務器,攻擊者最終的目標是破壞作用數據庫,因此Ip15是目標主機。基本事件的先驗概率設置如下時基于原子域的攻擊圖也隨著掃描進行而產生。圖9顯示了該實驗環境下的攻擊圖。它包含了4個底事件(圖中橢圓形陰影標注)和1個頂事件(圖中最底部節點)。通過使用前面的算法,我們建立了貝葉斯攻擊圖。然后,使用貝葉斯推理來計算評估指標。整個過程耗時29秒。實驗結果如下:1)網絡的可靠度是0.4。
也就是說,攻擊者能達到攻擊目標的概率是0.4;2)最關鍵的主機是IP3(圖10)。修補這一主機上的漏洞將能有效地提升網絡安全性。我們在網絡中增加了5臺主機,然后重復上述實驗。圖10顯示的結果如下:1)頂事件的可靠度是0.31。
說明當主機數目增加時,攻擊者實現攻擊目標的可能性隨之增大。2)最關鍵的底事件是ip3;和15臺機器的實驗相比,底事件之間的重要度差距明顯增大了。
說明隨著主機數的增加,底事件對頂事件的影響被弱化了。我們基于本方法開發了一個評估系統,在北京郵電大學校園網絡環境下對系統做了測試,測試結果如圖11所示。橫坐標表示待評估網絡中包含的主機數,從300到3000。縱坐標代表網絡評估階段所需時間,單位是秒。結果顯示系統整體性能符合線性增長,評估時間隨主機數的增大而增加,3000臺機器需要16秒左右的評估時間。
總結與進一步工作
本文在對網絡安全深入研究的基礎上,提出了一種量化的網絡脆弱性分析方法,解決了網絡安全評估中的若干關鍵問題。實驗結果證明該方法能夠分析當前網絡的脆弱性,評估結果能有效得幫助管理員改善當前的網絡狀態。通過變量消元優化了評估模型,提高了評估速度,使評估方法能夠適用于更大規模的網絡環境。未來的工作仍集中在對評估算法的優化和改進。除了變量消元,還有桶消元、團樹傳播等貝葉斯推理優化算法,將這些算法應用到網絡安全評估領域,比較并選取最適合安全評估的一種算法將是非常有意義的研究課題。