溯源圖技術(shù)在入侵檢測(cè)與威脅分析中的應(yīng)用

發(fā)布時(shí)間 2022-05-10

現(xiàn)代信息系統(tǒng)中存在的眾多漏洞一直是攻擊者進(jìn)行攻擊的“關(guān)鍵”突破點(diǎn),因此漏洞檢測(cè)已經(jīng)成為防守方的一門必修課。但常見(jiàn)的漏洞檢測(cè)方法中,模糊測(cè)試覆蓋率不足,基于符號(hào)執(zhí)行程序的驗(yàn)證方法又對(duì)檢測(cè)設(shè)備的性能有較高要求,此外漏洞發(fā)現(xiàn)后的補(bǔ)洞過(guò)程也極為耗時(shí)。


入侵檢測(cè)與威脅分析系統(tǒng)的研發(fā)為對(duì)抗攻擊提供了更直接、更快速的新方法, 能很大程度緩解上述問(wèn)題。然而,現(xiàn)有的入侵檢測(cè)系統(tǒng)大多依賴于提取自已有攻擊的攻擊特征,如入侵指標(biāo)(Indicator of Compromise,IoC)等,其作為檢測(cè)依據(jù)并未真正把握到攻擊的要點(diǎn),使得防御者總是落后一步。攻擊者總是可以通過(guò)找到新的攻擊面,構(gòu)造多階段多變的復(fù)雜攻擊來(lái)繞此類檢測(cè)。因此,安全研究人員和從業(yè)人員亟需重新考慮傳統(tǒng)的入侵檢測(cè)方案,設(shè)計(jì)出新一代更加通用和魯棒的入侵檢測(cè)機(jī)制來(lái)檢測(cè)各種不斷變化的入侵方式。

微信圖片_20220510114114.png

David Bianco很早便提出了入侵檢測(cè)的 “痛苦金字塔模型”(如圖1所示) ,研究指出相對(duì)于 “Hash 值”、“IP 地址”等底層入侵指標(biāo),“攻擊工具” 和 “攻擊策略、技術(shù)、流程(TTPs)” 等高層特征在入侵檢測(cè)中有更大的價(jià)值,也更難以分析和改變。這是因?yàn)榈讓拥娜肭种笜?biāo)的出現(xiàn)更具偶然性,因此攻擊者很容易改變這些指標(biāo)來(lái)逃避檢測(cè)。此外,無(wú)文件攻擊和 “Live-off-the-Land” 攻擊等攻擊技術(shù)的出現(xiàn),使得攻擊行為涉及的底層特征與正常行為完全無(wú)法區(qū)分。而高層次特征中帶有豐富的語(yǔ)義信息(包括攻擊的方法、目標(biāo)、利用的技術(shù)等),更具魯棒性。對(duì)于攻擊者而言,攻擊策略、技術(shù)、流程(TTPs)與其最終的攻擊目標(biāo)直接相關(guān),很難被真正的改變,因此對(duì)入侵檢測(cè)更有意義。同時(shí),語(yǔ)義信息可以很好的幫助安全分析人員理解攻擊,包括入侵的途徑、可能的損失等,從而針對(duì)性地做出對(duì)應(yīng)的止損和彌補(bǔ)措施。

???

系統(tǒng)溯源圖介紹


2015 年,美國(guó)國(guó)防部高級(jí)研究計(jì)劃署(DARPA)啟動(dòng)的一項(xiàng)名為 “透明計(jì)算(Transparent Computing)” 的科研項(xiàng)目為上述問(wèn)題的解決提供了可能性。該項(xiàng)目旨在通過(guò)將目前不透明的計(jì)算系統(tǒng)變得透明,輔助海量的系統(tǒng)日志建模,從而為后續(xù)的高層次程序行為分析和高效地入侵檢測(cè)提供支持。具體來(lái)說(shuō),該項(xiàng)目將開(kāi)發(fā)一套數(shù)據(jù)收集與建模系統(tǒng)來(lái)記錄和建模所有系統(tǒng)和網(wǎng)絡(luò)實(shí)體(包括進(jìn)程、文件、網(wǎng)絡(luò)端口等)及其之間的互動(dòng)和因果關(guān)系(Causal Dependency)。這些實(shí)體和關(guān)系可以以圖的形式表示,如圖2所示,一般被稱為 “溯源圖(Provenance Graph)” 或者 “因果圖(Causality Graph)”。


微信圖片_20220510175156.png

上圖是一個(gè)利用Firefox漏洞進(jìn)行入侵的溯源圖例子:攻擊者從x.x.x.x:80發(fā)起攻擊,利用Firefox的漏洞創(chuàng)建并啟動(dòng)了mozillanightly瀏覽器插件,該插件通過(guò)cmd執(zhí)行環(huán)境信息獲取命令獲取敏感信息后回傳到x.x.x.x:443,最后創(chuàng)建burnout.bat清除所有入侵痕跡。(箭頭方向代表數(shù)據(jù)流或者控制流方向)


溯源圖是一個(gè)帶有時(shí)間信息的有向圖,兩個(gè)節(jié)點(diǎn)之間可能有多條不同屬性(包括時(shí)間和具體操作等)的邊。該圖準(zhǔn)確的記錄了系統(tǒng)實(shí)體間的交互關(guān)系,包含豐富的信息。前文提到的攻擊圖可以看作溯源圖中提取并抽象后的,與攻擊直接相關(guān)的部分子圖。但需要指出的是,溯源圖記錄的并不是細(xì)粒度的數(shù)據(jù)流和控制流,而是可能的因果控制關(guān)系,因此在進(jìn)行多跳的分析時(shí)會(huì)引入錯(cuò)誤的依賴,導(dǎo)致核心的依賴爆炸問(wèn)題,這也是基于溯源圖入侵檢測(cè)的核心問(wèn)題。


???

基于系統(tǒng)溯源圖的入侵檢測(cè)框架



微信圖片_20220510175629.png

圖3.基于系統(tǒng)溯源圖的入侵檢測(cè)系統(tǒng)框架及關(guān)鍵技術(shù)

溯源圖能很好地還原系統(tǒng)中的各種行為,使其成為了近年來(lái)入侵檢測(cè)領(lǐng)域熱門有潛力的研究方向。安全研究者在其基礎(chǔ)上設(shè)計(jì)了多種模型來(lái)進(jìn)行系統(tǒng)中惡意行為地檢測(cè)與分析,包括 “數(shù)據(jù)采集、解析和壓縮”,“數(shù)據(jù)存儲(chǔ)與壓縮”,和 “入侵檢測(cè)和溯源分析” 在內(nèi)的許多具體研究問(wèn)題。我們整理了威脅分析與檢測(cè)系統(tǒng)的整體框架,如圖3所示。以下,我們將具體討論框架的三個(gè)模塊并對(duì)其中技術(shù)進(jìn)行分析:


01

數(shù)據(jù)收集模塊


數(shù)據(jù)收集是所有檢測(cè)和分析系統(tǒng)的基礎(chǔ)。一般而言,基于溯源圖的威脅檢測(cè)系統(tǒng)會(huì)收集系統(tǒng)日志作為數(shù)據(jù)源,包括 Windows 的內(nèi)置日志系統(tǒng) Event Tracing for Windows(ETW)、Linux 的日志系統(tǒng) Auditd等?;谝蕾嚪治龅姆椒ǖ囊粋€(gè)普遍的挑戰(zhàn)是 “依賴爆炸問(wèn)題”。錯(cuò)誤的依賴會(huì)導(dǎo)致后續(xù)分析的開(kāi)銷與誤報(bào)指數(shù)型增長(zhǎng),導(dǎo)致分析的失敗,而細(xì)粒度的數(shù)據(jù)收集可以從根本上緩解這一問(wèn)題。


02

數(shù)據(jù)管理模塊


系統(tǒng)日志為威脅分析提供了大量有價(jià)值的信息,然而其巨大的數(shù)據(jù)量給數(shù)據(jù)的存儲(chǔ)和分析帶來(lái)了很大的壓力。因此在數(shù)據(jù)管理模塊中,我們一方面需要提供合理的數(shù)據(jù)存儲(chǔ)模型來(lái)存儲(chǔ)海量的數(shù)據(jù)并提供高效的查詢分析接口,另一方面要嘗試通過(guò)壓縮和剪枝去除冗余的數(shù)據(jù)。


數(shù)據(jù)存儲(chǔ)模型 利用圖結(jié)構(gòu)存儲(chǔ)溯源圖是一種解決思路,但受溯源圖規(guī)模限制,將圖完全存儲(chǔ)在內(nèi)容內(nèi)存中是不現(xiàn)實(shí)的,只能在小規(guī)模的實(shí)驗(yàn)中使用,無(wú)法大規(guī)模部署。因此,研究者們提出了將圖中所有邊視為數(shù)據(jù)流,每個(gè)邊只處理一次,并利用節(jié)點(diǎn)上標(biāo)簽記錄計(jì)算過(guò)程的方案。為了加以區(qū)分,我們將用圖數(shù)據(jù)存儲(chǔ)圖的方案稱為 “緩存圖”,流式處理的方案為“流式圖”。流式圖方案存在優(yōu)勢(shì)的原因在于溯源圖中邊的數(shù)量遠(yuǎn)遠(yuǎn)大于節(jié)點(diǎn)數(shù)量,因此查詢節(jié)點(diǎn)的屬性效率比查詢邊的效率高得多。類似地,一些研究以節(jié)點(diǎn)作為鍵,邊為值,將溯源圖存儲(chǔ)在查詢效率更高的關(guān)系型數(shù)據(jù)庫(kù)中,我們稱之為 “節(jié)點(diǎn)數(shù)據(jù)庫(kù)”。

微信圖片_20220510175751.png

圖4.對(duì)邊數(shù)據(jù)的壓縮算法

微信圖片_20220510175843.png

數(shù)據(jù)壓縮算法 溯源圖上的數(shù)據(jù)壓縮算法可以大致分為兩類:一類是通用的壓縮算法,盡可能地保持了溯源圖的信息;另一類與檢測(cè)和分析算法耦合,使用有較大的局限性,而本文主要分析前者。


通用的壓縮算法又可以分為對(duì)節(jié)點(diǎn)數(shù)據(jù)的壓縮和對(duì)邊數(shù)據(jù)的壓縮兩類,分別如圖4和圖5所示?;诘墓?jié)點(diǎn)算法效果浮動(dòng)較大,在程序初始化比較頻繁的場(chǎng)景(如數(shù)據(jù)分析等)效果較好。為壓縮邊數(shù)據(jù),研究者們先提出了語(yǔ)義保持的不同定義,包括 “因果保持”等與對(duì)應(yīng)的壓縮算法。整體而言,由于溯源圖中邊的基數(shù)更大,對(duì)邊的壓縮算法往往整體的壓縮率更高。但是,這些通用的壓縮方法不能從根本上解決依賴爆炸問(wèn)題,在處理大規(guī)模的、實(shí)體間依賴關(guān)系復(fù)雜的溯源圖時(shí)作用十分有限。


03

威脅檢測(cè)與分析模塊

微信圖片_20220510180002.png

表1.現(xiàn)有基于系統(tǒng)溯源圖的入侵檢測(cè)系統(tǒng)的分類


溯源圖提供了豐富的語(yǔ)義信息,支持多種檢測(cè)分析方案,如表1所示。這些檢測(cè)方案考慮了不同的攻擊模型,針對(duì)不同攻擊模型提出來(lái)不同的檢測(cè)模型,大致可以分為幾類:


  • 第一類,也是最直觀的一種方法是子圖匹配,在溯源圖中定位攻擊行為抽象出的攻擊圖。準(zhǔn)確的圖匹配的開(kāi)銷過(guò)大,因此研究者提出了幾種模糊匹配方法,包括:基于威脅情報(bào)的圖對(duì)齊、基于圖嵌入的機(jī)器學(xué)習(xí)匹配等。


  • 第二類方法是用節(jié)點(diǎn)標(biāo)簽緩存計(jì)算結(jié)果,并用標(biāo)簽的傳遞代替復(fù)雜的圖計(jì)算的 “標(biāo)簽傳播(TagPropagation)算法”。這類算法一般使用流式圖作為數(shù)據(jù)模型,避免了大量的數(shù)據(jù)讀寫操作,因此整體效率最高, 但也對(duì)檢測(cè)和分析算法作出了更多的限制。


  • 第三類是異常檢測(cè)模型。已有的溯源圖上的異常檢測(cè)模型一般先尋找局部的異常點(diǎn),并通過(guò)依賴分析關(guān)聯(lián)異常點(diǎn),從而作出全局的判斷。