本文分享自華為雲社群《[論文閱讀] (09)S&P2019 HOLMES Real-time APT Detection(溯源圖)》,作者: eastmount 。
本文提出了一種實現了檢測高階永續性威脅(Advanced Persistent Threat,APT)新的方法,即HOLMES系統。HOLMES的靈感來自現實世界中APT活動的一些共同目標。簡而言之,HOLMES旨在產生一個檢測訊號,以表明存在的一系列協同活動都是APT活動的一部分。本文方法要解決的主要挑戰之一是開發一套技術,從而檢測訊號的魯棒性和可靠性。
總之,本文構建了一個可以實時檢測高階持續性威脅(APT)的系統——HOLMES。該方法有效利用了攻擊者活動期間出現的可疑資訊流間的相關性。通過實時彙總攻擊者的行為,產生基於殺傷鏈模型(kill chain)的高階圖(high-level graph),實現了將複雜的資料對映為簡潔的APT攻擊階段,從而有利於防禦者更加直觀地發現威脅並進行防禦。HOLMES生成的簡潔高階圖有效總結了正在進行的攻擊活動,並可通過可疑資訊流的關聯來協助實時網路響應工作。
Introduction是論文的開頭,是極為重要的部分,介紹了為什麼要做這份工作,建議大家仔細閱讀,尤其是寫英文論文的讀者。因此,作者將該部分進行了詳細描述。
在最早關於APT詳細報告(FireEye釋出的APT1)中,安全公司Mandiant披露了全球APT參與者的目標和活動。這些活動至少從包括141個組織的不同行業中竊取數百兆位元組的敏感資料(包括商業計劃、技術藍圖和測試結果)。他們估計評估組織中惡意軟體的平均持續時間為365天。從那以後,全球範圍內出現了越來越多涉及到一些強大攻擊者的APT攻擊事件,包括國家活動。
APT 攻擊的特徵可歸納為以下三點:
針對性
通常針對特定目標的重要價值資產,一般JG、能源、金融、部門最容易遭到APT攻擊。並且針對收集到的常用軟體、常用防禦策略與產品、內部網路部署等資訊,攻擊者能編寫可以繞過目標系統現有防護體系檢查的攻擊程式碼。
持續性
為了長期控制重要目標獲取更多利益,攻擊者通過隱藏實現長期潛伏,同時攻擊處於動態發展以應對新的系統漏洞及防禦體系的更新,並通過外部被控制的命令與控制(Command and Control,C&C)伺服器與目標系統保持通訊以及傳輸資料。
隱蔽性
為了避免被安全防護系統檢測到,APT 攻擊程式碼的編寫者使用各種偽裝、隱藏手段,通過修改系統程式,隱藏病毒程序、隱藏檔案、隱藏目錄的方式實現長期潛伏;通過對惡意程式壓縮、加密、變體及加殼等技術手段降低其被檢測到的概率;運用動態域名解析實現C&C伺服器的隱藏與長期生存;通過合法的加密資料通道、加密技術或資訊隱藏技術隱蔽地傳輸資料。
瞭解APT攻擊者的動機和行動在應對這些威脅挑戰中發揮著重要作用。為了進一步理解APT攻擊,Mandiant報告還提供了一個APT生命週期模型(如圖1),也被稱為殺傷鏈(kill-chain),它可以讓人們瞭解APT的步驟是如何共同實現目標的。
一個典型的APT攻擊包含以下階段:
APT攻擊者的目標是獲取和洩露高度敏感的資訊,例如特定專有技術的原始碼;或者通過破壞高完整性的資源來使目標受到損害,例如,被Stuxnet蠕蟲感染了的PLC,這個目標主要是通過符合圖1所示的殺傷鏈來實現的。
簡而言之,殺傷鏈提供了一個理解和對映APT攻擊者動機、目標和行動的參考。
企業中現有的IDS/IPS系統可能會檢測並生成主機上可疑事件的警報。然而,結合這些低階警報,以獲得正在執行的APT活動的高階圖仍然是一個重大挑戰。
如今,告警關聯通常使用安全資訊和事件管理( Security Information and Event Management,SIEM)系統來執行,如Splunk、Logrheth和IBM Qradar。這些系統從多個來源收集紀錄檔事件和警告並將它們關聯起來。這種相關性通常使用現成的指標,例如時間戳。這些關聯方法是有用的,但它們通常缺乏:
本文解決的主要問題是——實時檢測正在執行的APT活動(由長期跨主機的許多不同階段組成),並根據來自企業的主機紀錄檔(host logs)和IPS警報向分析人員提供攻擊場景的高階說明。
這個問題有三個主要方面,它們如下:
警報生成(Alert generation):如何生成能反映攻擊者行為的報警、並降低噪聲
從主機低階事件開始跟蹤,我們必須有效地生成警報。此外,必須確保不會產生大量的噪聲警報。
警報相關性(Alert correlation):如何有效地進行報警關聯
這裡的挑戰是將攻擊者多個活動的警報組合為可靠訊號,表明存在正在進行的APT活動。
攻擊場景演示(Attack scenario presentation):如何呈現攻擊場景
正在執行的APT活動指標需要傳達給網路分析師。為了有效,這種溝通必須很直觀,需要在高層總結攻擊,以便分析人員迅速意識到這次活動的範圍和規模。
我們注意到,雖然攻擊者的手段多種多樣,但是對映到高層次的攻擊步驟之後,其抽象攻擊模式基本不變,基於此可以將複雜的資料對映到具體的攻擊階段。
為了解決上述所有問題,本文提出了一個稱為HOLMES的系統。HOLMES以主機審計資料開始(如Linux審計或Windows ETW資料),並生成一個檢測訊號,繪製正在進行的APT活動的階段。在高層次上,HOLMES將APT殺傷鏈作為解決APT檢測上述三個方面所涉及技術挑戰的關鍵參考。
ETW是Event Tracing for Windows的簡稱,它是Windows提供的原生的事件跟蹤紀錄檔系統。由於採用核心(Kernel)層面的緩衝和紀錄檔記錄機制,所以ETW提供了一種非常高效的事件跟蹤紀錄檔解決方案。
下面將介紹關鍵思想及其意義,並在第三部分(Ⅲ.方法概述)中有一個詳細的技術描述。本文主要貢獻如下:
HOLMES通過DARPA透明計算程式所生成的資料進行評估,該程式是由一個專業紅隊在不同平臺組成的網路上模擬的多個網路攻擊。我們為Linux、FreeBSD和Windows實現了適當的系統稽核資料解析器,以處理其審計資料並轉換為通用的資料表示和分析格式。使用系統審計資料的優點是,它是一個可靠的資訊來源,並且沒有未經授權的篡改(在未妥協的核心的威脅模型下)。
在9個真實APT攻擊場景中評估HOLMES,以及將它作為一個實時入侵檢測工具實驗兩週,實驗顯示HOLMES能夠明確區分攻擊場景和良性場景,可以發現網路攻擊與高精度和召回(Sec. VI)。
在本節中,我們將介紹本文使用的一個執行範例來說明本文方法。這個例子表示了作為政府機構組織(特別是美國DARPA)研究計劃中的一部分紅隊攻擊。在這次攻擊中,存在漏洞的Nginx Web伺服器在FreeBSD系統上執行。其操作(系統呼叫)在系統審計紀錄檔中被捕獲。從這個審計資料中構建了一個溯源圖(provenance graph),其片段如圖2所示。該圖中的節點表示系統實體(entities),如程序(表示為矩形)、檔案(橢圓)、網路連線(菱形)、記憶體物件(五邊形)和使用者(星形)。邊對應系統呼叫,並且面向資訊流和/或因果關係的方向。請注意,使用參考文獻[23]中描述的(優化的)節點版本控制技術,我們的溯源圖已被呈現為無迴圈的。
攻擊者的目標是從系統中提取敏感資訊。圖2底部描繪了攻擊者的活動,主要包括以下步驟:
本範例說明了下面描述的許多關鍵挑戰:
儘管能無縫地融入了良性的背景活動,但在攻擊中有兩個因素很突出。首先,攻擊步驟實現與某些APT階段能力對應。其次,攻擊活動通過資訊流被連線起來。在下一節中,我們描述HOLMES方法的兩個關鍵觀察結果。
我們方法背後的核心認知是,儘管具體的攻擊階段在不同的APT之間可能存在很大差異,但高階APT行為通常符合第一部分中引入的殺傷鏈模型。我們對數百個APT報告的分析表明,大多數APT包括這些階段的子集。更重要的是觀察到這些階段存在因果關係,這種聯絡是攻擊正在展開的一個主要跡象。
注意,每個APT階段的具體表現形式可能變化,例如初始入侵可以通過使使用者執行惡意檔案的網站掛馬或魚叉式網路釣魚攻擊來執行。無論如何,APT階段本身代表了對攻擊者意圖的高層次抽象,因此即使攻擊者使用的操作策略因APT而異,它們也必然會表現出來。此外,由於APT攻擊階段在邏輯上相互依賴,因此必然在它們之間存在資訊流或因果關係,例如資訊竊取取決於內部偵察去收集敏感資料。
因此,研究問題是我們能否將檢測建立在以下基礎上:
回答這個問題的一個主要挑戰是:低階別審計資料與攻擊者目標、意圖和能力與高階殺傷鏈(kill-chain)視角之間存在巨大的語意差距。
縮小語意鴻溝(Bridging the Semantic Gap)
為了彌合低階系統呼叫視角和高階殺傷鏈視角之間的語意差距,構建了一箇中間層,如上圖3所示。對映到這個中間層是基於MITRE的ATT&CK框架, 它描述了近200種行為模式,定義為在野觀察到的戰術、技術和程式(Tactics,Techniques and Procedures,TTPs)。
每個TTP都定義了一種實現特定高階功能的可能方法。例如,可以使用11個不同的TTP實現在受損Linux系統中的持久化能力,每個TTP代表ATT&CK框架中可能的低階活動序列,例如rootkit的安裝、修改引導指令碼等。這些較低階別的操作更接近審計紀錄檔的抽象級別,因此可以根據起源圖中的節點和邊來描述TTP。
技術挑戰(Technical challenges)
(1) 通過一些創新設計來解決這些挑戰。為了使低階別的資料有效地對映到TTPs,我們將審計紀錄檔表示為主記憶體中的 有向溯源圖(directed provenance graph)
,並且使用系統中低階別實體(如檔案、程序等)之間的資訊流(Information Flow)依賴關係作為基礎,來進行警報關聯。TTP被指定為利用這些依賴關係的模式。
(2) 為了檢測到攻擊步驟之間的關聯性,本文開發了 高階別場景圖(high-level scenario graph, HSG)
,HSG的節點對應於TTPs,邊表示TTPs實體之間的資訊流和依賴關係。在HSG中定義了以下概念:
(3) 為了減少誤報,本文提出的方法是:學習可能會產生誤報的良性TTPs模式,採用啟發式演演算法;根據其嚴重程度為圖中的節點和路徑分配權重,以便可以對HSG進行排序,並將排序最高的HSG呈現給分析人員。
總之,APT高階階段使用一套可以從審計資料中觀察到通用戰術的操作。這些觀察結果提供了一些惡意活動可能正在開展的證據。因此,HOLMES的主要工作是收集證據,推斷它們之間的相關性,並利用這些相關性繪製出整個攻擊事件。
系統設計的主要任務是建立威脅模型,因此如何建立審計系統以及如何生成紀錄檔資料不在本系統設計的範圍之內。此外,本文假設初始系統是安全可靠地。
該系統使用的審計紀錄檔來源於許多主機的不同作業系統:
原始稽核資料被收集並處理成與作業系統無關的格式。HOLMES接受的輸入的事件(event)包括:
資料表示為稱為溯源圖(provenance graph)。
該設計與前人的工作有兩個不同之處:
provenance graph是不斷變化的:當一條邊改變了節點的依賴關係,一個新的節點將會被建立並替換舊節點。這種「版本化」的方法使得在不改變分析結果的情況下可以對圖進行修剪,而且這種versioned graph是無環的,這可以簡化許多圖演演算法。
另一個不同之處是provenance graph是儲存在主記憶體中的,每個事件所佔空間小於5bytes,這種表示方式可以在較長的時間段內實時消耗事件和構建起源圖。
TTP規範提供了低階別審計事件和高階別APT階段之間的對映,因此這是本文所提出的方法的核心。TTP代表了具體審計紀錄檔和高階APT步驟之間的中間抽象層。具體而言,主要依靠兩種技術將審計紀錄檔資料提升到該中間層:
總之,這些技術實現了高階別的惡意行為規範,這些規範在很大程度上獨立於許多TTP細節,例如使用的特定系統呼叫、惡意軟體名稱、建立的中間檔案以及用於建立它們的程式等。資訊流依賴的使用對於通過使用良性系統程序來實現其目標並隱藏其活動的隱祕APT的檢測至關重要。
最後,為了高效匹配TTP且不使用回溯技術(backtracking)。我們發現,大多數TTP可以在我們的框架中使用單個事件進行建模,並對所涉及的主題和物件有附加的先決條件。表4顯示了TTP規範範例。
其中,第一列表示APT階段;第二列表示相關的TTP名稱和所涉及的實體;第三列指定與TTP相關聯的事件家族;第四列列出了第三列對應的Event Family中所包含的事件;最後一列既可以表示該TTP的先決條件,也可以表示該TTP的先決TTP。先決條件既可以包含於兩個TTPs實體之間的關係,而且能夠捕獲兩個TTP擁有一個共同parent的條件。應用先決條件,我們可以減少誤報。
下圖顯示了一個HSG。該圖的橢圓節點表示匹配的TTP。在每個橢圓內部,用灰色表示匹配的起源圖實體。為了便於說明,還包括TTP的名稱,每個TTP所屬的APT階段以及每個TTP的嚴重性級別(低中高)。圖的邊代表不同TTP之間的先決條件。完成兩個實體之間的路徑的虛線表示前提條件。例如,MakeMemExec TTP將Untrusted_Read TTP作為前提,由兩個節點之間的邊表示。
HSG的構建主要是由先決條件驅動的。如果一個TTP的所有先決條件都滿足了,那麼這個TTP就會被匹配並且被新增到HSG中。這可以隨時減少HSG中TTP的數量,從而可以進行復雜的分析而不會影響實時效能。
虛假依賴(spurious dependencies),即活動的攻擊者不感興趣或無關的依賴。我們應該優先考慮較強的依賴關係,儘可能地對弱依賴關係進行剪枝。
(1) 虛假依賴即與攻擊活動不相關的依賴
為了將上述討論推廣到可能存在多個入侵程序的情況,引入了一個資訊流 f上所有程序的祖先實體覆蓋(ancestral cover)。
(2) 祖先覆蓋 ancestral cover AC(f)
(3) 最小祖先覆蓋 minimum ancestral cover AC_{min}(f)ACmin(f)
(4) 路徑因子 path\_factor(N_1,N_2)path_factor(N1,N2)
PS:該部分細節太多,建議大家去讀原文。
攻擊檢測和取證的審計紀錄檔分析中的一個挑戰是存在噪音,即與TTP規則匹配的良性事件。諸如瀏覽器、Web伺服器和ssh守護行程之類的長週期程序不時會觸發TTP匹配。為了減少這些誤報,結合了基於訓練資料的降噪規則。利用兩個概念:
(1) 良性先決條件匹配
對於每個程序,我們的系統執行在良性的環境中並學習經常遇到的先決條件。在執行過程中,一旦某個被觸發的TTP的先決條件與我們在訓練中得到的條件(benign)相匹配,我們便忽略該TTP。
這種方法可能會導致漏報(false negative),比如一個惡意事件如果匹配到了良性環境中訓練得到的良性先決條件,那麼這個惡意事件就可能會被忽略。例如,即便沒有任何攻擊,在nginx的啟動階段也會執行read /etc/passwd,然而如果我們將該行為列入白名單的話,如果有惡意事件是讀取改檔案,那麼該惡意事件就會被忽略。
(2) 良性資料流數量
為了解決上述問題,提出了用位元組轉移度量的資料流數量的概念。比如從/etc/passwd到nginx的資料流數量等於/etc/passwd檔案的大小。因此,如果觀察到更多的位元組從/etc/passwd流向nginx,那麼該資訊流可能是攻擊的一部分。為了確定資訊流數量的臨界點,我們在一段時間的良性活動中觀察process-file和process-socket活動。
對每一個HSG定義 嚴重程度評分(severity score)
,據此來確定一個HSG會構成APT攻擊的可能性。這項工作分兩步進行,如下所述:
(1) 威脅元組(Threat Tuple)
首先通過與相應的HSG關聯的抽象威脅元組來表示攻擊者在活動中的進度。特別是對於每個HSG,威脅元組由7個元素<S1, S2, S3, …, S7>組成,其中每個Si對應於APT攻擊階段的威脅程度。一個APT階段通常會包含許多APT,選取威脅程度最高的來構成威脅元組。
由於屬於某一APT階段的不同TTP可能具有不同的嚴重性級別,因此通常有多個候選者可供選擇。在這些候選人中選擇最嚴重級別是很自然的。例如,與圖5的HSG相關聯的威脅元組是<M, L, H, H, —, H, M>。這個元組包含6個條目,因為它所匹配的TTP屬於6個不同APT階段。這些條目是根據殺傷鏈中APT級別的順序排列的。例如元組的第一個條目是M,因為圖中屬於Initial_Reconnaissance 最嚴重的TTP具有嚴重性M。
(2) HSG 排名和優先順序(HSG Ranking and Prioritization)
為了給HSG排序,首先根據下圖將Threat Tuple轉化為數值型別,接下來將代表7個APT階段的分數合併為一個整體的分數。特別是根據通用漏洞評分系統(CVSS)中包含的轉換表(下表)將威脅元組的每個元素對映為一個數值,CVSS是一個由商業、非商業和學術領域的安全專業人員共同作業建立的中立行業標準。考慮到他們感知到的威脅與對抗威脅的歷史,替代評分選擇可以由企業進行。
合併規則基於以下兩個準測:
為元組中的每一個entry設定一個權重,其中,n表示APT攻擊的步驟數,wi 和 Si 分別表示步驟i的權重和威脅程度,T表示閾值。如果在步驟i中沒有TTP出現,我們將Si設定為1。
下圖是整個HOLMES系統架構。
為了實現平臺的獨立性,將來自不同作業系統的審計資料規範化為通用資料表示(common data representation, CDR)。為基於CDR的審計記錄釋出到流處理伺服器(Kafka),並從流伺服器消耗來進行實時分析和檢測。
使用SLEUTH(USENIX’17)系統進行資料流消耗,利用因果關係跟蹤和起源圖構造。
規則匹配引擎在溯源圖上進行操作,並且將TTP規則作為輸入。論文中用到的TTPs規則在Table8中展示。為了匹配到一個TTP,規則匹配引擎將規則表中的每一條規則和它的先決條件進行迭代。這個環節的主要挑戰是:對於每一個TTP來說,都要檢查之前匹配的TTPs的先決條件和他們之間的路徑因子。
為了避免大量的計算,我們不使用回溯法而是使用 增量匹配法。這種方法儲存先前計算的結果,並沿著圖匹配和傳播指向這些結果的指標。當一個TTP被匹配時,我們在HSG中建立相應的節點,並建立一個指向該節點的指標。同時這個指標將會指向所有與該TTP有依賴關係的低階別實體。
例如path_factor的計算,假設N1(起源圖中的實體)和N2、N1和N3之間已經建立了依賴,當節點N2與N3之間出現了資訊流時, 我們需要重新計算N1和N3之間的path_factor,以取path_factor的最小值。計算的過程中之前N1和N2的計算結果便可複用。
這種基於指標的兩層之間的關聯方法可能存在開銷和複雜性較大的問題。但實際情況是,大量的低階別實體指向一個TTP,每個低階別實體只有一個指向TTP的指標,而每個TTP有多個維護多個指向它的指標,因此並沒有出現隨著起源圖的增加而開銷和複雜度急劇提升的情況
噪聲過濾引擎識別的是良性的TTP匹配,所以它被排除在HSG之外。它以從正常行為中學習到的模型為輸入,模型包含了與良性活動匹配的TTPs以及從作業系統中讀寫操作的位元組數閾值。
當規則匹配系統匹配到一個TTP時,它的入口和先決條件就會在這個模型中搜尋,如果在模型中存在一個入口包含了所有的先決條件和匹配事件,那麼所有的被轉移的位元組數就會與良性閾值進行比對。低於良性閾值該TTP則被過濾,否則在HSG中建立一個該TTP對應的節點。最後檢測引擎計算不同HSGs的「權重和」,當其超過檢測閾值時,就發出警報。
實驗評估是在由DARPA組織的紅藍對抗中完成,通過評估計算出HOLMES最佳的閾值,並衡量HOLMES的表現。最終,將HOLMES部署在真實環境中,在沒有先驗知識的情況下來檢測紅隊的APT攻擊。在我們的現場實驗後,這個資料集已經在公共領域[26]釋出,以刺激在這一領域的進一步研究。
評估所用的資料如表10所示,包含了跨三個作業系統7臺主機的9個APT攻擊場景,時間跨度為20天,其中包含了攻擊資料和良性資料,攻擊資料在資料總量中少於0.001%。
簡而言之,紅隊攻擊場景中的攻擊目標和活動涵蓋了那些備受矚目的APT活動。這些活動包括典型的APT活動,如瀏覽器誘導驅動器的初始入侵、後門注入、特權提升、內部偵察、敏感資產過濾以及清理攻擊足跡。在這些攻擊中,複雜的攻擊向量,如反射載入、Webshell和記憶體模組載入,它們被紅隊用來評估HOLMES對APT攻擊的魯棒性。
為了構建降噪模型,我們使用了4天的良性審計資料。這些程式包括瀏覽器(如火狐)、Web伺服器(如Nginx)和各種守護行程(如postfix、syslogd)。
在行動之前,每個主機都有一些接下來會被攻擊者利用的漏洞軟體。為了進一步混合正常紀錄檔和攻擊紀錄檔,紅隊同時也會進行良性的活動。
HOLMES會訂閱7個Kafka的topics(每個主機一個topics)來消耗資料流以進行實時地分析和預測。為TTPs的先決條件設定path_thres=3,設定APT階段i的權重weight=(10+i)/10。
表11總結了9個攻擊場景的檢測情況。第二列顯示檢測過程中匹配每個HSG的威脅元組,第三列顯示相應的威脅分數,第四列顯示了執行攻擊場景機器在所有良性場景中的最高得分。這些良性場景可能包含相應攻擊場景中的確切程式。
良性HSG的最高得分為338(方案3),攻擊HSG的最低得分為608(方案5.2),這與對系統沒有造成傷害的不完全攻擊有關。 這說明 HOLMES 已經將攻擊場景和良性場景分成了兩個不相交的叢集,並明確區分了它們。
學習降噪規則和路徑因子的影響如圖12所示。此圖顯示了所有良性和攻擊HSG在分析了所有七個階段後構建的威脅分數。這些分數在三種不同的設定下顯示,很明顯,攻擊HSG和良性HSG之間有較大的差距。
如下圖所示,使用準確率和召回率來尋找最佳閾值。其中F-score表示準確率和召回率的調和平均值,注意到在[338.25, 608.26]時,F-score達到最大,區間的兩個端點分別表示良性活動的最高分數和惡意活動的最小分數,因此閾值應該在該區間內選取。
在取n次方根之後我們發現,F-score取得最大值時,在[338.25, 608.26]之間調整閾值獲得不同的threat scores,此時對應平均嚴重程度的收斂區間為[2.01, 2.16],我們取其中位數2.09。
Graph Size
圖15顯示了數千條邊(左)的起源圖和邊數(右)的HSG的生長趨勢的比較。在邊緣測量的圖尺寸比是1875:1,即在從起源圖對映到HSG的過程中減少了1875倍。
Memory Use
HOLMES在8核CPU上測試,每個速度2.5GHz和150GB記憶體。圖16(左)顯示具有審計記錄數量HOLMES的記憶體消耗。它顯示了記憶體消耗的近線性增長,因為該系統在記憶體中的審計記錄。圖16(右)顯示了支援多少主機的可延伸性到數百臺主機的企業。很明顯,隨著主機數量的增加,我們可以在記憶體中保持完整的溯源圖的持續時間就會減少。注意,x軸和y軸都是按log-2比例排列的。
Runtime
本文測量了消耗記錄、構建溯源圖、構建HSG和檢測APTs的CPU時間。
將系統放在模擬的企業環境中,在對攻擊沒有先驗知識的情況下,由紅隊發起APT攻擊。圖18顯示了HOLMES在本實驗中構造的攻擊HSG和良性HSG的累積分佈函數。
HOLMES對實時警報生成、警報相關性和場景重建等問題做出了貢獻。HOLMES模型中的一個核心思想是構建和使用高階攻擊場景圖作為上述所有問題的潛在基礎。下面,我們將討論上述所有領域的相關工作。
A.警報生成(Alarm Generation)
基於主機的入侵檢測方法(Host-based intrusion detection approaches)主要分為以下三類:
本文屬於misuse-based,但本文方法超越了傳統的濫用檢測(傳統基於規則)。
B.警報關聯
IDS生成的警報對於人工操作員而言太多且級別很低。 需要開發一些技術來總結這些低階別警報並減少其數量。一些方法使用警報相關性,通過對相似警報進行聚類並確定警報之間的因果關係來執行檢測。
目前的方法依賴執行在使用者空間的第三方應用生成的紀錄檔,而且基於像時間戳之類的統計特徵,這樣並不能很好的檢測時間跨度很長的APT攻擊。因此HOLMES在不同的攻擊步驟之間建立了資訊流,使用了核心審計資料。
警報關聯的另一項工作依賴於警報在時間上的接近程度。 相比之下,HOLMES依靠資訊流和因果關係來關聯警報,因此即使在執行步驟非常緩慢的情況下,也能夠檢測到攻擊。
C.場景重建
許多研究是基於生成和使用系統呼叫級別的紀錄檔(system-call level
logs)來進行的。大多數的方法是從一個給定的惡意事件開始去追溯導致該事件的原因。相比之下,HOLMES使用系統事件跟蹤來執行實時檢測,在檢測框架中具有以高水平攻擊步驟形式的整合取證能力,而不需要檢測。
最近的研究已經使用了系統呼叫級別的紀錄檔來進行實時分析。SLEUTH提出了基於標籤的攻擊檢測和就地取證的技術。HOLMES在偵探方面取得了一些重大進展。
D.攻擊粒度
有時,審計紀錄檔的粗粒度會限制對資訊流的推理。例如,如果具有之前載入過敏感檔案的程序受到攻擊,則攻擊者可以在不使用系統呼叫的情況下在其記憶體區域內搜尋敏感內容。HOLMES會將該檔案竊取行為與該程序的其他動作相關聯,比如敏感檔案讀取。
本文提出了一個實時APT檢測系統HOLMES,它關聯了可能用於執行每個APT階段的戰術、技術和程式(TTPs)。HOLMES生成一個高階圖實時總結攻擊者的步驟。我們評估HOLMES對9個真實的APT威脅,並將其部署為一個實時入侵檢測工具。實驗結果表明,HOLMES能以高精度、低誤警率成功地檢測到APT活動。
S&P是安全最好的會議,能發S&P的論文都是最優秀的論文之一。下面先參照 安全學術圈 的總結,推薦大家關注它們。
首先,HOLMES旨在將主機紀錄檔中發現的活動以及企業中發現的任何告警直接反應到殺傷鏈中。這種設計允許HOLMES生成告警,這些告警在語意上接近APT活動者的活動階段(TTPs)。通過這樣做,HOLMES將告警生成過程提升到攻擊活動步驟的級別,而不是在低階別審計紀錄檔的形式。在實驗中發現為期五天的審計紀錄檔集合包含大約3M的低階別事件,而HOLMES僅從中提取86個可疑活動階段。
HOLMES的第二個重要思想是使用系統內低階別實體(檔案,程序等)之間的資訊流作為告警關聯的基礎。請注意殺傷鏈中的內部偵察階段取決於成功的初始入侵和立足點建立。特別地,偵察階段通常使用攻擊者在立足點建立期間安裝的CC代理(程序)來啟動,從而展示兩個階段中涉及的程序之間的資訊流。此外,偵察通常涉及在立足點建立階段執行下載的惡意軟體(檔案),說明檔案到程序的資訊流。同樣,成功的橫向滲透階段以及竊取階段,會使用偵察階段收集的資料。因此通過檢測與APT階段相關的低階別事件並使用資訊流將它們關聯起來,可以構建APT活動者使用的殺傷鏈。
HOLMES的第三個主要貢獻是開發高層次場景圖(HSG)。HSG的節點對應於TTP,並且其邊表示TTP中涉及實體之間的資訊流。HSG為檢測APT的高可信度提供了基礎。首先是使用了HSG中祖先實體覆蓋的概念幫助評估HSG節點之間依賴關係的強度。然後可以修剪弱依賴項以消除許多錯誤告警。其次是開發了降噪技術,進一步降低已知與良性活動相關的依賴項。第三是使用優先順序排序技術,以刪除與APT活動無關的大多數節點和邊。使用這些技術證明了HOLMES能夠明確區分攻擊和良性場景。
最後,HSG提供了一個任意時刻都存在的簡潔可視摘要,從而為理解攻擊做出了重要貢獻。例如,從10M審計記錄的資料集開始,能夠使用僅16個節點的圖表來總結高階攻擊活動。網路分析師可以使用現有的HSG快速推斷出攻擊的總體情況(範圍和幅度)。
個人感覺這篇文章真的非常棒,融合殺傷鏈、ATT&CK和TTPs的圖結構用於APT攻擊檢測我也曾想過,但本文模型的完整性、實驗、故事敘述非常值得我們學習,尤其是很多細節部分(如剪枝、降噪、HSG構建)。同時,本文應用於真實場景實踐都非常棒。