虚拟专题:知识图谱 | 基于网络防御知识图谱的0day攻击路径预测方法
來源:網絡與信息安全學報
基于網絡防御知識圖譜的0day攻擊路徑預測方法
孫澄,?胡浩,?楊英杰,?張紅旗
信息工程大學
?摘要:針對 0day 漏洞未知性造成的攻擊檢測難問題,提出了一種基于知識圖譜的 0day 攻擊路徑預測方法。通過從現有關于網絡安全領域本體的研究成果及網絡安全數據庫中抽取“攻擊”相關的概念及實體,構建網絡防御知識圖譜,將威脅、脆弱性、資產等離散的安全數據提煉為互相關聯的安全知識。在此基礎上,依托知識圖譜整合的知識,假設并約束0day漏洞的存在性、可用性及危害性等未知屬性,并將“攻擊”這一概念建模為知識圖譜中攻擊者實體與設備實體間存在的一種關系,從而將攻擊預測問題轉化為知識圖譜的鏈接預測問題。采用基于路徑排序算法的知識圖譜推理方法挖掘目標系統中可能發生的 0day 攻擊,并生成 0day 攻擊圖。復用分類器輸出的預測得分作為單步攻擊發生概率,通過計算并比較不同攻擊路徑的發生概率,預測分析 0day 攻擊路徑。實驗證明,所提方法能夠依托知識圖譜提供的知識體系,為攻擊預測提供較全面的知識支持,降低預測分析對專家模型的依賴,并較好地克服 0day 漏洞未知性對預測分析造成的不利影響,提高了 0day 攻擊預測的準確性,并且借助路徑排序算法基于圖結構這一顯式特征進行推理的特點,能夠對推理結果形成的原因進行有效反溯,從而一定限度上提高了攻擊預測分析結果的可解釋性。
關鍵詞:知識圖譜?;?0day攻擊?;?攻擊路徑預測
論文引用格式:
孫澄, 胡浩, 楊英杰, 等. 基于網絡防御知識圖譜的0day攻擊路徑預測方法[J]. 網絡與信息安全學報, 2022, 8(1): 151-166.
SUN C, HU H, YANG Y J, et al. Prediction method of 0day attack path based on cyber defense knowledge graph[J]. Chinese Journal of Network and Information Security, 2022, 8(1): 151-166.
0 引言
在當今網絡攻防體系中,0day漏洞是指未被安全廠商發現,卻可能被黑客組織掌握的系統脆弱性的總稱。在被用于發起0day攻擊時,因其對于防御者具有未知性,造成攻防雙方嚴重的信息不對稱,使防御者缺乏漏洞細節信息,難以實施有效檢測,攻擊者因此提高了攻擊的隱蔽性及成功率。當前,0day攻擊常被應用于入侵高防護級別的信息系統并實現攻擊的隱蔽持續,如“震網”事件。由此可見,如何克服0day漏洞未知性導致的 0day 攻擊難以檢測的問題已成為當前網絡安全領域面臨的一大難題。
關于 0day 攻擊檢測的研究主要包括事前的攻擊預測及融合告警的實時檢測兩方面,其中,攻擊預測是指在攻擊發生前,綜合系統配置信息及有關攻擊知識,對目標系統中潛在0day攻擊的位置、可能性及影響進行預判。具體可分為基于統計學的預測技術及基于攻擊場景的預測技術。前者通過統計分析現有漏洞的生命周期,對新漏洞出現的時間、數量及宿主等進行預測,進而實現 0day 攻擊的預測,然而,此類預測技術未結合攻擊場景,分析0day攻擊對系統安全造成的危害,且準確度不高。后者則以已知漏洞利用模型為參照,構建0day攻擊模型,在生成已知攻擊路徑的基礎上,依據同一路徑所屬攻擊的前后依賴關系,匹配攻擊的前后置條件,從而預測0day攻擊。Wang等基于漏洞存在及利用的最壞情況假設,構設 0day 漏洞利用規則,在生成全局0day攻擊圖的基礎上,提出了k-0day安全度量,依據攻陷目標節點所需 0day 漏洞最小數量評估網絡安全性,該研究雖然實現了0day攻擊危害性的度量,但在最壞情況假設下生成的全局攻擊圖,規模過大,難以應用于節點規模較大的網絡。而Albanese 等則提出了無須事先生成全局攻擊圖即可評估系統 k-0day 安全性的算法,提高了k-0day安全度量的可行性。然而以上研究均以安全度量為研究重點,未深入涉及0day攻擊的推理方法。Yang等參照已知漏洞利用規則,構建提權、DDoS及信息泄露等多種0day攻擊模型,并提出了較為完整的0day攻擊圖生成算法,但該算法不加約束地假設系統每個設備均存在一個0day漏洞,導致攻擊圖中存在大量發生概率較低的0day攻擊。葉子維等基于已知攻擊路徑及權限提升原則,對 0day 攻擊條件進行了約束,排除了部分冗余的0day攻擊,然而其關于0day攻擊的推理依賴前期生成完整的已知攻擊路徑,難以應對已知漏洞較少,不足以構建完整攻擊路徑的場景。
0day攻擊的實時檢測是指基于攻擊圖等預測結果,融合實時告警信息,通過攻擊級聯,依據被檢測的已知攻擊間的“跳躍”狀況,對可能已發生的0day攻擊進行的推理。Ahmadinejad等通過設置攻擊級聯閾值,判斷出現攻擊“跳躍”的路徑是否出現未知攻擊。Sun等通過構建系統調用依賴圖,結合入侵報警信息,在系統調用層面實現了0day攻擊檢測,提高了檢測精度。而Singh 等則提出了利用并行處理提高檢測實時性的分層式0day攻擊檢測架構。然而,以上攻擊實時檢測的研究本質上仍需以攻擊預測生成的結果作為先驗知識實施推理。
綜上所述,攻擊預測技術是0day攻擊檢測研究的關鍵。然而,關于0day攻擊預測的研究普遍依靠假設的條件、專家知識構建的攻擊模型以及同一攻擊路徑中攻擊的前后依賴關系來應對0day漏洞未知性的影響,這一過程存在3個方面的不足:一是條件假設缺乏有效約束,易導致0day攻擊的預測結果規模過大,降低了預測的意義;二是專家知識構建的攻擊模型,易受專家主觀知識面的制約;三是在已知攻擊路徑不完整的情況下,預測方法難以適用。針對以上不足,本文提出了基于知識圖譜的0day攻擊路徑預測方法,利用網絡防御知識圖譜將攻擊相關的威脅、資產、脆弱性等數據融合為知識相互關聯且覆蓋面較廣的安全知識庫,依據其中整合的漏洞數據、攻擊意圖等知識,對0day漏洞未知屬性的假設條件進行合理約束;其次,利用路徑排序算法,以知識圖譜中鏈接攻擊者實體與目標實體的關系路徑為特征,從更全面的角度對0day攻擊展開預測,克服專家知識構設模型的局限性;最后,以歷史攻擊數據為樣本,設計并訓練 Logistic 二元分類器,實施單步攻擊預測,從而擺脫對已知攻擊路徑的依賴,并通過復用 Logistic 二元分類器輸出的單步攻擊發生概率,計算攻擊路徑綜合利用率,預測針對目標資產最有可能被攻擊者利用的 0day攻擊路徑,從而支持防御決策。
1 預備知識
為使表述清晰準確,對文中相關概念定義如下。
定義 1 網絡防御知識圖譜(CKG,cyber defense knowledge graph)
CKG以三元組(CSO, FACT, T)表示,其中, CSO=(C, R, P)為網絡安全本體,C為類集,R為關系類型集,P為屬性類型集,FACT為以RDF (resource description framework)三元組格式表示的數據知識的集合,T為CSO中的類與FACT中的實體對象的類型從屬關系集合。
定義2 0day漏洞
0day漏洞指未被安全廠商發現,卻可能被黑客組織掌握的系統脆弱性的總稱。為使研究更具針對性,以下0day漏洞僅指未被安全廠商發現的技術漏洞。
定義3 0day攻擊
0day攻擊指攻擊者利用掌握的0day漏洞發起的單步攻擊,記為?a0。相對地,已知攻擊 ak為攻擊者利用已知漏洞發起的單步攻擊。
定義4 0day攻擊路徑zap
zap是指包含0day攻擊的一組前后依賴的單步攻擊構成的無環攻擊序列,表示為(A,E),其中, A為單步攻擊集,E為鏈接單步攻擊的有向邊集。
定義5 0day攻擊圖ZAG
ZAG指包含0day攻擊的攻擊圖,表示為(A, Priv, L, Prob),其中,A={a0}∪{ak}為0day攻擊與已知攻擊組成的單步攻擊集,單步攻擊 a以二元組(host, vul)表示,host為目標設備,vul為利用的脆弱性,Priv 為單步攻擊的前后置權限集,L={A×Priv}∪{Priv×A}為單步攻擊與權限間存在的鏈接,表示相互間的前后置關系, Prob為單步攻擊發生概率的集合。
定義6 關系路徑(rp,relation path)
rp指由知識圖譜中的一組關系類型組成的序列,寫作。其中,ci=Domain(ri+1)=Range(ri),c0≡Domain(rp), cl≡Range(rp),l=|rp|表示關系路徑長度,為關系路徑包含的關系類型總數,0≤i≤l。
本文中知識圖譜與攻擊圖的關系如下:CKG是攻擊預測算法的輸入,作為知識庫,為攻擊預測提供所需的知識;0day 攻擊圖ZAG 則是攻擊預測結果的圖形表示。
關系路徑與攻擊路徑的區別如下:rp用作路徑排序算法中logistic regression模型執行攻擊預測使用的特征;0day 攻擊路徑 zap 則是以 0day攻擊圖為參照,結合多步攻擊發生概率,提取的攻擊路徑預測結果。
對本文中出現的主要符號描述如表1所示。
2 網絡防御知識圖譜
知識圖譜是一種利用圖模型描述知識并建模萬物間關聯關系的有效技術方法。將該技術應用于網絡安全領域,構建網絡防御知識圖譜,可將異構碎片化的網絡安全數據整合為格式統一、互相關聯的安全知識,為攻擊預測提供支持,有利于實施針對性防御。以下重點對網絡防御知識圖譜架構構建以及網絡安全本體設計進行詳細介紹。
2.1 架構構建
根據定義1可知,網絡防御知識圖譜可分為模式層與數據層兩部分,其中,模式層為知識圖譜的核心,以網絡安全本體(CSO,cyber security ontology)定義了網絡防御的基本概念體系,為數據層知識的建模提供模式定義。數據層則是知識圖譜的主體,是通過知識抽取、知識融合等步驟獲取的具體事實,在模式定義下建模而成的數據知識的集合,數據知識以RDF三元組形式表示為(subject, predicate, object)。兩層關系示例如圖1所示,該示例的模式層定義了攻擊模式類、脆弱性類以及分別以兩者為定義域、值域的關系類型exploit,數據層則以此模式建模了數據知識(CVE-2017-0290, Code Injection, exploit),表示代碼注入這一攻擊模式能夠利用漏洞 CVE2017-0290。
圖1???模式層與數據層關系示例
根據知識圖譜的分層結構,其構建主要有自頂向下、自下而上兩種方法。由于當前網絡安全領域概念體系的研究已較為成熟,因此網絡防御知識圖譜適用于自頂向下的知識圖譜構建方法,即首先構建以網絡安全本體為內容的模式層,再以模式層為基礎,綜合多種知識抽取及融合技術,從異構數據源提取并建模數據知識,構建數據層。網絡防御知識圖譜架構構建如圖2所示。
圖2???網絡防御知識圖譜構建架構
圖中綠色、橙色箭頭分別代表模式層、數據層構建涉及的步驟,藍色箭頭則為兩者共同涉及的步驟,箭頭序號表示步驟次序。對于自頂而下的知識圖譜構建方法,首先抽取現有網絡安全領域本體的研究成果,利用本體集成的方式構建網絡安全本體,完成模式層構建,在此基礎上,以本體定義的知識模式為參照進行數據層的知識抽取、融合,實現數據層構建,知識抽取過程中,針對關系數據庫提供的結構化數據以及以文本為代表的非結構化數據,可分別使用D2R(relational database to RDF)工具及深度學習的方法實現知識抽取。最終,為更好地支持路徑排序算法等圖結構算法進行知識推理,使用圖數據庫將數據知識存儲為以節點、邊為元素的屬性圖格式,完成知識存儲,由圖數據庫對外提供統一的知識圖譜應用接口。
2.2 本體設計
由自頂而下的知識圖譜構建順序可知, CSO 是決定網絡防御知識圖譜質量的關鍵。本文利用本體集成的方式構建 CSO,通過將現有研究較為成熟的網絡安全本體融合為一個統一本體,借鑒當前該領域研究成果并實現不同成果間的優勢互補。由于司成等?提出的NSSEKB_O(ontology of network security situation element knowledge base)從領域本體、應用本體、原子本體 3 個層面對網絡安全知識體系進行了系統梳理,具有較好的知識完備性,而謝敏容等構建的 AFACSDO(asset fragility attack cyber security domain ontology)復用了多個有代表性的網絡安全本體,是網絡安全本體研究的最新成果,具有較好的時效性。因此,本文選取以上兩項研究成果作為集成對象實施本體集成。
網絡安全本體以資產、威脅、脆弱性三大知識模塊為基礎,融合 NSSEKB_O 及 AFACSDO的相關概念知識,如圖3所示。其中,資產模塊以設備類為核心,集成了設備存在的組件,操作設備的職員、設備承載的功能、提供的服務、存儲的數據等資產以及設備的權限等類;威脅模塊以攻擊者類為核心,集成了競爭對手、黑客組織等攻擊者類的子類以及攻擊者能夠運用的攻擊模式、攻擊模式常用的工具、所屬的戰術等類;脆弱性模塊以脆弱性為核心,集成了脆弱性利用產生的后果,并將脆弱性類細化為已知漏洞、0day漏洞、人性弱點等子類。為提高圖3的可視性,圖中使用有向邊表示不同的關系類型,有向邊的起始類及目標類分別為關系類型的定義域與值域。關系類型將同一知識模塊中的不同類以及不同知識模塊互相關聯起來,構成知識體系。
3 0day攻擊路徑預測
網絡防御知識圖譜將攻擊這一概念定義為以攻擊者類為定義域、設備類為值域的關系類型(圖3紅色虛線),具體攻擊行為的推理問題即轉化為知識圖譜數據層中攻擊者實體與設備實體間攻擊關系的預測問題。而路徑排序算法(PRA,path ranking algorithm)是一種用于知識圖譜鏈路預測的有效方法,其預測結果不僅準確率高,且可解釋性強,能夠便于防御者在獲取預測結果后對攻擊成因等知識進行挖掘,因此本文選用PRA算法執行單步攻擊預測,并實現0day攻擊圖的構建。在此基礎上,通過分析比較不同攻擊路徑的綜合利用率,預測攻擊者最有可能利用的0day攻擊路徑。
圖3???網絡安全本體示意
3.1 0day漏洞未知屬性分析
在實施預測前,通過未知屬性分析,對缺失的0day漏洞屬性進行假設并實施約束,這是預測分析的基礎。0day漏洞未知的屬性主要包括漏洞存在位置、利用條件以及產生影響等信息。當前相關研究主要通過條件假設的方式對未知的0day漏洞信息進行補全,在此過程中,如何對假設的漏洞信息進行合理約束是決定預測結果質量的關鍵。本文基于知識圖譜整合的知識,在提出0day漏洞存在性、可用性、危害性假設的基礎上,分別采用統計分析、樣本訓練及意圖分析的方式對相關假設進行約束。
3.1.1 0day漏洞存在性
存在性假設:0day漏洞可能存在于設備的任意組件中。
NVD、CNNVD等數據庫提供的漏洞數據顯示,不同組件已曝光的漏洞數量存在明顯差別,表明漏洞的存在性與作為其載體的組件存在關聯。因此對于該假設,可利用組件特征進行約束,將0day漏洞視為組件將來可能曝光的漏洞,通過統計分析不同組件的漏洞曝光歷史數據,對不同組件存在0day漏洞的可能性進行量化。
圖4為以CNNVD公布的2015年7月以來的漏洞數據為樣本,抽取廠商(vendor)、組件類型(ctype)兩類組件屬性作為特征,按月統計獲取的不同屬性組件月漏洞曝光數的平均占比,平均占比越高表示具有相應屬性的組件相對于其他組件存在0day漏洞的可能性越高。如圖4所示,不同廠商組件的漏洞曝光平均占比由高到低呈現明顯的階梯狀下降趨勢,據此可將廠商劃分為高、中、低3類。高占比廠商(HPV, high production vendor)包括 Google、Oracle、Microsoft,月平均占比約 6%,中等占比廠商(MPV, middle production vendor)包括 IBM、Adobe、Apple、Cisco,月平均占比約4%,低占比廠商(LPV, low production vendor)為Mozilla至GitLab等,月平均占比約 1%,其余圖中未顯示的廠商占比相對較低,認為其存在0day漏洞的可能性極小,設為0。而組件類型方面,應用及操作系統類型組件的漏洞曝光數占比均接近50%,而硬件類型組件遠遠小于前者,僅占 3%。對以上占比數據進行歸一化處理,構造0day漏洞存在概率p的賦值矩陣,如表1所示。
圖4???漏洞曝光數平均占比統計分析
根據存在性假設,在知識圖譜中建立0day漏洞實體至全部組件實體的關系“P-exist-1”,記indv(0day)、indv(Cmpt)分別為某0day漏洞實體及某組件實體,則兩實體間的關系“P-exist-1”成立的概率prob(P-exist-1)為:prob(P-exist-1(indv(0day), indv (Cmpt)) = p(indv (Cmpt).vendor, indv(Cmpt).ctype)
由上述可見,0day漏洞的存在性假設受到了組件特征的約束,當廠商、類型取值為不同的組合時,0day漏洞存在于相應組件的概率也不同。
3.1.2 可用性與危害性
可用性假設:0day漏洞可能被目標設備上的任意權限觸發。
權限在知識圖譜中以權限實體的形式存在,不同漏洞的觸發需要不同程度的權限,而權限越高,越便于攻擊者觸發漏洞。在知識圖譜中設置關系“trigger”的屬性“tri_prob”表示權限觸發0day漏洞的概率,依據權限高低進行賦值。關系“trigger”包含于攻擊者實體與目標設備實體間的關系路徑中,因而“tri_prob”通過參與路徑特征的計算,可體現于樣本特征中。在利用攻擊樣本對 Logistic 二元分類器進行訓練的過程中,依據正負樣本的區別,可將0day漏洞的利用條件約束于樣本中的情景。當分類器判定0day攻擊關系成立時,通過查詢知識圖譜中攻擊者實體在設備實體上已獲取的權限實體,可確定本次觸發0day漏洞所使用的權限。
危害性假設:0day 漏洞利用產生的危害僅能夠滿足攻擊者實現對目標設備攻擊意圖的最低需求。
漏洞利用產生的危害在知識圖譜中以后果實體的形式表示,同時,知識圖譜通過威脅實體,對攻擊者的攻擊意圖進行了整合。由于攻擊者利用漏洞發起攻擊是以實現攻擊意圖為目的的,如果漏洞利用產生的后果不足以支持攻擊意圖的實現,則攻擊者沒有利用該漏洞的必要,而當后果超出實現攻擊意圖的需要時,超出的部分對于攻擊者而言意義也不大,因此以上假設利用攻擊意圖約束 0day 漏洞利用產生的危害性是可行且較為合理的。例如,攻擊者實體 APT-28 主要從事竊密活動,目標設備實體存儲有機密資料,在知識圖譜中構建威脅實體“竊取機密”作為APT-28對該設備的攻擊意圖,若預測APT-28利用0day漏洞對該設備發起了攻擊,則產生的后果通過威脅實體約束為“機密性損害”,不再額外涉及完整性、可用性等其他方面的影響。
3.2 路徑排序算法
路徑排序算法的基本思想是將鏈接兩個實體的關系路徑作為特征來預測實體間是否存在某種特定關系。具體而言,該算法依托知識圖譜提取實體間的一組關系路徑,選擇合適的方法計算起始實體沿該路徑到達目標實體的概率,記為路徑特征,以此為輸入,利用訓練好的 Logistic Regression 模型綜合全部路徑特征計算待測關系成立的概率,并依據閾值判斷關系是否成立。
3.2.1 算法示例說明
引用一個簡單的PRA算法應用實例,簡要說明該算法的操作過程。知識圖譜子圖如圖5所示。
圖5???知識圖譜子圖的實例
需要預測的目標關系為born In City。第一步,提取定義域、值域分別為Person類及City類的關系路徑,并限制路徑長度不超過 2;第二步,獲取目標關系的實例,正例如(Tom, Paris),負例如(Tom, Lyon);第三步,計算關系實例中起止實體間的路徑特征,構造樣本;第四步,利用樣本數據訓練分類器;最后,使用訓練完成的分類器進行預測。各步驟產生的數據如表2所示。
3.2.2 關系路徑提取
由定義6可知,關系路徑為關系類型的序列,屬于模式層知識,通過查詢網絡安全本體,提取Domain(rp)=Adversary,Range(rp)=Device,長度不超過6的關系路徑rp,如表3所示。
給定起止實體的情況下,表3中的關系路徑反映了實體間在不同方面的關聯性,如路徑rp2從攻擊意圖對設備承載功能產生的威脅方面刻畫攻擊者與目標設備的聯系,而rp8則從脆弱性對設備承載功能的危害方面刻畫了兩者間的聯系。
3.2.3 路徑特征計算
路徑排序算法利用隨機游走的方法計算路徑特征,對于任意關系路徑rp:
給定起始實體 s∈Domain(rp),目標實體d∈Range(rp),則路徑特征hs,rp(d)計算如下:
當rp=?時,
當rp≠?時,記rp':
采用遞歸的方式計算特征,
其中,是以實體d'為起點沿rl經單步游走到達實體d的概率,表示實體d'與d間關系rl的存在性,若關系存在,則,否則為0。
使用以上方法計算獲取的路徑特征值本質上決定于游走者(walker)在游走過程中經過的實體在知識圖譜中的數量分布,該方法未考慮實體特殊性對關系存在性產生的影響,且對于實體數量分布過于敏感。以關系路徑Sample:為例,計算由攻擊者實體a到脆弱性實體c的路徑特征,為便于說明,假設知識圖譜中a能夠運用的攻擊模式集為AM,AM中任一攻擊模式b均能夠利用的脆弱性c,且其能夠利用的脆弱性的集合為Vb,則根據隨機游走算法,第一步游走:a 到達任意一個攻擊模式實體b的概率Pr(b|a;apply)=1/|AM|,第二步游走:由攻擊模式集AM中的實體游走到脆弱性實體 c,對于任一實體 b∈ AM,Pr(c|b;exploit)=1/|Vb|,綜合兩步游走,路徑特征,可見,特征計算結果僅與攻擊模式實體及脆弱性實體的數量分布相關。對于利用難度不同的脆弱性實體,在相關實體數量分布一致的情況下,具有相同的路徑特征值,將此特征值應用于攻擊預測,顯然并不合理。且當攻擊者a 新增一種攻擊模式,而該模式無法利用脆弱性 c 時,路徑特征值受攻擊模式數量變化影響,減小為,而事實上新增的這一攻擊模式由于不能利用脆弱性c,不會對路徑特征產生影響。鑒于此,為提高路徑特征計算的合理性,將實體的特殊性納入路徑特征的計算,并降低路徑特征對實體數量分布的敏感性,將式(2)改變如下:
exp(r(d',d))為給定實體d'與d間關系r存在的期望,期望計算如式(4)所示。通過在計算過程中加入關系存在概率prob,將實體特殊性產生的影響計入路徑特征,并將沿關系路徑轉移的最大概率作為路徑特征,有效消除了無關實體新增對路徑特征產生的不合理影響。如出現上節實例的情況時,由于新增攻擊模式實體與脆弱性c不存在利用關系,經該實體到達脆弱性 c 的概率為 0,不影響最大概率的選取。
prob(r(d',d))取值受實體特殊性影響并需結合實際選擇合理的方法進行計算,如 3.1 節對于關系“P-exist-1”存在概率的賦值,需通過統計不同屬性組件的漏洞曝光歷史數據,橫向比較數量占比,進行量化計算,此處不再贅述。
3.2.4 攻擊分類器構造
路徑預測算法利用Logistic Regression模型構造二元分類器實施鏈路預測。在完成路徑特征計算的基礎上,通過設計得分函數,綜合不同的路徑特征,計算待測關系成立的得分,得分越高表示關系成立的可能性越高。得分函數如式(5)所示。
其中,θi為關系路徑權重,表示相應關系路徑對待測關系是否成立的影響程度,n 為路徑特征數量。令,則得分函數可寫作θT?H,以其為輸入,二元變量y表示待測關系是否成立,Logistic二元分類器構造如下:
上式表示取定參數θ,路徑特征向量為H的情況下,待測關系成立的概率。Logistic二元分類器以 0.5 為閾值,當 Pr>0.5 時,判斷關系成立。為取定合適的參數θ,需利用樣本對分類器進行訓練,記樣本集為D={(Hj,yj)},m=|D|為樣本規模,Logistic分類器的損失函數稱為交叉熵,如式(7)所示。
訓練過程為求解使損失函數在樣本集上取值最小的一組參數作為最優解。訓練完成后,將參數最優解代入式(6),通過輸入給定兩實體間的關系路徑特征H,可對實體間待測關系進行預測。
3.3 攻擊路徑預測
利用給定系統的歷史攻擊數據構造攻擊樣本,訓練分類器LCA用于預測攻擊是否發生,在此基礎上,從攻擊正樣本中區分 0day 攻擊、已知攻擊,構造0day攻擊樣本,訓練分類器LCZ用于判斷發生的單步攻擊是否為 0day 攻擊。完成攻擊預測后,利用圖數據庫的查詢功能,以起止實體及關系路徑為條件,對攻擊利用的脆弱性及前后置條件進行挖掘,構造單步攻擊,并生成0day攻擊圖。
依托 0day 攻擊圖,以攻擊者初始權限為起點,目標權限為終點,提取0day攻擊路徑,并通過復用LCA分類器輸出的單步攻擊發生的概率,計算不同攻擊路徑的綜合利用率,以此為依據,預測攻擊者最有可能利用的0day攻擊路徑。綜合利用率計算如式(8)所示。
0day攻擊路徑預測算法如算法1所示。
算法1 0day攻擊路徑預測算法
輸入 網絡防御知識圖譜CKG;關系路徑集RP;攻擊樣本D1;0day攻擊樣本D2
輸出 0day攻擊圖ZAG=(A, Priv, L, Prob);0day攻擊路徑集ZAP;綜合利用率集CE;最優攻擊路徑opt_zap
1) InitializeA, L, Prob, Priv, Thr, Cons, ZAP, CE=?;
2) att=selectAttacker(CKG);//選取攻擊者
3) Host←selectHost(CKG);//提取系統設備集
4) Init_Priv←Query _Privilege (att, CKG);//查詢攻擊者初始權限集
5) LCA.fit (D1);LCZ.fit (D2);//分類器訓練
6) while 1:
7)Atmp=A;
8) for host in Host:
9) Calculate Hatt, host;//特征計算
10) y=LCA.predict (Hatt, host);
11) if(y==0)//分類器判斷攻擊未發生,跳出本次循環
12) continue;
13) if(LCZ.predict (Hatt, host))://判斷攻擊為0day攻擊
14) vul=Query _0day (att, host, CKG, RP);//在知識圖譜中查詢攻擊利用的0day漏洞實體
15) Thr←Query_Threat(att, host, CKG, RP);//查詢攻擊者對目標設備的攻擊意圖
16) Create post_priv satisfy Thr;//創建滿足攻擊意圖的權限實體作為攻擊后置權限
17) else
18) vul=Query _Known (att, host, CKG, RP);//在知識圖譜中查詢攻擊利用的已知漏洞實體
19) Cons←Query_Consequence (vul, CKG, RP);//查詢漏洞利用的后果
20) post_priv=Evaluate(Cons);//根據后果評估攻擊者獲取的權限作為后置權限
21) a=Create Attack(host, vul);//構造單步攻擊
22) if(a∩A==a)://判斷攻擊不為新攻擊,則跳出本次循環
23) continue;
24) A←a;
25) prob(a)=LCA.prediction _prob(Hatt, host);//提取攻擊發生的概率
26) Prob←prob(a);
27) Priv←post_priv;
28) L←CreateLink(a, post_priv);
29) pre_priv=Query_Privilege(att, host, CKG, RP);//查詢攻擊的前置權限
30) Priv←pre_priv;
31) L←CreateLink(pre_priv, a);
32) CKG=CKG.update(post_priv);//更新知識圖譜中攻擊者獲取的權限
33) if (Atmp==A)//判斷本輪預測未出現新的攻擊,則結束預測
34) break;
35) endwhile
36) Goal_Priv←check(Priv);//選取目標權限
37) ZAP←AttackPathExtraction(Init_Priv, Goal_Priv);//提取攻擊路徑
38) forzapin ZAP:
39) Calculateexploit(zap);
40) CE←exploit;
41) opt_zap=argmax(exploit(zap), zap);
42) Return ZAG=(A, Priv, L, PR), ZAP, CE, opt_zap
算法的核心為步驟13~32,利用步驟5訓練完成的分類器逐個預測系統設備可能發生的單步攻擊,并區分已知攻擊、0day攻擊。依托網絡防御知識圖譜對攻擊利用的漏洞及前后置權限進行挖掘,按前后置關系將單步攻擊鏈接為攻擊圖。由于新的攻擊可能使攻擊者獲取新的權限,因此步驟 29 對知識圖譜CKG 進行了實時更新。執行完一輪預測后,若步驟 33 判斷無新攻擊出現時,預測結束,輸出0day攻擊圖ZAG,并進行攻擊路徑提取;否則,開始新一輪預測。由于圖數據庫查詢的代價與知識圖譜規模無關,僅與遍歷范圍成正比,而以上查詢均以關系路徑為約束條件,關系路徑長度不超過6,因此每次查詢的開銷最大為O(6)。假設系統中漏洞數量為N,設備數量為M,每個漏洞均能導致攻擊,且每一輪只能發現一例新的攻擊,則需執行N輪預測,每一輪包括M次預測,算法時間復雜度為O(6MN)。
4 實驗
為驗證本文方法的有效性,設計實驗環境如圖6所示。該實驗環境由3個子網組成,子網間部署防火墻實現訪問控制。其中,DMZ區域部署的Web服務器及郵件服務器分別提供對外應用服務接口及對內郵件服務;子網1為辦公區,部署兩臺主機及一臺文件服務器,文件服務器存儲企業機密文件;子網2為業務區,部署應用服務器,為Web服務器提供應用業務支撐。
圖6???實驗環境
系統中各實體間權限關系矩陣如表4所示,其中,縱向實體為權限擁有者,橫向實體為權限載體。系統中脆弱性的分布區分為10組訓練場景及1組實驗場景,分別用于訓練分類器及實施預測。其中,使用9組訓練場景生成的攻擊樣本訓練分類器,剩余1組用于生成測試集,測試分類器性能參數;實驗場景則主要用于生成0day攻擊圖、預測0day攻擊路徑,對比現有研究成果,檢驗本文方法的優勢。表5為訓練場景10與實驗場景的脆弱性分布信息。
4.1 圖譜生成
利用Neo4j desktop 1.3.8圖數據庫,以網絡安全本體(圖3)定義的知識模式為基礎,建模數據層知識,生成網絡防御知識圖譜。威脅、資產、脆弱性3個知識模塊分別以信息工程大學CTF戰隊模擬的黑客組織、實驗環境設備以及不同場景中存在的脆弱性為核心構建相應實體,并從CAPEC、NVD、CNNVD等公開數據庫抽取實體關系、屬性等知識。其中,威脅知識方面,攻擊者實體命名為“CTF001”,設定其以竊取文件服務器內信息為主要攻擊意圖,對于其余系統設備以制造攻擊“跳板”為意圖,其知識圖譜表示如圖7所示。圖7中粉色模塊表示攻擊模式實體;灰色模塊表示設備權限實體;棕色模塊表示威脅實體,包括對文件服務器的數據竊取(如 data_stolen_file_server),對防火墻的功能阻斷(如function_blocked_ firewall_1)以及對其余設備轉發功能的篡取(如function_grabbed_web_server)。脆弱性知識方面,系統中存在的0day漏洞實體及相應關系根據 3.1 節的相關假設進行構建。實際實驗過程中,選取可用且能滿足攻擊者對相應設備攻擊意圖的技術漏洞模擬攻擊者掌握的0day 漏洞。例如,以代碼執行漏洞 CVE-202014841模擬App_Server的weblogic_server組件存在的0day漏洞,該漏洞僅需遠程訪問權限即可觸發,獲取權限越高,越容易觸發,符合0day漏洞可用性假設,且執行后能夠完成目標設備的控制,從而滿足攻擊者對App_Server的攻擊意圖。
圖7???攻擊者實體的知識圖譜
需要注意的是,不同場景下,漏洞種類、數量、分布不同,在計算路徑特征時,需根據場景對知識圖譜的相應部分進行替換。
4.2 樣本訓練
以模擬攻擊者的 CTF 戰隊對不同訓練場景下的目標系統的攻擊數據為基礎,依托知識圖譜,以其中被攻擊成功的設備為目標實體,計算路徑特征,構建攻擊正樣本{(Hi, y=1)},以攻擊失敗及未被選擇為攻擊目標的設備為目標實體,構建攻擊負樣本{(Hj,y=0)}。在Python3.5環境中使用模型sklearn.linear_model_LogisticRegression構造二元分類器,利用訓練場景1~9生成的攻擊樣本訓練LCA。在此基礎上,在攻擊正樣本中,區分0day攻擊與已知攻擊,分別構造0day攻擊正樣本及負樣本,訓練LCZ。使用5-fold交叉驗證,獲取分類器學習曲線,如圖8所示。
圖8???分類器學習曲線
使用訓練場景10生成的樣本作為測試集,進行分類器測試,對比預測結果與實際攻擊情況,獲取分類器 LCA的精準率為 0.875、召回率為0.917、調和平均值F1為0.883。而分類器LCZ對該測試集的預測結果與實際情況相符。由此可見,分類器對 0day 攻擊具有較好的識別能力。
4.3 實驗結果
利用4.2節訓練完成的分類器LCA與LCZ對實驗場景下的目標系統中可能發生的攻擊進行預測,生成 0day 攻擊圖,如圖9 實線部分所示。
圖9???實驗場景0day攻擊圖
由圖9可知,預測攻擊過程為:攻擊者首先利用遠程訪問權限對firewall_1發起0day攻擊,突破訪問控制后,獲取E-mail_Server的遠程訪問權限,利用其操作系統 CentOS 存在的CVE-2018-18772漏洞,發起跨站請求攻擊,獲取Host_1及 firewall_2的訪問權限,可分別利用兩者存在的 CVE-2018-12714、CVE-2017-17156 漏洞發起代碼注入攻擊,通過 Host_1 獲取File_server 的訪問權限,通過 firewall_2 獲取Host_2的訪問權限,此時,可直接利用訪問權限對File_server發起0day攻擊,或對Host_2發起0day攻擊,獲取File_Server的用戶權限,從而觸發已知漏洞 CVE-2018-8169。LCA輸出單步攻擊的發生概率如表6所示。
以獲取root_File_Server為最終攻擊目的,提取0day 攻擊路徑包括:zap1:a1→a2→a3→a4以及zap2:a1→a2→a5→a6→a7,利用式(8)計算兩路徑的綜合利用率分別為 0.18、0.21。由此可知,攻擊路徑zap2雖然涉及5次攻擊,多于zap1的4次攻擊,但其綜合利用率更高,更有可能被該攻擊者利用。
4.4 實驗分析
根據實驗結果,通過對比本文與文獻提出的方法,從預測結果的準確性、方法便捷性、適用性、相關知識的全面性以及預測結果可解釋性等方面分析本文方法的優勢,以驗證本文方法的有效性。具體對比分析如表7所示。
準確性方面,利用文獻提出的方法生成的0day攻擊圖除圖9實線部分外,還包括虛線所示部分,并且文獻簡單的根據 0day 攻擊數量預測攻擊路徑 zap1 更可能成為攻擊者選擇的攻擊路徑。而本文通過對 0day 存在性假設的約束(Web_Server 中存在 0day 漏洞可能性最高的為apachewebserver 組件,可能性為 0.05),并利用訓練完成的分類器 LCA對 Web_Server 發生攻擊的概率進行了計算(攻擊發生概率0.3),判定攻擊關系不成立,較為合理地排除了此處的0day攻擊,縮減0day攻擊預測結果規模,同時根據綜合利用率更合理地預測 zap2 為攻擊者選擇的攻擊路徑,提高了預測準確性。
便捷性方面,文獻在實施預測前不僅需要收集相關知識,且需構建專門的0day攻擊規則作為預測分析的基礎,造成了一定的開銷,而本文依托網絡防御知識圖譜及知識圖譜推理方法實施預測,無須專門構建0day攻擊規則,節省了開銷,提高了方法的便捷性。
適用性方面,文獻提出的方法,需依賴較為完整的已知攻擊路徑實施攻擊推理,而本實驗環境中,Web_server不存在已知漏洞且firewall_1的已知漏洞CVE-2019-1934需用戶級權限觸發,因而無法在初始權限條件下生成已知攻擊路徑,文獻的方法無法適用于此類場景。
知識全面性方面,本文以當前研究已較為成熟的網絡安全領域概念知識為基礎,從威脅、資產、脆弱性3個方面構建網絡防御知識圖譜,并提取關系路徑作為特征應用于攻擊預測,預測過程不僅使用了文獻等涉及的漏洞存在性、可用性、影響等漏洞知識,也結合了攻擊意圖、資產類型等知識,使預測分析更加全面,提高了預測結果的合理性。
除以上優勢外,本文方法生成的預測結果也具有較好可解釋性,以發生在Host_2的0day攻擊(Host_2, 0day-005)為例,Host_2存在已知漏洞CVE-2018-8472,不需要特殊權限即可觸發,然而,分類器 LCZ判斷攻擊者攻破 firewall_2 獲取訪問Host_2的能力后,最終實施了0day攻擊。依托知識圖譜查詢實體“CTF001”與“Host_2”間存在的路徑如圖10 所示,依據圖中實體及關系,分析攻擊者發起 0day 攻擊的原因包括兩方面:一方面,由圖10中路徑可知,攻擊者以奪取Host_2的轉發功能為目的,但是CVE-2018-8472屬性顯示,該漏洞僅對目標的機密性產生影響,攻擊者無法利用該漏洞實現攻擊意圖;另一方面,Host_2的windows 7系統屬于Microsoft 推出的操作系統,存在0day漏洞的可能性相對較高(表1賦值為0.26),且根據0day漏洞危害性假設,0day攻擊能夠滿足攻擊者對目標設備攻擊意圖。因此,導致攻擊者更傾向于使用0day攻擊,而不是利用已知漏洞。
圖10???實體“CTF001”與“Host_2”間路徑
綜合以上5個方面可見,本文提出的方法有效可用。
5 結束語
本文針對0day漏洞未知性導致的0day攻擊檢測難問題以及現有研究在利用條件假設、攻擊前后關聯等方法克服未知性影響過程中出現的不足,提出了基于網絡防御知識圖譜的 0day攻擊路徑預測方法。利用當前研究較為成熟的網絡安全本體知識,構建了知識覆蓋較全面的網絡防御知識圖譜,將離散的威脅、脆弱性、資產知識整合為高度關聯的知識體系,為攻擊預測提供了完備的知識支撐。在此基礎上,將攻擊預測問題轉化為鏈接預測問題,選取預測精度高且預測結果可解釋性強的路徑排序算法,提取攻擊者實體與目標設備實體存在的關系路徑作為特征,更全面地對攻擊進行了預測,有效克服了0day漏洞未知性以及專家知識片面性的影響,提高了預測準確性,并對預測結果的可解釋性提供了支持。
下一步,在持續優化網絡防御知識圖譜的基礎上,將進一步拓展知識模塊,提高攻擊預測的準確性,并對同時存在多攻擊者情況下,基于知識圖譜的網絡攻擊者溯源問題展開探索。
作者簡介
孫澄(1991?),男,江蘇常州人,信息工程大學碩士生,主要研究方向為APT檢測跟蹤 。
胡浩(1989?),男,安徽池州人,博士,信息工程大學講師,主要研究方向為網絡態勢感知 。
楊英杰(1971?),男,河南鄭州人,博士,信息工程大學教授,主要研究方向為信息安全 。
張紅旗(1962?),男,河北遵化人,博士,信息工程大學教授、博士生導師,主要研究方向為網絡安全、移動目標防御、等級保護和信息安全管理 。
聯系我們:
Tel:010-81055448
? ? ? ?010-81055490
? ? ? ?010-81055534
E-mail:bdr@bjxintong.com.cn?
http://www.infocomm-journal.com/bdr
http://www.j-bigdataresearch.com.cn/
轉載、合作:010-81055307
大數據期刊
《大數據(Big Data Research,BDR)》雙月刊是由中華人民共和國工業和信息化部主管,人民郵電出版社主辦,中國計算機學會大數據專家委員會學術指導,北京信通傳媒有限責任公司出版的期刊,已成功入選中國科技核心期刊、中國計算機學會會刊、中國計算機學會推薦中文科技期刊,以及信息通信領域高質量科技期刊分級目錄、計算領域高質量科技期刊分級目錄,并多次被評為國家哲學社會科學文獻中心學術期刊數據庫“綜合性人文社會科學”學科最受歡迎期刊。
關注《大數據》期刊微信公眾號,獲取更多內容
總結
以上是生活随笔為你收集整理的虚拟专题:知识图谱 | 基于网络防御知识图谱的0day攻击路径预测方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实验五 编写、调试具有多个段的程序
- 下一篇: 汇编语言之大小写转换问题