[論文閱讀] (08) NDSS2020 UNICORN: Runtime Provenance-Based Detector
前一篇文章分享了RAID 2020上的論文《Cyber Threat Intelligence Modeling Based on Heterogeneous Graph Convolutional Network》,基于異構圖卷積網絡的網絡威脅情報建模。這篇文章將詳細介紹NDSS2020的《UNICORN: Runtime Provenance-Based Detector for Advanced Persistent Threats》,一種基于溯源圖的實時APT檢測器。希望這篇文章對您有所幫助,這些大佬是真的值得我們去學習,獻上小弟的膝蓋~fighting!
https://blog.csdn.net/Sc0fie1d/article/details/104868847
https://blog.csdn.net/xjxtx1985/article/details/106473928
前文賞析:
[論文閱讀] (01) 拿什么來拯救我的拖延癥?初學者如何提升編程興趣及LATEX入門詳解
[論文閱讀] (02) SP2019-Neural Cleanse: 神經網絡中的后門攻擊識別與緩解
[論文閱讀] (03) 清華張超老師 - Fuzzing漏洞挖掘詳細總結 GreyOne
[論文閱讀] (04) 人工智能真的安全嗎?浙大團隊分享AI對抗樣本技術
[論文閱讀] (05) NLP知識總結及NLP論文撰寫之道——Pvop老師
[論文閱讀] (06) 萬字詳解什么是生成對抗網絡GAN?經典論文及案例普及
[論文閱讀] (07) RAID2020 Cyber Threat Intelligence Modeling Based on Heterogeneous GCN
[論文閱讀] (08) NDSS2020 UNICORN: Runtime Provenance-Based Detector for Advanced Persistent Threats
文章目錄
摘要
Ⅰ.引言
Ⅱ.背景
Ⅲ.威脅模型
Ⅳ.系統(tǒng)設計
A.溯源圖
B.構建Graph直方圖
C.生成概要圖(Graph Sketches)
D.學習進化模型
E.異常檢測
Ⅴ.實現(xiàn)
Ⅵ.實驗評估
A.UNICORN vs. StreamSpot
B.DARPA TC Datasets
C.Supply Chain攻擊場景
D.參數(shù)分析
E.處理速度
F.CPU & 內存使用
Ⅶ.討論和局限性
Ⅷ.相關研究
Ⅸ.結論
摘要
由于APT(Advanced Persistent Threats)攻擊具有緩慢可持續(xù)的攻擊模式以及頻繁使用0-day漏洞的高級特性使其很難被檢測到。本文利用數(shù)據(jù)來源分析(provenance)提出了一種基于異常的APT檢測方法,稱為UNICORN。
從建模到檢測,UNICORN專門針對APT的獨有特性(low-and-slow、0-Days)進行設計。
UNICONRN利用高效的圖分析方法結合溯源圖豐富的上下文語義和歷史信息,在沒有預先設定攻擊特征的情況下識別隱蔽的異常行為。
通過圖概要(graph sketching)技術,它有效概括了長時間系統(tǒng)運行來對抗長時間緩慢攻擊。
UNICONRN使用一種新的建模方法來更好地捕捉長期行為規(guī)律,以進一步提高其檢測能力。
最后通過大量實驗評估表明,本文提出的方法優(yōu)于現(xiàn)有最先進的APT檢測系統(tǒng),并且在真實APT環(huán)境中有較高的檢測精度。
PS:藍色-研究背景;綠色-英文表達學習;黃色-文章骨干;紫色-文章貢獻
本文提出的UNICORN是一種基于異常的APT檢測器,可以有效利用數(shù)據(jù)Provenance進行分析。通過廣泛且快速的圖分析,使用graph sketching技術,UNICORN可以在長期運行的系統(tǒng)中分析Provenance Graph,從而識別未知慢速攻擊。其中,Provenance graph提供了豐富的上下文和歷史信息,實驗證明了其先進性和較高準確率。
Ⅰ.引言
APT攻擊現(xiàn)在變得越來越普遍。這種攻擊的時間跨度長,且與傳統(tǒng)攻擊行為有著本質的區(qū)別。APT攻擊者的目的是獲取特定系統(tǒng)的訪問控制,并且能夠長期潛伏而不被發(fā)現(xiàn)。攻擊者通常使用0-day漏洞來獲取受害者系統(tǒng)的訪問控制。
傳統(tǒng)檢測系統(tǒng)通常無法檢測到APT攻擊。
依賴惡意軟件簽名的檢測器對利用新漏洞的攻擊無效。
基于異常檢測的系統(tǒng)通常分析一系列的系統(tǒng)調用或日志系統(tǒng)事件,其中大部分方法無法對長期行為進行建模。
由于基于異常檢測的方法只能檢測系統(tǒng)調用和事件的短序列很容易被繞過。
綜上,當前針對APT攻擊的檢測方法很少能成功。攻擊者一旦使用0-Day漏洞,防御者便無計可施;而基于系統(tǒng)調用和系統(tǒng)事件的檢測方法,由于數(shù)據(jù)過于密集,這些方法難以對長時間的行為模式進行建模。
因此,數(shù)據(jù)溯源(data provenance)是一種檢測APT更合適的數(shù)據(jù)。
最近的研究成果表明數(shù)據(jù)溯源是一個很好的APT檢測數(shù)據(jù)源。數(shù)據(jù)溯源將系統(tǒng)執(zhí)行表示成一個有向無環(huán)圖(DAG),該圖描述了系統(tǒng)主體(如進程)和對象(文件或sockets)之間的信息流。即使跨了很時間,在圖中也把因果相關的事件關聯(lián)到一起。因此,即使遭受APT攻擊的系統(tǒng)與正常系統(tǒng)比較類似,但是溯源圖中豐富的上下文語義信息中也可以很好地區(qū)分正常行為與惡意行為。
[87] S. M. Milajerdi, R. Gjomemo, B. Eshete, R. Sekar, and V. Venkatakrishnan, “Holmes: Real-time apt detection through correlation of suspicious information flows,” in Symposium on Security and Privacy. IEEE, 2019.
優(yōu)點:實現(xiàn)了一種新型檢測高級可持續(xù)性威脅(APT)的方法。
缺點:該方法根據(jù)已有的攻擊知識通過簡單的邊匹配規(guī)則實現(xiàn)APT檢測,很難檢測未知的APT攻擊。
然而,基于數(shù)據(jù)溯源的實時APT檢測依然具有挑戰(zhàn)。
隨著APT攻擊的滲透的進行,數(shù)據(jù)溯源圖的規(guī)模會不斷增大。其中必要的上下文分析需要處理大量圖中的元素,而圖上的分析通常復雜度比較高。當前基于數(shù)據(jù)溯源的APT檢測方法根據(jù)已有的攻擊知識通過簡單的邊匹配實現(xiàn)APT檢測,無法處理未知的APT攻擊。基于溯源的異常檢測系統(tǒng)主要是基于圖模型的鄰域搜索,利用動態(tài)或靜態(tài)模型識別正常行為模式。理論上關聯(lián)的上下文越豐富越好,但是實際中由于圖分析的復雜性較高限制了其可行性。
Provenance Graph的分析是相當耗費計算資源,因為APT是可持續(xù)攻擊,圖的規(guī)模也會越來越大
當前的APT檢測系統(tǒng)通常面臨如下三種問題:
(1) 靜態(tài)模型難以捕獲長時間的系統(tǒng)行為;
(2) low-and-slow APT投毒攻擊:由于APT高級可持續(xù)的特性可以在系統(tǒng)中潛伏很長時間,相關的行為會被認為是正常行為,這樣的攻擊會影響檢測模型;
(3) 在主存內進行計算的方法,應對長期運行的攻擊表現(xiàn)不佳。
基于此,本文提出了UNICORN,使用graph sketching來建立一個增量更新、固定大小的縱向圖數(shù)據(jù)結構。這種縱向性質允許進行廣泛的圖探索,使得UNICORN可以追蹤隱蔽的入侵行為。而固定大小和增量更新可以避免在內存中來表示provenance graph,因此UNICORN具有可擴展性,且計算和存儲開銷較低。UNICORN在訓練過程中直接對系統(tǒng)的行為進行建模,但此后不會更新模型,從而防止模型的投毒攻擊。
本文的主要貢獻如下:
針對APT攻擊特性提出一種基于Provenance的異常檢測系統(tǒng)。
引入一種新的基于概要的(sketch-based)、時間加權的(time-weighted)溯源編碼,該編碼非常緊湊且可處理長時間的溯源圖。
通過模擬和真實的APT攻擊來評估UNICORN,證明其可以高精度檢測APT活動。
實現(xiàn)代碼開源。
Ⅱ.背景
1.系統(tǒng)調用追蹤的挑戰(zhàn)
系統(tǒng)調用抽象提供了一個簡單的接口,用戶級應用程序可以通過這個接口請求操作系統(tǒng)的服務。作為調用系統(tǒng)服務的機制,系統(tǒng)調用接口通常也是攻擊者入侵的入口點。因此,系統(tǒng)調用跟蹤一直被認為是入侵檢測的實際信息源。然而:
當前的攻擊檢測系統(tǒng)是對非結構化的系統(tǒng)調用的審記日志進行分析,但捕獲的系統(tǒng)調用雜亂分散,傳統(tǒng)基于異常檢測的思路無法處理APT。因此需要將其關聯(lián)成data provenance,基于溯源的方法是將歷史上下文數(shù)據(jù)都編碼到因果關系圖中。
數(shù)據(jù)溯源方法已經被應用到攻擊調查中,已經有一些方法能夠根據(jù)審計數(shù)據(jù)構建系統(tǒng)溯源圖用以實現(xiàn)對系統(tǒng)執(zhí)行過程的建模。然而些方法依然存在一些局限:(1) 這種事后構建很難保證溯源圖的正確性,由于系統(tǒng)調用問題存大量并發(fā),溯源圖的完整性與可靠性無法保證;(2) 容易被繞過;(3) 時空復雜度較高。
由于一些內核線程不使用系統(tǒng)調用,因此基于Syscall生成的Provenance是一些分散的圖,而不是一張系統(tǒng)運行狀況的完整圖
2.全系統(tǒng)追蹤溯源
全系統(tǒng)溯源運行在操作系統(tǒng)層面,捕獲的是所有系統(tǒng)行為和它們之間的交互。通過捕獲信息流和因果關系,即使攻擊者通過操作內核對象來隱藏自己的行蹤也無濟于事。
本文使用CamFlow,采用了Linux安全模塊(Linux Security Modules,LSM)框架來確保高效可靠的信息流記錄。LSM可以消除race condition。
CamFlow:溯源搜集系統(tǒng),參考官網 https://camflow.org/。
3.問題描述
現(xiàn)有基于數(shù)據(jù)溯源的APT攻擊檢測方法主要存在如下缺陷:
預定義的邊匹配規(guī)則過于敏感,很難檢測到APT攻擊中的0-Day漏洞;
溯源圖的近鄰約束導致其只能提供局部上下文信息(而非whole-system),然而這會影響相關異常檢測精度;
系統(tǒng)行為模型難以檢測APT:靜態(tài)模型無法捕獲長期運行的系統(tǒng)的行為;動態(tài)模型容易遭受中毒攻擊;
溯源圖的存儲與計算都是在內存中,在執(zhí)行長期檢測上有局限性。
UNICORN可以解決如上問題,其本質是把APT檢測問題看成大規(guī)模、帶有屬性的實時溯源圖異常檢測問題。在任何時間,從系統(tǒng)啟動到其當前狀態(tài)捕獲的溯源圖都將與已知正常行為的溯源圖進行比較。如果有明顯差別,那么就認為該系統(tǒng)正在遭受攻擊。
對于APT檢測來說,理想基于溯源的IDS應該如下:
充分利用溯源圖的豐富上下文,以時間與空間有效的方法持續(xù)分析溯源圖;
在不假設攻擊行為的基礎上,應考慮系統(tǒng)執(zhí)行的整個持續(xù)時間;
只學習正常行為的變化,而不是學習攻擊者指示的變化。
Ⅲ.威脅模型
假設主機入侵檢測有適當?shù)膱鼍埃汗粽叻欠ǐ@得對系統(tǒng)的訪問權限,并計劃在不被檢測的情況下駐留在系統(tǒng)中很長一段時間。攻擊者可能分階段執(zhí)行攻擊,在每個階段還會使用大量的攻擊技術。UNICORN的目標是通過解決主機生成的溯源來實現(xiàn)在所有階段對APT攻擊進行檢測。本文假設,我們假設在受到攻擊之前,UNICORN在正常運行期間會完全觀察主機系統(tǒng),并且在此初始建模期間不會發(fā)生攻擊。
數(shù)據(jù)收集框架的完整性是UNICORN正確性的核心,因此我們假定所使用的CamFlow中,LSM完整性是可信的。同時,本文假設內核、溯源數(shù)據(jù)和分析引擎的正確性,我們重點關注UNICORN的分析能力。
Ⅳ.系統(tǒng)設計
獨角獸是一個基于主機的入侵檢測系統(tǒng),能夠同時檢測在網絡主機集合上的入侵。
圖1展示了UNIOCORN的基本流程。
①?以一個帶標簽的流式溯源圖作為輸入。該圖由CamFlow生成,每條邊是帶屬性的。溯源系統(tǒng)構建一個具有偏序關系的DAG溯源圖,能實現(xiàn)有效的流式計算和上下文分析。
②?建立一個運行時的內存直方圖。UNICORN有效構建一個流式直方圖,該直方圖表示系統(tǒng)執(zhí)行的歷史,如果有新邊產生則實時更新直方圖的計數(shù)結果。通過迭代的探索大規(guī)模圖的近鄰關系,發(fā)現(xiàn)了在上下文環(huán)境中系統(tǒng)實體的因果關系。該工作是UNICORN的第一步,具體來說,直方圖中每個元素描述了圖中唯一的一個子結構,同時考慮了子結構中的頂點與邊上的異構標簽,以及這些邊的時間順序。APT攻擊緩慢的滲透攻擊目標系統(tǒng),希望基于的異常檢測方法最終忘記這一行為,把其當成正常的系統(tǒng)行為,但是APT攻擊并不能破壞攻擊成功的相關信息流依賴關系。
③?定期計算固定大小的概要圖(graph sketch)。在純流式環(huán)境,當UNICORN對整個溯源進行匯總時,唯一直方圖元素的數(shù)量可能會任意增長。這種動態(tài)變化導致兩個直方圖之間的相似計算變得非常有挑戰(zhàn),從而使得基于直方圖相似計算的建模以及檢測算法變的不可行。UNICORN采用相似度保存的hash技術把直方圖轉換成概要圖。概要圖可以增量維護,也意味著UNICORN并不需要將整個溯源圖都保存在內存中。另外,概要圖保存了兩個直方圖之間的jaccard相似性,這在后續(xù)圖聚類分析中特別有效。
④?將簡略圖聚類為模型。UNICORN可以在沒有攻擊知識的前提下實現(xiàn)APT攻擊檢測。與傳統(tǒng)的聚類方法不同,UNICORN利用它的流處理能力生成一個動態(tài)演化模型。該模型通過在其運行的各個階段對系統(tǒng)活動進行聚類捕獲單個執(zhí)行中的行為改變,但是UNICORN無法在攻擊者破壞系統(tǒng)時動態(tài)實時修改模型。因此,它更適合APT攻擊這類長期運行的攻擊。
A.溯源圖
最近幾年溯源圖在攻擊分析中越來越流行,并且本身固有的特別可以有效的用于APT檢測。溯源圖挖掘事件之間的因果關系,因果關系有助于對時間跨度較遠的事件進行推理分析,因此有助于在檢測APT相關攻擊。
UNICORN根據(jù)兩個系統(tǒng)執(zhí)行的溯源圖的相似性還判定兩個系統(tǒng)的行為相似性。而且UNICORN總是考慮整個溯源來檢測長期持續(xù)的攻擊行為。當前已經有許多圖相似度計算方法,然而這些算法大部分是NPC的,即使多項式時間復雜度的算法也無法滿足整個溯源圖快速增漲的需求。
B.構建Graph直方圖
本文方法的目標是有效對溯源圖進行比較分析,同時容忍正常執(zhí)行中的微小變化。 對于算法,我們有兩個標準:
圖表示應考慮長期的因果關系;
必須能夠在實時流圖數(shù)據(jù)上實現(xiàn)該算法,以便能夠在入侵發(fā)生時阻止入侵(不僅僅是檢測到入侵)。
本文基于一維WL同構檢驗,采用了線性時間的、快速的Weisfeiler-Lehman(WL)子樹圖核算法。該算法的使用依賴于構造的頂點直方圖的能力,需要直方圖能捕捉每個頂點周圍的結構信息。根據(jù)擴充的頂點標簽對頂點進行分類,這些標簽完全描述了頂點的領域,并且通過迭代的標簽傳播來構造這些擴展的頂點標簽。
同構性的WL檢驗及其子樹kernel變化,以其對多種圖的判別能力而聞名,超越了許多最新的圖學習算法(例如,圖神經網絡)。對Weisfeiler-Lehman(WL)子樹圖核的使用取決于我們構建頂點直方圖的能力,捕獲圍繞每個頂點的圖結構。 我們根據(jù)增強頂點標簽對頂點進行分類,標簽描述了頂點的R-hop鄰居。
為了簡單說明,假設有一個完整靜態(tài)圖,重標記對所有的輸入標簽的聚合。對每個頂點都重復執(zhí)行這個過程來實現(xiàn)對n跳鄰居的描述。一旦為圖中的每個頂點都構建了擴展標簽,那么就可以基于此生成一個直方圖,其中每個bucket表示一個標簽。兩個圖的相似性比較是基于以下假設:兩個圖如果相似那么在相似的標簽上會有相似的分布。
我們的目標是構建一個直方圖,圖中的每個元素對應一個唯一的頂點標簽,用于捕獲頂點的R-hop的in-coming鄰居。
信息流的多樣性與復雜性(Streaming Variant and Complexity)。算法1只有新頂點出現(xiàn)或是新邊出現(xiàn)對其鄰頂點有影響時才會執(zhí)行。本文方法只需要為每條新邊更新其目標頂點的鄰域。UNICORN采用這種偏序關系來最小化計算代價。
直方圖元素的概念漂移問題。APT攻擊場景需要模型必須能夠處理長期運行行為分析能力,而系統(tǒng)行為的動態(tài)變化會導致溯源圖的統(tǒng)計信息也隨之變化,這種現(xiàn)象就叫概念漂移(concept drift)。
UNICORN通過對直方圖元素計數(shù)使用指數(shù)權重衰減來逐漸消除過時的數(shù)據(jù)(逐漸忘記機制),從而解決了系統(tǒng)行為中的此類變化。它分配的權重與數(shù)據(jù)的年齡成反比。
入侵檢測場景中的適用性。上述“逐漸忘記”的方法,使得UNICORN可以著眼于當前的系統(tǒng)執(zhí)行動態(tài),而且那些與當先的object/activity有關系的事件不會被忘記。
C.生成概要圖(Graph Sketches)
Graph直方圖是描述系統(tǒng)執(zhí)行的簡單向量空間圖統(tǒng)計量。 然而,與傳統(tǒng)的基于直方圖的相似性分析不同,UNICORN會隨著新邊的到來不斷更新直方圖。另外,UNCORN會根據(jù)圖特征的分布來計算相似性,而不是利用絕對統(tǒng)計值。
本文采用locality sensitive hashing,也稱作similarity-preserving data sketching。UNICORN的部署采用了前人的研究成果HistoSketch,該方法是一種基于一致加權采樣的方法,且時間得性是常數(shù)。
D.學習進化模型
在給定graph sketch和相似性度量的情況下,聚類是檢測離群點常用的數(shù)據(jù)挖掘手段。然而傳統(tǒng)的聚類方法無法捕獲系統(tǒng)不斷發(fā)展的行為。UNICORN利用其流處理的能力,創(chuàng)建了進化模型,
可以捕獲系統(tǒng)正常行為的變化
。更重要的是,模型的建立是在訓練階段完成的,而不是在部署階段,因為部署階段訓練模型可能會遭受中毒攻擊。
UNICORN在訓練期間創(chuàng)建一個時序sketches,然后使用著名的K-medods算法從單個服務器對該概要序列進行聚類,使用輪廓系數(shù)(silhouette coefficient)確定最佳K值值。每個簇表示系統(tǒng)執(zhí)行的元狀態(tài)(meta-states),如啟動、初始化、穩(wěn)定狀態(tài)。然后UNICORN使用所有簇中sketches的時間順序和每個簇的統(tǒng)計量(如直徑、medoid),來生成系統(tǒng)進化的模型。
對于每個訓練實例,UNICORN創(chuàng)建一個模型,該模型捕獲系統(tǒng)運行時執(zhí)行狀態(tài)的更新。直觀地說,這類似于跟蹤系統(tǒng)執(zhí)行狀態(tài)的自動機。最終的模型由訓練數(shù)據(jù)中所有種源圖的多個子模型組成。
E.異常檢測
在部署期間,異常檢測遵循前面章節(jié)中描述的相同流模式。UNICORN周期性地創(chuàng)建graph sketch,因為直方圖從流式溯源圖演變而來。給定一個概要圖,UNICORN將該概要與建模期間學習的所有子模型進行比較,將其擬合到每個子模型中的一個聚類中。
UNICORN假設監(jiān)視從系統(tǒng)啟動開始,并跟蹤每個子模型中的系統(tǒng)狀態(tài)轉換。要在任何子模型中為有效,概要必須適合當前狀態(tài)或下一個狀態(tài);否則,被視為異常。因此,我們檢測到兩種形式的異常行為:
不符合現(xiàn)有聚類的概要
聚類之間的無效轉換
Ⅴ.實現(xiàn)
本文實現(xiàn)使用圖形處理框架GraphChi,在C++中實現(xiàn)了UNICORN的圖形處理算法,在Python中實現(xiàn)了數(shù)據(jù)解析和建模組件。
GraphChi是一個基于磁盤的系統(tǒng),它可以在一臺計算機上高效地計算具有數(shù)十億條邊的大型圖。使用GraphChi,UNICORN可以在不需要將整個溯源圖存儲在內存中的情況下獲得高效的分析性能。UNICORN依賴于GraphChi的兩個重要特性:
GraphChi使用一個并行滑動窗口(PSW)算法將形分割成碎片,每個碎片中的邊數(shù)大致相同;它并行計算每個碎片。該算法只需少量的非順序磁盤訪問,就可以快速更新磁盤的頂點和邊。這允許UNICORN獨立于內存約束來分析整個起源圖。
UNICORN利用GraphChi對流圖的高效計算。
Ⅵ.實驗評估
我們分析了大約1.5TB的系統(tǒng)監(jiān)控數(shù)據(jù),其中包含來自各種跟蹤系統(tǒng)的操作系統(tǒng)級溯源記錄,證明了我們的方法的適用性。我們的評估評估旨在驗證以下問題:
UNICORN能否在長期運行的系統(tǒng)中,準確地檢測APT攻擊的異常行為
針對APT的特性做出的設計決策有多重要?
UNICORN的“逐漸忘記”策略是否能更好地理解系統(tǒng)行為?
相比于現(xiàn)存的使用靜態(tài)快照進行聚類的方法,UNICORN的進化模型是否更有效?
UNICORN是否足夠快速,以執(zhí)行實時監(jiān)視和檢測?
在系統(tǒng)執(zhí)行過程中,UNICORN的內存和CPU使用如何?
數(shù)據(jù)集采用DARPA TC3的三個APT攻擊數(shù)據(jù)集:
Cadets
ClearScope
THEIA
A.UNICORN vs. StreamSpot
StreamSpot是一個基于聚類的異常檢測系統(tǒng),它處理流式異構圖。其流點數(shù)據(jù)集如下,包含來自六種場景的信息流圖,其中5個是良性的,每個場景運行100次,為每個場景生成100個圖。
使用Linux SystemTap記錄系統(tǒng),良性場景記錄來自正常瀏覽活動的系統(tǒng)呼叫,如觀看YouTube視頻和檢查Gmail,而攻擊場景涉及從惡意URL驅動下載,利用Flash漏洞并獲得對訪問主機的根訪問權限。
我們使用這個數(shù)據(jù)集將UNICORN與StreamSpot對比,結果如下:
B.DARPA TC Datasets
接下來,我們證明了UNICORN可以利用來自各種不同來源捕獲系統(tǒng)的數(shù)據(jù)有效地檢測APT。
參考文獻中有關于者三個DARPA數(shù)據(jù)集的詳細介紹。實驗模擬了一個企業(yè)設置,包括安全關鍵服務,如web服務器、SSH服務器、電子郵件服務器和SMB服務器(用于共享文件訪問)。紅隊通過使用火狐后門、Nginx后門和釣魚電子郵件實施各種APT和常見的威脅攻擊。
本文將良性數(shù)據(jù)集的90%用于訓練,10%用于測試;sketch size為200,R=3,檢測結果如下:
表V顯示,UNICORN分析框架可以推廣到不同來源的捕獲系統(tǒng)和各種溯源圖結構。獨角獸的高性能表明,它可以準確地檢測各種平臺長期系統(tǒng)中的異常。
紅隊通常使用不同的攻擊向量發(fā)起APT攻擊,這些攻擊占數(shù)據(jù)量不到0.001%。UNICORN基于異常的檢測機制能在沒有預先攻擊知識的情況下識別這些攻擊,盡管它們嵌入了大量的良性活動中。
相關工作比較:
我們注意到,一些現(xiàn)有的系統(tǒng)(Holmes S&P19、Poirot CCS19)也使用DARPA數(shù)據(jù)集進行評估。UNICORN和這些系統(tǒng)不同,因為它們使用了一種基于規(guī)則的方法,需要先驗的專家知識來構建一個模型。獨角獸不同,它使用一個無監(jiān)督的學習模型,不需要專家的輸入。然而,根據(jù)檢測到的攻擊數(shù)量發(fā)現(xiàn)UNICORN的性能與它們是相似的:UNICORN檢測對FreeBSD和Linux的所有攻擊,與Holmes和Poirot一樣。我們在第八部分中更詳細地討論了這些系統(tǒng)和UNICORN之間的差異。
C.Supply Chain攻擊場景
前面的攻擊場景無法確保異常行為和正常行為之間的相似性,因此本文在Continuous Integration(CI)平臺上單獨設計了兩個APT攻擊場景,并使用CamFlow來捕獲whole-system provenance,其中每個場景運行了3天。
將125個良性圖分成五組進行5折交叉驗證,來為正常行為進行建模。下圖是實驗的設置和結果:
D.參數(shù)分析
下面通過調整各個Baseline參數(shù)來觀察性能變化。
E.處理速度
下圖表示了隨時間推移處理的邊緣總數(shù),以量化UNICORN的處理速度。CamFlow線(藍色)表示捕獲系統(tǒng)生成的邊總數(shù),其他線與該線越近,說明運行時性能越好,這意味著UNICORN與捕獲系統(tǒng)CamFlow保持一致。
總體而言,上圖表明UNICORN運行時對這些參數(shù)相對來說不敏感,這意味著UNICORN可以使用針對檢測進行精度優(yōu)化的參數(shù),執(zhí)行實時入侵檢測。
F.CPU & 內存使用
我們針對工作量相對較大(即CI執(zhí)行內核編譯)的系統(tǒng)評估UNICORN的CPU使用率和內存開銷。 實驗表明,UNICORN具有較低的CPU使用率和內存開銷。
Ⅶ.討論和局限性
1.基于異常的檢測
本文假設在UNICORN進行正常行為建模期間,系統(tǒng)是安全的;其次,本文假設存在詳盡的、有限數(shù)量的系統(tǒng)行為模式,而且即使在運行過程中沒有檢測到全部,也檢測到了大多數(shù),因此如果UNICORN檢測到未知的正常行為模式,就會產生誤報。
攻擊者試圖將惡意行為轉向已學習過的模型,以逃避檢測,類似于著名的模擬攻擊。然而,對溯源圖或UNICORN概要圖進行模擬攻擊比對系統(tǒng)調用序列更具挑戰(zhàn),因為溯源圖包含復雜的結構信息,很難在不影響攻擊的情況下進行攻擊。此外,UNICORN的一致加權抽樣方法將概要圖生成隨機化,這使得很難保證模擬溯源圖的低維投影將接近學習到的正常簇。
另外,像其他基于異常的系統(tǒng)一樣,獨角獸需要足夠的良性行為痕跡來學習行為模型。UNICORN監(jiān)視系統(tǒng)的起點是和兩性模型建模的起點是一樣的。但是如果因為系統(tǒng)發(fā)生了錯誤而恢復到之前的狀態(tài)時,就會導致系統(tǒng)狀態(tài)與模型不匹配。解決這種問題的方法是在系統(tǒng)創(chuàng)建快照的同時保存其模型狀態(tài),當系統(tǒng)還原快照時,UNICORN將還原相應的模型狀態(tài)。
UNICORN需要定期的重新訓練模型。
2.錯誤的警報
當正常的系統(tǒng)行為發(fā)生變化時,UNICORN可能會發(fā)出假陽性警報,因為它不會動態(tài)地調整其模型(以避免攻擊者中毒)。錯誤警報問題并不是獨角獸所獨有的。UNICORN使用概念漂移(IV-B),建模系統(tǒng)演化,部分緩解了這個問題。
3.圖分析
需要對每個系統(tǒng)調整參數(shù)來提升檢測性能。本文使用OpenTuner來自動調整。在本文的實驗中,對于大多數(shù)數(shù)據(jù)集而言,都可以使用相同的參數(shù)。
4.異質主機活動
在測試中,我們觀察到獨角獸在具有同質正常活動的領域表現(xiàn)得非常好。一些主機只會執(zhí)行一些預先定義好的任務,UNICORN對這樣環(huán)境下的主機檢測效果較好。然而,一些主機會有各種各樣的異質性行為,UNICORN沒有考慮這一類主機的安全性。
5.更大的交叉評估
我們強調,將UNICORN與其他現(xiàn)有的IDS(其中大部分是基于系統(tǒng)的)進行比較很困難,原因有:
A) 許多IDS不是開源的;
B) 現(xiàn)有的公共 IDS 數(shù)據(jù)集要么已經過時,要么需要從例如系統(tǒng)調用跟蹤轉換為數(shù)據(jù)源,這是具有挑戰(zhàn)性的,有時是不可能的(由于缺乏信息);
C) 創(chuàng)建私人數(shù)據(jù)集的系統(tǒng)只是表面地描述它們的實驗過程,因此很難公平地重現(xiàn)溯源數(shù)據(jù)的實驗。我們認為,這樣的基礎研究是有價值的,我們計劃在未來繼續(xù)開展這樣的工作。
Ⅷ.相關研究
1.基于主機的動態(tài)入侵檢測
起初,IDS僅僅依靠系統(tǒng)調用來進行建模,但隨著攻擊技術的提升,檢測的準確度也隨之下降。所以下一代的IDS在系統(tǒng)調用中加入和“狀態(tài)”來提供上下文信息。UNICORN的方法完全不同,因為傳統(tǒng)的系統(tǒng)調用方法不太適合APT攻擊,而基于圖表示和分析在檢測APT攻擊上具有良好的表現(xiàn)。一方面避免了昂貴的控制流構造和狀態(tài)轉換自動機,另一方面準確地描述和建模系統(tǒng)中數(shù)據(jù)對象之間的復雜關系,用于上下文化異常檢測。
據(jù)我們所知,盡管有些系統(tǒng)會從審計日志中生成類似出處的圖表 [83],但UNICORN是第一個通過對本地整個系統(tǒng)溯源進行運行時分析來檢測入侵的系統(tǒng)。
2.基于圖的異常檢測
StreamSpot分析流媒體信息圖以堅持異常活動,但圖特征受到局部約束,而 UNICORN的圖特征執(zhí)行上下文。此外,在APT場景中,攻擊者可以操縱模型持久攻擊,以逐漸和緩慢地改變系統(tǒng)行為,從而避免被檢測。UNICORN充分利用它不斷總結進化圖的能力,建模它所監(jiān)控的系統(tǒng)執(zhí)行的相應演化。
3.基于Provenance的安全分析
隨著APT攻擊越來越突出,許多系統(tǒng)利用數(shù)據(jù)來源進行APT攻擊分析。現(xiàn)有方法包括ProTracer、CamQuery、Holmes、SLUETH、Poirot、SAQL。UNICORN不同于傳統(tǒng)的基于規(guī)則的系統(tǒng),它是一個不需要專家知識的異常檢測系統(tǒng)。
Ⅸ.結論
本文提出了UNICORN,一種實時異常檢測系統(tǒng),它利用整個系統(tǒng)的數(shù)據(jù)溯源來檢測高級持續(xù)威脅。UNICORN通過結構化的溯源圖(Provenance Graph)對系統(tǒng)行為進行建模,揭示了系統(tǒng)對象之間的因果關系,并在其流到分析管道中時,對其進行有效地匯總來考慮整個圖。 我們的評估表明,由此產生的演化模型可以成功地檢測出從不同審計系統(tǒng)捕獲的各種APT攻擊,包括真實的APT活動,并且具有高精度和低誤報率。
感恩能與大家在華為云遇見!
希望能與大家一起在華為云社區(qū)共同成長。原文地址:https://blog.csdn.net/Eastmount/article/details/118913235
非常榮幸獲得了華為云的2021年博客十佳,希望未來能繼續(xù)分享更多好文章,加油!
(By:Eastmount 2022-01-17? 夜于武漢)
網絡 軟件安全
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。