鄭中一,李賽飛,江曉峰
(1.西南交通大學 計算機與人工智能學院,四川 成都 611756;2.西南交通大學 信息科學與技術(shù)學院,四川 成都 611756)
日志分析技術(shù)以網(wǎng)絡環(huán)境中各類設備產(chǎn)生的記錄為目標,通過自動化分析網(wǎng)絡中的各類改變以發(fā)現(xiàn)網(wǎng)絡威脅并及時發(fā)出警報,可顯著提高計算機系統(tǒng)的防護能力。目前成熟的日志分析技術(shù)已經(jīng)能夠準確地檢測出漏洞利用、病毒植入或異常系統(tǒng)行為等事件。然而,隨著高級持續(xù)性威脅(Advanced Persistent Threat,APT)的出現(xiàn)[1],傳統(tǒng)日志分析技術(shù)的局限性也隨之體現(xiàn):一方面,其主要信息來源為日志數(shù)據(jù),維度相對單一;另一方面,其難以表示數(shù)據(jù)中異常事件的關(guān)聯(lián)性。
為提升關(guān)聯(lián)能力,研究人員開始將圖的思想融入日志分析。相比于文本數(shù)據(jù),將日志中的事件和關(guān)系轉(zhuǎn)換為節(jié)點和邊以構(gòu)成圖結(jié)構(gòu)能直觀體現(xiàn)出數(shù)據(jù)間的關(guān)聯(lián)性。Diederichsen等人[2]針對網(wǎng)絡日志文件提出一種方法,將日志實體材料化為圖結(jié)構(gòu),并通過Neo4j數(shù)據(jù)庫驅(qū)動以提供查詢和可視化。朱元慶等人[3]基于系統(tǒng)日志的派生關(guān)系將日志轉(zhuǎn)化為無向圖,并應用XGBoost算法優(yōu)化圖中各邊的權(quán)重值。但該工作構(gòu)建的日志圖中關(guān)系較為單一。薛見新[4]分析了基于終端側(cè)、系統(tǒng)日志和應用程序日志的關(guān)聯(lián)、網(wǎng)絡側(cè)和終端側(cè)的關(guān)聯(lián)3個維度的攻擊溯源日志圖構(gòu)建技術(shù)。余真奇[5]提出了一種按起源圖思想構(gòu)建系統(tǒng)日志圖的方法。
為豐富信息來源,研究人員將圖進一步擴展為圖譜。圖結(jié)構(gòu)除能建模日志中的復雜事件和關(guān)系外,也能有效地處理多源數(shù)據(jù)的集成和關(guān)聯(lián),即形成圖譜。MITRE組織構(gòu)建了一個知識圖譜“CyGraph[6]”,其將網(wǎng)絡設施、安全態(tài)勢、威脅和任務依賴知識與日志數(shù)據(jù)融合為一個全局模型。Nimbalkar等人[7]討論了一種通過語義表示將日志實體鏈接到外部知識的方法,但并未包含威脅情報這一外部知識。Narayanan等人[8]的研究較好地彌補了這一不足。他們提出一種能夠集成多源威脅情報的網(wǎng)絡安全知識圖譜,并以日志數(shù)據(jù)為對象進行了推理分析。Kurniawan等人[9]提出了一種基于知識圖譜的日志分析框架,其基于語義網(wǎng)融入了多種威脅檢測技術(shù),并提供了內(nèi)部系統(tǒng)知識和外部安全知識的上下文關(guān)聯(lián)。陶源等人[10]提出網(wǎng)絡安全等級保護日志分析圖譜模型,構(gòu)建了幾種將等保測評數(shù)據(jù)與系統(tǒng)日志相融合的理論分析框架。
目前圖譜相關(guān)研究大多用其構(gòu)建的模型直接對原始日志或經(jīng)過簡單關(guān)聯(lián)的日志圖進行分析。我們認為,前述兩個方向的研究思路可以進行有效結(jié)合,以形成更加完整的圖譜模型。為驗證此觀點,本文提出了一種基于圖數(shù)據(jù)庫的系統(tǒng)日志圖譜模型。一方面,其對系統(tǒng)日志內(nèi)部的多種關(guān)系進行建模,將文本數(shù)據(jù)轉(zhuǎn)換為更直觀易懂的圖數(shù)據(jù);另一方面,該模型實現(xiàn)了日志與外部多維知識的有效融合,便于分析人員以全局視角研究網(wǎng)絡安全事件。
知識圖譜是一種結(jié)構(gòu)化的語義知識庫,用于描述現(xiàn)實世界中的概念及其相互關(guān)系。其基本組成單位是“實體—關(guān)系—實體”三元組[11]。
如圖1所示,基于一篇綜述網(wǎng)絡安全知識圖譜應用場景的文獻[12]提出的4維圖譜結(jié)構(gòu),本章將以行為數(shù)據(jù)維度為核心,輔以安全知識、威脅情報和環(huán)境數(shù)據(jù)3個維度,設計并構(gòu)建日志圖譜模型。
圖1 通用網(wǎng)絡安全知識圖譜結(jié)構(gòu)
安全知識庫通常是為個人、政府、安全產(chǎn)品和服務社區(qū)開發(fā)特定威脅模型和方法的基礎。在本模型中,其作用是從抽象層面描述或標記系統(tǒng)日志所代表的行為。
2020年,來自麻省理工學院的研究團隊構(gòu)建了一個綜合網(wǎng)絡安全知識圖模型,并命名為“BRON[13]”。如圖2所示(圖中數(shù)字代表實體內(nèi)的節(jié)點數(shù)量),BRON將對抗戰(zhàn)術(shù)技術(shù)和常識矩陣(Adversarial Tactics Techniques and Common Knowledge,ATT&CK)、通用攻擊模式枚舉和分類(Common Attack Pattern Enumeration and Classification,CAPEC)、通用弱點枚舉(Common Weakness Enumeration,CWE)以及通用漏洞披露(Common Vulnerabilities and Exposures,CVE)等知識庫依次關(guān)聯(lián),形成一種由高維戰(zhàn)術(shù)至低維漏洞的層次結(jié)構(gòu)。鑒于BRON已經(jīng)開源,本文圖譜模型直接將其作為“安全知識”這一維度的知識。
圖2 BRON知識圖內(nèi)部結(jié)構(gòu)
威脅情報(Cyber Threat Intelligence,CTI)是一種基于證據(jù)的知識,包括上下文、機制、標示、含義和建議,這些知識與資產(chǎn)所面臨的威脅或危害相關(guān),可用于指導應對威脅或危害的決策[14]。在本模型中,它的作用是在理論層面指導基于日志的異常事件關(guān)聯(lián)。
由于威脅情報的提取和分析并非本文的研究重點,故我們在試驗圖譜模型時引入了若干常見攻擊的“戰(zhàn)術(shù)技術(shù)過程(Tactics Techniques Procedures,TTPs)”描述作為威脅情報。
環(huán)境數(shù)據(jù)是指圖譜模型具體應用環(huán)境的數(shù)據(jù)。一般以目標系統(tǒng)的網(wǎng)絡拓撲圖為基礎,加入設備對應的操作系統(tǒng)、IP地址等屬性構(gòu)成。其在本模型中的作用是以對目標系統(tǒng)的物理組成與結(jié)構(gòu)進行建模。本文實驗環(huán)境的網(wǎng)絡拓撲將在第2章中給出。
行為數(shù)據(jù)是目標系統(tǒng)在實際工作過程中產(chǎn)生行為的記錄。本文模型的行為數(shù)據(jù)由Sysmon生成,其是一款由微軟開發(fā)的日志傳感器,能監(jiān)控系統(tǒng)的動態(tài)行為并記錄于日志。Sysmon日志是由多種字段信息構(gòu)成的結(jié)構(gòu)化數(shù)據(jù),我們從中篩選出圖結(jié)構(gòu)化所需的主要字段,如表1所示。
表1 Sysmon日志主要字段信息
將文本格式的日志轉(zhuǎn)換為圖數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵在于梳理日志中的關(guān)聯(lián)關(guān)系。除較為明顯的時間關(guān)系外,我們還挖掘出了另外3種關(guān)聯(lián)關(guān)系:進程—日志、進程—進程、父進程—子進程?;谶@些關(guān)系,我們可以有效地構(gòu)建出Sysmon日志圖。
(1)日志—日志(Syslog-Syslog)?!叭罩尽罩尽标P(guān)系可基于日志的生成時間進行構(gòu)建。我們首先根據(jù)Hostname字段對日志分類,然后按時間順序?qū)⑷罩竟?jié)點進行串聯(lián),如圖3所示。
圖3 “日志—日志”關(guān)系內(nèi)部結(jié)構(gòu)
(2)進程—日志(Process-Syslog)?!斑M程—日志”關(guān)系隱藏在日志的ProcessGuid字段內(nèi)容中。實際上,一個進程包含多條日志,同一進程下的日志有著相同的ProcessGuid。為更清楚地表示該關(guān)系,我們將“進程”這一抽象概念進行了實體化:首先提取出所有ProcessGuid,并創(chuàng)建對應數(shù)量的“進程”節(jié)點進行一一綁定;之后將每個進程所包含的日志節(jié)點與之相連,形成圖4所示的“進程—日志”關(guān)系。這樣一個進程內(nèi)的所有日志便可通過一個節(jié)點統(tǒng)一表示,大大減少了后續(xù)構(gòu)建進程間關(guān)系時的連線數(shù)量。
圖4 “進程—日志”關(guān)系內(nèi)部結(jié)構(gòu)
(3)進程—進程(Process-Process)?!斑M程—進程”關(guān)系包含在EventID為“10”的日志中。根據(jù)Sysmon對事件編號的定義,10號事件為“進程訪問”,當一個進程訪問另一個進程時便會產(chǎn)生這類日志。具體而言,10號事件日志獨有SourceProcessGuid和TargetProcessGuid兩個字段,分別用于記錄源進程和目標進程的ProcessGuid,據(jù)此可以構(gòu)建進程間的訪問關(guān)系。
同時,由于10號事件日志自身沒有Process-Guid,故無法與進程實體相連。為避免其成為孤立節(jié)點,我們設計了圖5所示結(jié)構(gòu),即將其插入到“進程—進程”關(guān)系中間。
圖5 “進程—進程”關(guān)系內(nèi)部結(jié)構(gòu)
(4)父進程—子進程(Parentp-Chidp)?!案高M程—子進程”關(guān)系包含在EventID為“1”的日志中。根據(jù)Sysmon對事件編號的定義,1號事件為“進程創(chuàng)建”,當一個進程創(chuàng)建另一個新進程時便會產(chǎn)生這類日志。具體而言,1號事件日志獨有ParentProcessGuid字段,記錄了創(chuàng)建該進程的父進程的ProcessGuid,據(jù)此可以構(gòu)建進程間的父子關(guān)系,如圖6所示。
圖6 “父進程—子進程”關(guān)系內(nèi)部結(jié)構(gòu)
此外,為探究“父進程—子進程”關(guān)系是否包含于“進程—進程”關(guān)系,我們通過統(tǒng)計兼具兩種關(guān)系的進程組的數(shù)量,分別計算出兩組日志數(shù)據(jù)集中兩種關(guān)系的重疊率。表2數(shù)據(jù)表明,這兩種關(guān)系僅有少量重疊,應被視為獨立的兩種關(guān)系,分別進行建模。
表2 “父進程—子進程”與“進程—進程”重疊情況
前四節(jié)分別探討論述了圖譜中各個維度的內(nèi)部關(guān)系。本節(jié)我們定義了表3所示的維度間關(guān)系對各維度進行關(guān)聯(lián),以構(gòu)成完整的圖譜模型。
表3 圖譜模型維度間的關(guān)聯(lián)關(guān)系
本文圖譜模型的完整結(jié)構(gòu)如圖7所示(BRON的內(nèi)部結(jié)構(gòu)在此省略),其呈現(xiàn)出分層結(jié)構(gòu),旨在實現(xiàn)高維威脅情報與低維設備資產(chǎn)(Asset)之間的相互映射。模型中實體與關(guān)系的數(shù)據(jù)庫文件的具體編寫將在第4章中舉例說明。
圖7 網(wǎng)絡安全日志圖譜模型結(jié)構(gòu)
本文實驗的靶場主要由3個部分組成,其拓撲信息如圖8所示。
圖8 實驗靶場網(wǎng)絡拓撲圖
(1)數(shù)據(jù)生成區(qū)。數(shù)據(jù)生成區(qū)以服務器為物理基礎,由服務器上運行的若干虛擬機具體組成。其中每臺虛擬機均安裝了日志傳感器Sysmon和日志轉(zhuǎn)發(fā)軟件Nxlog。此外,“服務器1”所管轄的局域網(wǎng)被特別配置為了“域”,可由域管理員賬號統(tǒng)一訪問和管理。
(2)攻擊端。攻擊端設定為一臺已接入服務器3所管轄局域網(wǎng)內(nèi)的Kali Linux主機。
(3)數(shù)據(jù)匯總分析端。數(shù)據(jù)匯總分析端由一臺通過軟件防火墻與實驗環(huán)境相隔離的主機構(gòu)成,是本文圖譜模型的實際部署位置。
本文實驗的日志數(shù)據(jù)集中包含兩種攻擊,主要步驟如表4、表5所示。
表4 橫向移動(Lateral movement)攻擊步驟
在實際開發(fā)過程中,可通過圖數(shù)據(jù)庫來驅(qū)動日志圖譜模型。圖數(shù)據(jù)庫一般由“實體”和“關(guān)系”兩種文件組成,文件中的每行代表實體的一個節(jié)點或關(guān)系的一條邊,每列代表實體或關(guān)系的一種屬性。
本文選擇ArangoDB圖數(shù)據(jù)庫來驅(qū)動模型的構(gòu)建與實驗。以“威脅情報”為例,圖7中實體“CTI”的部分實現(xiàn)如圖9所示。其中“_key”屬性是數(shù)據(jù)庫規(guī)定的節(jié)點唯一標識符,其余如戰(zhàn)術(shù)名和攻擊指令模板等為自定義實體屬性;圖7中實體內(nèi)關(guān)系“CTI-CTI”和實體間關(guān)系“CTI-TTP”的部分實現(xiàn)如圖10所示。其中規(guī)定“_from”和“_to”屬性分別用于記錄邊的開始和結(jié)束節(jié)點,格式為“實體名/節(jié)點標識符”。
圖9 圖譜模型實體文件編寫
圖10 圖譜模型關(guān)系文件編寫
本文圖譜的層次結(jié)構(gòu)代表其有著較大的深度,此時基于廣度優(yōu)先搜索(Breadth-First Search,BFS)的圖遍歷算法具備更好的適用性和搜索效率,故我們基于該算法進行相關(guān)實驗。算法流程如下:
以“橫向移動”為例,攻擊過程中,某主機的安全軟件將數(shù)據(jù)集中17465號日志記錄的命令行操作(向外發(fā)送了一個未知應用程序)定義為異常事件,于是我們以該日志節(jié)點為遍歷起點進行事件關(guān)聯(lián)。關(guān)聯(lián)過程分為3步,結(jié)果如圖11所示。
圖11 “橫向移動”攻擊事件關(guān)聯(lián)結(jié)果
(1)日志層向上遍歷至CTI層。該步驟旨在將異常日志映射到相應的攻擊過程上。設定BFS深度為3,搜索路徑為“Syslog-TTP”“Technique-Mitigation”(BRON內(nèi)部關(guān)系)和“CTI-TTP”關(guān)系。遍歷結(jié)果顯示,該日志與44號ATT&CK技術(shù)有映射關(guān)系。該技術(shù)屬于遠程服務利用技術(shù),可設置11號等緩解措施進行防御。并且CTI中記錄的橫向移動攻擊的第2步也使用了該技術(shù)。
(2)CTI層橫向遍歷。該步驟旨在獲取CTI中對應的完整攻擊過程。設定BFS深度為1,搜索路徑為“CTI-CTI”關(guān)系。遍歷結(jié)果顯示,CTI中橫向移動相關(guān)的攻擊過程共有3步。
(3)CTI層向下遍歷至資產(chǎn)層。該步驟旨在關(guān)聯(lián)攻擊事件,還原攻擊全貌。設定BFS深度為6,搜索路徑依次為“CTI-TTP”“Technique-Mitigation”“Syslog-TTP”“Process-Syslog”“Parentp-Childp”和“Asset-Process”關(guān)系。遍歷結(jié)果顯示,黑客在CTC備機(asset/9)和主機(asset/8)間進行了橫向移動。
通過分析關(guān)聯(lián)結(jié)果中的詳細信息得出,由于CTC主備機同屬一個域內(nèi),橫向移動第1步通過網(wǎng)絡共享發(fā)現(xiàn)CTC主機(asset/8);第2步利用網(wǎng)絡共享服務從CTC備機(asset/9)向主機發(fā)送代理程序文件;第3步通過備機(asset/9)遠程運行代理程序,建立攻擊端與主機間的代理連接,實現(xiàn)橫向移動。此外,還發(fā)現(xiàn)CTC備機上與攻擊事件相關(guān)的3個進程(process/741,894,1055)均來自同一個父進程(process/884),經(jīng)驗證該父進程是建立CTC備機與攻擊端之間代理連接的進程,即黑客初始接入的位置。
對圖進行評估可以幫助我們了解和描述圖的特征和性質(zhì),從而更好地理解和分析圖數(shù)據(jù)。本文從基本指標和查詢性能兩個方面對圖譜模型進行評估。
(1)基本指標。圖譜的基本指標如表6所示。這些指標可幫助我們了解圖的整體特征、規(guī)模大小、關(guān)聯(lián)程度和信息傳遞方式等,為進一步的分析、挖掘和算法設計提供基礎。
表6 本文圖譜模型的基本指標
(2)查詢性能。我們使用本文模型分別在兩套數(shù)據(jù)集中查詢兩種攻擊涉及的日志(重復5次),同時在基于Elasticsearch引擎的日志分析平臺上對兩套數(shù)據(jù)集執(zhí)行類似操作,以比較查詢性能。測試環(huán)境為一臺搭載了Intel Core i7-9700 3.00 GHz CPU和64 GB RAM的主機。
表7數(shù)據(jù)顯示,鑒于圖譜模型在日志數(shù)據(jù)間構(gòu)建了關(guān)聯(lián)關(guān)系,相較于日志分析平臺的逐條查詢方式,其擁有更高的查詢效率。然而,測試數(shù)據(jù)也體現(xiàn)出圖數(shù)據(jù)庫的查詢效率受數(shù)據(jù)集大小影響更為明顯,說明當數(shù)據(jù)量過大時,應考慮搭建分布式圖數(shù)據(jù)庫以保證其查詢性能。
表7 查詢耗時記錄
隨著網(wǎng)絡攻擊的不斷進化,傳統(tǒng)日志分析技術(shù)已經(jīng)難以滿足日益增加的網(wǎng)絡安全需求,將新的智能技術(shù)與日志分析技術(shù)融合已經(jīng)成為安全領(lǐng)域的研究熱點。本文提出的模型有效彌補了傳統(tǒng)日志分析技術(shù)信息來源單一和難以關(guān)聯(lián)異常事件的不足,并表現(xiàn)出優(yōu)秀的查詢性能。未來,基于本模型的研究工作可借助實體抽取等技術(shù)引入更加豐富的威脅情報,可融入網(wǎng)絡流量數(shù)據(jù)以更全面地描述系統(tǒng)行為,還可利用知識推理技術(shù)挖掘圖譜中的隱藏信息,進一步提升模型的分析能力。