楊沛安,劉寶旭,杜翔宇
(1.中國科學院大學,北京 100049; 2.中國科學院高能物理研究所,北京 100049; 3.中國科學院信息工程研究所,北京 100093)
隨著威脅情報的發展,安全分析領域開始使用威脅情報數據對各類網絡攻擊進行畫像分析,包括行業畫像、用戶畫像、資產畫像、威脅畫像以及黑客畫像等。目前該領域的研究和應用還處于起步階段,研究內容分散,缺乏系統性。一方面,因為用于網絡安全分析的威脅情報數據在數據結構、處理方法上與傳統互聯網用戶數據有所不同,現有數據分析方法不能完全適用。另一方面,業界對威脅情報數據在攻擊畫像分析中的應用場景、分析需求還不明確,沒有統一的威脅情報數據表達規范,不能為畫像分析提供數據基礎。
關聯關系豐富是威脅情報最重要的特征,威脅情報的分析人員基于在網絡安全分析領域多年積累的分析經驗,通過多角度網絡安全分析需要的知識進行關聯融合實現了威脅情報的重要價值。所以關聯分析在威脅情報分析領域具有十分重要的地位。目前,網絡安全分析人員主要針對特定的安全分析需求,使用關聯分析對低級安全數據進行融合,產生威脅情報。但是隨著網絡安全態勢的急劇惡化,針對越來越多的攻擊難以進行準確高效識別的問題,攻擊分析人員對質量更高、適用性更強的威脅情報及更準確、全面、容易使用的攻擊識別建模方法的需求越來越大。所以研究合適的關聯分析方法對不同類別的威脅情報進行關聯,為攻擊識別提供包含更全面準確攻擊特征的威脅情報具有重要的研究意義。
本文利用威脅情報在數據準確性和關聯性上的優勢,將威脅情報自動化分析得到的威脅要素作為畫像輪廓,以威脅屬性為畫像內容進行畫像分析,構建攻擊識別模型,并從威脅畫像數據表達規范、屬性轉移關系挖掘模型、屬性關聯分析和要素關聯融合方面對面向攻擊識別的威脅情報畫像分析方法進行描述。
攻擊畫像分析是基于攻擊畫像模型和攻擊畫像數據表達規范,利用攻擊要素數據進行攻擊圖繪制,形成基于攻擊要素的攻擊圖攻擊畫像,提高識別準確率。畫像分析技術早期出現于刑偵行業,用于對人物進行描述和分析,包括文獻[1]利用多文檔摘要技術實現人物傳記的提取,文獻[2]利用分類思想,實現多文檔人物傳記摘要系統,文獻[3]提出“元事件”的概念,并將其應用到人物信息抽取領域。這一階段的研究重點集中在人物實體屬性的識別中,缺少對實體關系挖掘的研究。
隨著信息技術的發展,開始出現面向抽象人物和人物群體的畫像分析研究,如面向網絡罪犯分析的計算機取證技術,用于將罪犯各項特征進行挖掘和關聯,形成罪犯畫像。當大數據技術逐漸成熟之后,開始出現基于大數據的用戶畫像分析,并通過這項技術對用戶本身的各類社會屬性以及用戶上網偏好、購買力等信息進行分析,再結合用戶分析框架將這些信息進行有機融合,實現對用戶特征和輪廓的勾畫。文獻[4]面向移動互聯網中的用戶,對其行為和偏好進行研究和分類,并在用戶行為分析方面展開重點討論。文獻[5]提出一種面向客戶的安卓商品推薦軟件,有效降低了客戶進入商場后從海量產品中了解產品信息完成商品挑選的時間成本。文獻[6]給出一種基于特征值的用戶行為分析方法,并結合SVM模型對搜索與排序算法進行優化。文獻[7]提出一種對互聯網用戶的需求和使用偏好等進行挖掘與分析的算法,并對包括個性推薦、定點營銷與廣告投放等內容進行深入介紹。該階段的研究主要是基于用戶的網絡行為和屬性,對其關系進行挖掘,分析用戶行為模式特征,但還局限在單一的“人物行為-模式”分析中,缺少針對分析對象的更全面、深層次的綜合分析。
圖論被廣泛應用于計算機領域,計算和分析各類數據、狀態和模式等。早期攻擊圖在網絡安全分析領域的應用主要是利用攻擊圖的網絡安全性和脆弱性進行分析與評估,后來出現應用攻擊圖進行漏洞分析和告警關聯分析,接著出現基于攻擊圖的異常行為發現和網絡攻擊檢測的相關研究。目前基于攻擊圖的關聯分析在網絡安全分析中的應用主要集中在風險評估與脆弱性分析、漏洞分析與告警關聯、異常發現與攻擊檢測方面。
1.2.1 風險評估與脆弱性分析
該方面的研究從早期單一基于攻擊圖的脆弱性發現和風險評估,向脆弱性與安全評估相結合的方法發展,以實現對網絡安全狀態和相關安全威脅更準確有效的分析與發現。文獻[8]針對網絡弱點關聯分析提出滲透圖的概念,并基于滲透圖設計一種網絡風險評估模型。文獻[9]提出一種基于攻擊圖的網絡安全分析方法,該方法解決了由路徑循環導致的攻擊路徑不可達及威脅概率計算錯誤問題,提高了攻擊路徑最大可達概率算法在復雜網絡脆弱性分析中的適用性。文獻[10]基于對大量脆弱性利用行為的研究,設計一種警報關聯圖用于網絡脆弱性分析,并依此從屬性分析角度給出一種網絡脆弱性分析方法。文獻[11]基于網絡風險評估中,難以對全面安全性與局部脆弱性進行有效綜合評估的問題,將層次化分析方法引入風險評估中。通過分析原子攻擊和攻擊證據的關聯性得到攻擊因果關系,以此因果關系構建貝葉斯攻擊圖,再通過對攻擊圖中脆弱點設計威脅度劃分標準,實現對脆弱點嚴重程度和系統整體安全性的統一分析。文獻[12]針對漏洞分析中對脆弱性進行有效量化困難的問題,給出一種基于攻擊圖的安全脆弱性量化評估方法。先通過脆弱性分析構建貝葉斯網絡攻擊圖,然后對圖中節點進行基于概率值的可利用性分析,最后結合漏洞評分系統和貝葉斯網絡攻擊圖實現對網絡系統脆弱性的量化評估。文獻[13]針對當前系統安全管理中無法對系統整體態勢進行評估的同時,對具體脆弱性和隱患進行識別和與發現這一問題,利用顏色Petri網(Colored Petri Net,CPN)構建系統脆弱性攻擊圖進行脆弱性分析和發現,取得了較好的效果。
1.2.2 漏洞分析與告警關聯
該方面的研究在早期利用圖的相似性分析方法進行告警關聯融合的基礎上,逐漸向利用對漏洞、報警等局部顯性威脅信息的分析結果,對網絡整體安全性進行分析評估和對隱形威脅要素進行識別的方向發展。文獻[14]針對IDS系統無法對具有復合模式的攻擊進行有效識別和預測的問題,給出了一種告警預測圖。基于網絡脆弱性分析結果構建攻擊圖,并利用告警信息對攻擊圖進行優化。設計告警關聯預測算法,利用該攻擊圖將脆弱性和告警信息進行融合,對可能的攻擊位置進行預測。文獻[15]通過多漏洞組合利用對攻擊者可能采取的攻擊路徑進行分析。通過漏洞檢測器確定本地漏洞信息,然后在對這些信息進行分析的基礎上,基于權限提升的攻擊/漏洞關聯分析方法,對漏洞利用路徑進行挖掘,并通過自動化的方法生成漏洞利用攻擊圖。文獻[16]針對以主機為中心的漏洞分析方法對網絡鏈路本身不確定性分析欠缺考慮的問題,提出一種基于不確定圖的漏洞分析方法,采用不確定度準確地描述網絡狀態,并以此得到漏洞的最佳利用鏈路,實現對不確定網絡中漏洞利用方法的有效分析。
1.2.3 異常發現與攻擊檢測
該方面的研究主要是從攻擊性、脆弱性、漏洞利用率等角度,通過最優路徑、最大脆弱性節點的發現對系統安全性進行研究,實現對系統安全狀態的分析。文獻[17]通過從告警數據中挖掘告警屬性間的規律,構建基于擴展有向圖的復合攻擊模型,從而對攻擊行為之間的邏輯關系進行表達。基于該模型通過向后匹配和缺項匹配的方式對新告警與已知告警進行關聯,確定新告警屬于已知攻擊及其處于已知攻擊的何種階段。文獻[18]面向入侵意圖檢測和漏洞發現困難的問題,通過對告警進行分析設計一種三層攻擊圖結構,并結合入侵意圖的概率分析確定攻擊意圖概率圖。然后通過分析圖中可能的關鍵點實現對脆弱性較高主機的發現,進而提高分析人員的分析和檢測效率。文獻[19]定義了一種SAGML語言,基于該語言對攻擊狀態、行為和關系進行描述。然后對攻擊圖的狀態和行為鏈結構進行深入研究,提出基于XML的攻擊圖繪制與分析方法。最后建立適合攻擊圖的檢索和匹配方法,提高攻擊圖的利用率。文獻[20]面對APT攻擊不易識別、持續時間長等特點,將基于圖的評估方法引入APT檢測過程中。通過對APT攻擊在行為、過程方面的特征進行分析,構建網絡風險屬性攻擊圖。然后對系統中各節點的行為和聯通脆弱性進行評估,再結合兩方面評估方法實現系統脆弱性的有效分析。文獻[21]針對攻擊過程中的攻擊識別與發現問題,建立基于Petri網的攻擊成本圖,然后對其可承受的最大攻擊力度進行分析和預測,并依此選擇最優攻擊路徑。
為得到更準確全面的攻擊識別模型,本文提出一種基于威脅情報的網絡攻擊畫像分析方法。以威脅情報中的威脅要素作為畫像骨架,以威脅屬性作為畫像要素。根據從威脅情報中提取的威脅屬性與威脅情報庫中的相關屬性進行關聯,實現“屬性-屬性”的關聯,并利用CPN網在因果關系表達與分析上的優勢,將要素與屬性轉換為要素原子圖。而后通過融合要素原子圖,實現“要素-要素”的關聯,完成畫像分析,形成更全面準確的威脅要素和屬性的攻擊識別模型,即網絡攻擊威脅情報畫像。畫像分析流程如圖1所示。

圖1 威脅情報畫像分析流程
威脅情報在安全分析中的優勢在于其高度結構化的數據框架和具有豐富關聯關系的數據內容。但這些特性也使得現有數據表達規范和通信傳輸協議在威脅情報數據表達的有效性與完整性、傳輸的準確性與安全性等方面存在問題,無法有效進行威脅情報的表達和傳輸。本文旨在設計一種滿足攻擊畫像分析的情報數據表達規范。
目前攻擊畫像分析通常只以攻擊的某一指定要素為重點對象展開畫像分析,如僅針對工具函數序列、網絡行為特征等。這直接導致當面對多步的復雜攻擊時,無法進行有效的檢測和識別。根據相關研究可知,利用威脅情報作為攻擊識別分析的數據進行攻擊畫像分析,目的是對攻擊主體和主體行為進行挖掘和關聯。通過從多要素、富關聯的數據中提取攻擊者、攻擊目標、攻擊工具等關鍵特征及相關屬性,再對特征和屬性進行關聯關系挖掘,形成“特征-屬性-關系”結構的攻擊識別知識。
為滿足以上對畫像分析數據結構和內容上的要求,本文參考STIX情報表達規范的12個要素和Cybox規范的88個屬性,對攻擊畫像數據表達模型進行設計。模型中包含威脅要素9類,威脅屬性56種,具體如下:
1)攻擊工具Tool,使用實施攻擊過程的合法工具,如遠控工具和網絡掃描工具等。威脅屬性:id表示代碼,description表示描述,kill_chain_phase表示位于殺傷鏈階段,tool_version表示工具版本,behavior表示工具功能。
2)惡意軟件Malware,攻擊過程中植入到目標系統的惡意代碼或者惡意軟件。威脅屬性:id表示代碼,description表示描述,kill_chain_phase表示位于殺傷鏈階段,behavior表示軟件效果,release表示釋放內容,root表示權限,reachable表示目標可達性,exploit表示利用脆弱性。
3)攻擊模式Attack_Pattern,用于表達攻擊者嘗試攻擊的方法,用于攻擊分類、生成攻擊的固定模式及對攻擊實施過程的詳細描述。威脅屬性:id表示代碼,description表示描述,kill_chain_phase表示位于殺傷鏈階段。
4)觀測線索Observation,從系統或者網絡中可觀測到的數據,如日志信息或網絡流量。威脅屬性:first_observed表示首次觀測時間,last_observed表示最后觀測時間,number_observed表示觀測數量。
5)攻擊指標Indicator,用于表達可疑或者惡意的網絡空間安全行為的指標。威脅屬性:id表示代碼,description表示描述,pattern表示模式,pattern_lang表示模式定義語言,pattern_lang_version表示模式定義版本,valid_from表示有效起始時間,valid_from_Reliability表示有效起始可信度,valid_until表示有效截止時間,valid_until_percison表示有效截止精度,kill_chain_phase表示位于殺傷鏈階段。
6)攻擊者Threat_Actor,實施有惡意意圖攻擊的個體、團體和組織。威脅屬性:id表示代碼,description表示描述,aka表示代號,name表示姓名,roles表示角色,goals表示目標偏好,sophistication表示復雜度,resource_level表示資源級別,primary_motivation表示初始動機,secondary_motivations表示第二動機,private表示偏好。
7)識別信息Identity,用于代表并區分的個體、組織或者團體。威脅屬性:id表示代碼,description表示描述,identity_class表示識別等級,group表示小組,activitiyRegion表示活動區域,country表示國籍,contact_Info表示聯系信息。
8)入侵集合Intrusion_Set,由一個組織精心組織的一系列行為和資源集合。威脅屬性:id表示代碼,description表示描述,aliases表示身份類別,first_noticed表示首次發現時間,first_noticed_Reliability表示可信度,goals表示目標偏好,resources_level表示資源級別,primary_motivation表示初始動機,region表示地區,country表示國籍。
9)組織戰役Campaign,描述一系列的針對特殊目標集合的惡意行動或攻擊的敵對行為,經常被定義成目標或入侵集合的一部分。威脅屬性:id表示代碼,description表示描述,aliases表示別名,first_seen表示首次發現時間,first_seen_precision表示首次發現精確度,objective表示目的。
根據Killchain模型中對7個階段的描述,網絡攻擊行為由一系列分階段的依據因果順序發生的子攻擊行為共同組成。而這一由多個依序發生子攻擊組成網絡攻擊的特點反映其威脅情報中,多個威脅要素依據因果關系順序出現。所以本文可以參考該思路設計威脅情報中威脅屬性關系挖掘模型。假設該模型是一個屬性轉移圖,該圖為有向圖,圖中的頂點是威脅屬性,邊則表示屬性的轉移關系(主要是因果關系)。圖中各點間的路徑表示各屬性間的因果關系,包括直接相關和間接相關,直接相關的屬性間存在唯一路徑,間接相關屬性間存在多條路徑。
定義1威脅屬性集合A,其中p、q表示具有關聯關系的兩個威脅屬性。
定義2屬性轉移關系集合T,表示威脅情報中所有屬性轉移關聯的集合。
定義3屬性轉移關系t,表示兩點間路徑,即兩屬性間的轉移關系,由一個五元組表示
從威脅情報中得到的威脅屬性可能只是所屬威脅要素包含的眾多威脅屬性之一,需要通過以該屬性為關聯特征,與威脅情報庫中的威脅要素進行關聯。本文中借助CPN在因果關系表達與處理上的優勢,結合威脅屬性狀態轉移序列對威脅屬性進行關聯,并實現表達轉換,構建要素原子圖。威脅屬性關聯過程如圖2所示。

圖2 威脅屬性關聯過程
在CPN中每一個原子攻擊包括3類要素:原子攻擊發生的條件,原子攻擊本身和原子攻擊產生的影響。攻擊條件和攻擊本身是從屬關系,攻擊本身和攻擊影響是因果關系,以此來實現攻擊條件向攻擊影響的因果關系轉移,如圖3所示。
在威脅情報中,威脅要素與威脅屬性屬于從屬關系,而威脅要素與另一要素的屬性為因果關系。例如攻擊者和攻擊工具分別是威脅要素,名字和代碼分別是它們的屬性之一,兩者為從屬關系。而攻擊者因為要發動攻擊,所以使用攻擊工具,此為因果關系,得到的攻擊者屬性和攻擊工具的關系如圖4所示。

圖4 威脅情報要素與屬性的關系
Fig.4 Relationship between elements and attributes of threat intelligence
在圖4中,橢圓形節點用于表示威脅要素從屬屬性和因果屬性,等同于CPN結構中的庫所;矩形節點用于表示威脅要素,等同于CPN結構中的變遷,左邊的橢圓節點為要素原子圖的輸入庫所E0,右邊的橢圓節點要素原子圖的輸出庫所Ed。E0-t由威脅情報庫中各類要素情報提供,t-Ed由屬性轉移序列得到。
下文基于CPN給出要素原子圖的形式化定義。要素原子圖(Element Atom Grapic,EAG)是一個CPN結構,記為EEAG=〈EAo,t,EAd〉,其中,EEAG為要素原子圖的輸入屬性集合,t為變遷,表示一個威脅要素,EAo為威脅要素原子圖的輸出屬性集合,EAd表示與該威脅要素存在因果關系的另一個威脅要素的要素屬性(稱為目標屬性)。需要說明的是,在通常應用CPN進行網絡攻擊關聯分析時,確定攻擊的輸入庫最困難,即“攻擊發生的條件”,而在威脅情報數據中,由于威脅情報本來就經過分析加工后得到,因此直接給出了明確的攻擊條件,可以大幅提高分析效率,這是威脅情報的優勢所在。
通過“屬性-屬性”的關聯,實現了對威脅屬性的擴展和表達,但是攻擊識別模型還需包含各個要素與屬性間的關聯關系,這就需要通過要素原子圖的關聯融合實現。下文對要素融合圖進行定義。
威脅要素融合圖(Element Atom Grapic,EFG),記為EEFG=〈PEo∪PEd,TEo∪TEd,E〉,其中,PEo代表原始庫所集合,包含所有要素原子圖中的輸入庫所,即從屬屬性的集合,PEd代表目標庫所集合,包含所有要素原子圖中輸出庫所,即目標屬性的集合,TEo代表唯一變遷集合,表示所有不包含因果關系的威脅要素的集合,這些威脅要素的屬性都包含在PEd中,TEd代表關聯變遷集合,代表所有處于因果關系中的威脅要素的集合,這些威脅要素至少有一個屬性包含在PEd中。因此TEd中各威脅要素的出現需要依賴于TEo中各從屬關系的威脅要素,E為EFG中所有要素、屬性之間有向邊的集合。
該要素融合圖具有以下約束條件:
1)要素融合圖中的有向連接只能用于威脅要素與屬性相連,即E?((PEo∪PEd)×(TEo∪TEd))∪((TEo∪TEd)×(PEo∪PEd))。
2)初始要素集合TEd中變遷to,ppre(to)表示該要素包含的所有屬性的集合,ppost(to)表示與要素有因果關系的所有屬性的集合,即(ppre(t)?PEo)∧(ppost(t)?PEd)。
3)最終要素集合TEd中變遷to,ppre(td)表示該要素包含的所有屬性的集合,ppost(td)表示與要素有因果關系的所有屬性的集合,即(?p∈ppre(t):p∈PEd)∧(ppost(t)?PEd)。
在得到要素融合圖的定義后,通過要素融合算法對要素原子圖進行融合,融合過程如下:
1)將EFG初始設置為空,調用Build過程創建一個表示存在AT類要素中name類屬性的庫所。
2)以新創建的庫所創建初始EFG。
3)循環添加EAG到EFG中,迭代EFG:
(1)對要素轉移序列ElementTransfer中的每個EAG進行分解,確定其包含的屬性tl。
(2)根據要素的鍵值對(rk,rn),在威脅情報庫TIDB中定位到該要素的位置,然后返回該要素所包含的所有屬性內容TIret。
(3)根據tl和TIret作為輸入,構造相應的EAG。
(4)將新構造的EAG追加到EFG中。
(5)當追加完成ElementTransfer中所有要素后,結束循環。
4)返回最終狀態的EFG。
下文結合實際案例對基于屬性的威脅要素融合方法進行介紹。從一份“海蓮花”APT分析報告中得到了包括“OceanLotus”“KVDropper”“SKI”“HUAWEI”“魚叉攻擊”“CVE-2010-20318”“網絡通訊中斷”“殺毒軟件”“通過水坑攻擊……后進行魚叉攻擊……”等在內的8類威脅要素和10個威脅屬性。這些威脅屬性構成了原始威脅情報,如圖5所示。原始威脅情報知識對各攻擊特征(威脅屬性)進行簡單羅列,不包含任何關系(從屬或因果)。

圖5 原始威脅情報
通過對威脅屬性的轉移關系進行挖掘,得到威脅屬性到威脅要素的轉移關系序列,如“攻擊源(OceanLotus)-->攻擊工具(KVDropper)”“攻擊工具(SKI)-->惡意代碼(CVE-2010-20318)”。屬性狀態轉移序列如圖6所示。本文通過威脅屬性關聯方法,得到包含威脅要素與威脅屬性及其關聯關系的要素原子圖如圖7所示。

圖6 威脅要素關聯關系挖掘后的威脅情報

圖7 要素原子圖
以識別出的威脅要素與屬性為畫像輪廓,通過“屬性-屬性”關聯和“要素-要素”融合,形成針對本次攻擊的威脅情報畫像如圖8所示。可以發現,通過使用該畫像分析方法對原始情報進行分析和處理,不僅實現了對原始情報中屬性和要素的準確和全面表達,而且對屬性隱藏關系進行挖掘,實現了對原始情報的豐富和補充,形成了完整、準確的攻擊識別模型。相比原始情報,威脅情報畫像分析方法得到的攻擊畫像對攻擊的描述更加完整準確。以威脅情報畫像作為相關攻擊事件識別和跟蹤的分析模型,可以有效提高分析準確率和效率。在后續針對APT攻擊的追蹤分析中,該畫像將幫助分析人員定位多個同源攻擊事件。

圖8 要素融合關聯后的威脅情報畫像
為得到更準確全面的攻擊識別模型,本文提出威脅情報畫像分析方法。以威脅情報中提取的威脅屬性轉移序列為畫像骨架,將威脅情報庫中存儲的相關要素及屬性關聯,實現基于屬性的威脅情報融合,形成更豐富和完善的攻擊特征,從而完成威脅情報畫像的繪制。通過實際分析案例驗證了本文畫像分析方法的正確性和有效性。由于基于專家知識與分析經驗得到的威脅要素與屬性因果關系,可能會對畫像分析結構產生影響,因此后續將在關聯屬性挖掘階段引入置信度機制,并優化威脅屬性關系轉移序列的挖掘方法,進一步提高網絡攻擊識別準確度。