本文分享自華為云社區(qū)《[論文閱讀] (09)S&P2019 HOLMES Real-time APT Detection(溯源圖)》,作者: eastmount 。
摘要
本文提出了一種實(shí)現(xiàn)了檢測(cè)高級(jí)持久性威脅(Advanced Persistent Threat,APT)新的方法,即HOLMES系統(tǒng)。HOLMES的靈感來自現(xiàn)實(shí)世界中APT活動(dòng)的一些共同目標(biāo)。簡(jiǎn)而言之,HOLMES旨在產(chǎn)生一個(gè)檢測(cè)信號(hào),以表明存在的一系列協(xié)同活動(dòng)都是APT活動(dòng)的一部分。本文方法要解決的主要挑戰(zhàn)之一是開發(fā)一套技術(shù),從而檢測(cè)信號(hào)的魯棒性和可靠性。
- 在高級(jí)層(high-level),我們開發(fā)的技術(shù)有效地利用了攻擊者活動(dòng)期間出現(xiàn)的可疑信息流間的相關(guān)性。
- 除檢測(cè)能力外,HOLMES還能夠生成一個(gè)高級(jí)圖(high-level graph),以實(shí)時(shí)總結(jié)攻擊者的行為。該圖能給分析人員提供有效的網(wǎng)絡(luò)響應(yīng)。
- 本文方法對(duì)真實(shí)APT評(píng)估表明,HOLMES在檢測(cè)APT攻擊是具有高精確率和低誤報(bào)率。
- 由HOLMES生成的緊湊高層圖有效地總結(jié)了一個(gè)正在進(jìn)行的攻擊事件,并可以幫助實(shí)時(shí)的網(wǎng)絡(luò)響應(yīng)操作。
總之,本文構(gòu)建了一個(gè)可以實(shí)時(shí)檢測(cè)高級(jí)持續(xù)性威脅(APT)的系統(tǒng)——HOLMES。該方法有效利用了攻擊者活動(dòng)期間出現(xiàn)的可疑信息流間的相關(guān)性。通過實(shí)時(shí)匯總攻擊者的行為,產(chǎn)生基于殺傷鏈模型(kill chain)的高級(jí)圖(high-level graph),實(shí)現(xiàn)了將復(fù)雜的數(shù)據(jù)映射為簡(jiǎn)潔的APT攻擊階段,從而有利于防御者更加直觀地發(fā)現(xiàn)威脅并進(jìn)行防御。HOLMES生成的簡(jiǎn)潔高級(jí)圖有效總結(jié)了正在進(jìn)行的攻擊活動(dòng),并可通過可疑信息流的關(guān)聯(lián)來協(xié)助實(shí)時(shí)網(wǎng)絡(luò)響應(yīng)工作。
Ⅰ.引言
Introduction是論文的開頭,是極為重要的部分,介紹了為什么要做這份工作,建議大家仔細(xì)閱讀,尤其是寫英文論文的讀者。因此,作者將該部分進(jìn)行了詳細(xì)描述。
在最早關(guān)于APT詳細(xì)報(bào)告(FireEye發(fā)布的APT1)中,安全公司Mandiant披露了全球APT參與者的目標(biāo)和活動(dòng)。這些活動(dòng)至少從包括141個(gè)組織的不同行業(yè)中竊取數(shù)百兆字節(jié)的敏感數(shù)據(jù)(包括商業(yè)計(jì)劃、技術(shù)藍(lán)圖和測(cè)試結(jié)果)。他們估計(jì)評(píng)估組織中惡意軟件的平均持續(xù)時(shí)間為365天。從那以后,全球范圍內(nèi)出現(xiàn)了越來越多涉及到一些強(qiáng)大攻擊者的APT攻擊事件,包括國家活動(dòng)。
APT 攻擊的特征可歸納為以下三點(diǎn):
-
針對(duì)性
通常針對(duì)特定目標(biāo)的重要價(jià)值資產(chǎn),一般JG、能源、金融、部門最容易遭到APT攻擊。并且針對(duì)收集到的常用軟件、常用防御策略與產(chǎn)品、內(nèi)部網(wǎng)絡(luò)部署等信息,攻擊者能編寫可以繞過目標(biāo)系統(tǒng)現(xiàn)有防護(hù)體系檢查的攻擊代碼。 -
持續(xù)性
為了長期控制重要目標(biāo)獲取更多利益,攻擊者通過隱藏實(shí)現(xiàn)長期潛伏,同時(shí)攻擊處于動(dòng)態(tài)發(fā)展以應(yīng)對(duì)新的系統(tǒng)漏洞及防御體系的更新,并通過外部被控制的命令與控制(Command and Control,C&C)服務(wù)器與目標(biāo)系統(tǒng)保持通信以及傳輸數(shù)據(jù)。 -
隱蔽性
為了避免被安全防護(hù)系統(tǒng)檢測(cè)到,APT 攻擊代碼的編寫者使用各種偽裝、隱藏手段,通過修改系統(tǒng)程序,隱藏病毒進(jìn)程、隱藏文件、隱藏目錄的方式實(shí)現(xiàn)長期潛伏;通過對(duì)惡意程序壓縮、加密、變體及加殼等技術(shù)手段降低其被檢測(cè)到的概率;運(yùn)用動(dòng)態(tài)域名解析實(shí)現(xiàn)C&C服務(wù)器的隱藏與長期生存;通過合法的加密數(shù)據(jù)通道、加密技術(shù)或信息隱藏技術(shù)隱蔽地傳輸數(shù)據(jù)。
1.殺傷鏈模型
了解APT攻擊者的動(dòng)機(jī)和行動(dòng)在應(yīng)對(duì)這些威脅挑戰(zhàn)中發(fā)揮著重要作用。為了進(jìn)一步理解APT攻擊,Mandiant報(bào)告還提供了一個(gè)APT生命周期模型(如圖1),也被稱為殺傷鏈(kill-chain),它可以讓人們了解APT的步驟是如何共同實(shí)現(xiàn)目標(biāo)的。
一個(gè)典型的APT攻擊包含以下階段:
- 初始入侵(Initial Compromise):例如網(wǎng)站掛馬或魚叉式釣魚攻擊
- 建落腳點(diǎn)(Establish Foothold):安裝木馬后門
- 權(quán)限提升(Escalation Privilege):漏洞利用
- 內(nèi)部偵查(Internal Reconnaissance):內(nèi)部偵察目標(biāo)系統(tǒng)信息
- 橫向移動(dòng)(Move Laterally):通過網(wǎng)絡(luò)的橫向移動(dòng)滲透
- 保持存在(Maintain Presence):Command and Control(C&C)、Remote Access Trojans(RATs)
- 完成任務(wù)(Complete Mission):泄露敏感信息
APT攻擊者的目標(biāo)是獲取和泄露高度敏感的信息,例如特定專有技術(shù)的源代碼;或者通過破壞高完整性的資源來使目標(biāo)受到損害,例如,被Stuxnet蠕蟲感染了的PLC,這個(gè)目標(biāo)主要是通過符合圖1所示的殺傷鏈來實(shí)現(xiàn)的。
簡(jiǎn)而言之,殺傷鏈提供了一個(gè)理解和映射APT攻擊者動(dòng)機(jī)、目標(biāo)和行動(dòng)的參考。
2.問題說明
企業(yè)中現(xiàn)有的IDS/IPS系統(tǒng)可能會(huì)檢測(cè)并生成主機(jī)上可疑事件的警報(bào)。然而,結(jié)合這些低級(jí)警報(bào),以獲得正在運(yùn)行的APT活動(dòng)的高級(jí)圖仍然是一個(gè)重大挑戰(zhàn)。
如今,告警關(guān)聯(lián)通常使用安全信息和事件管理( Security Information and Event Management,SIEM)系統(tǒng)來執(zhí)行,如Splunk、Logrheth和IBM Qradar。這些系統(tǒng)從多個(gè)來源收集日志事件和警告并將它們關(guān)聯(lián)起來。這種相關(guān)性通常使用現(xiàn)成的指標(biāo),例如時(shí)間戳。這些關(guān)聯(lián)方法是有用的,但它們通常缺乏:
- (a) 對(duì)從報(bào)警到實(shí)際攻擊入侵之間存的復(fù)雜關(guān)系缺乏可解釋性。
- (b) 將不同主機(jī)、時(shí)間跨度極長(數(shù)周或數(shù)月)的攻擊階段組合在一起,精確性不高。
本文解決的主要問題是——實(shí)時(shí)檢測(cè)正在運(yùn)行的APT活動(dòng)(由長期跨主機(jī)的許多不同階段組成),并根據(jù)來自企業(yè)的主機(jī)日志(host logs)和IPS警報(bào)向分析人員提供攻擊場(chǎng)景的高級(jí)說明。
這個(gè)問題有三個(gè)主要方面,它們?nèi)缦拢?/p>
-
警報(bào)生成(Alert generation):如何生成能反映攻擊者行為的報(bào)警、并降低噪聲
從主機(jī)低級(jí)事件開始跟蹤,我們必須有效地生成警報(bào)。此外,必須確保不會(huì)產(chǎn)生大量的噪聲警報(bào)。 -
警報(bào)相關(guān)性(Alert correlation):如何有效地進(jìn)行報(bào)警關(guān)聯(lián)
這里的挑戰(zhàn)是將攻擊者多個(gè)活動(dòng)的警報(bào)組合為可靠信號(hào),表明存在正在進(jìn)行的APT活動(dòng)。 -
攻擊場(chǎng)景演示(Attack scenario presentation):如何呈現(xiàn)攻擊場(chǎng)景
正在運(yùn)行的APT活動(dòng)指標(biāo)需要傳達(dá)給網(wǎng)絡(luò)分析師。為了有效,這種溝通必須很直觀,需要在高層總結(jié)攻擊,以便分析人員迅速意識(shí)到這次活動(dòng)的范圍和規(guī)模。
我們注意到,雖然攻擊者的手段多種多樣,但是映射到高層次的攻擊步驟之后,其抽象攻擊模式基本不變,基于此可以將復(fù)雜的數(shù)據(jù)映射到具體的攻擊階段。
3.本文貢獻(xiàn)
為了解決上述所有問題,本文提出了一個(gè)稱為HOLMES的系統(tǒng)。HOLMES以主機(jī)審計(jì)數(shù)據(jù)開始(如Linux審計(jì)或Windows ETW數(shù)據(jù)),并生成一個(gè)檢測(cè)信號(hào),繪制正在進(jìn)行的APT活動(dòng)的階段。在高層次上,HOLMES將APT殺傷鏈作為解決APT檢測(cè)上述三個(gè)方面所涉及技術(shù)挑戰(zhàn)的關(guān)鍵參考。
ETW是Event Tracing for Windows的簡(jiǎn)稱,它是Windows提供的原生的事件跟蹤日志系統(tǒng)。由于采用內(nèi)核(Kernel)層面的緩沖和日志記錄機(jī)制,所以ETW提供了一種非常高效的事件跟蹤日志解決方案。
下面將介紹關(guān)鍵思想及其意義,并在第三部分(Ⅲ.方法概述)中有一個(gè)詳細(xì)的技術(shù)描述。本文主要貢獻(xiàn)如下:
- 首先,HOLMES旨在將主機(jī)日志中發(fā)現(xiàn)的活動(dòng)以及在企業(yè)中發(fā)現(xiàn)的任何警報(bào)信息直接映射到殺傷鏈中。這種設(shè)計(jì)選擇允許HOLMES在語義上生成接近APT攻擊者的活動(dòng)步驟(戰(zhàn)術(shù)、技術(shù)和程序,Tactics,
Techniques and Procedures,TTPs)的警報(bào)。通過這樣做,HOLMES將警報(bào)生成過程提升到攻擊事件的步驟級(jí)別,而不是在低等級(jí)審計(jì)日志中刻畫它們。因此,我們解決了在生成重要警報(bào)方面的一個(gè)重要挑戰(zhàn)。在實(shí)驗(yàn)中,我們發(fā)現(xiàn)為期5天的審計(jì)日志集合包含了大約300萬個(gè)低級(jí)別事件,而HOLMES從中提取了86個(gè)可疑的活動(dòng)步驟。 - HOLMES第二個(gè)重要思想是使用系統(tǒng)中低級(jí)實(shí)體(文件、進(jìn)程等)之間的信息流作為警報(bào)關(guān)聯(lián)的基礎(chǔ)。請(qǐng)注意,殺傷鏈中的內(nèi)部偵察步驟取決于一個(gè)成功的初始入侵和建立落腳點(diǎn)。特別是偵察步驟通常使用攻擊者在建立落腳點(diǎn)期間安裝的命令和控制代理(進(jìn)程)來啟動(dòng),從而顯示這兩個(gè)階段所涉及過程之間的流動(dòng)。此外,內(nèi)部偵察通常涉及到運(yùn)行在落腳點(diǎn)建立階段下載的惡意軟件(文件),以說明文件到進(jìn)程的流程。同樣,成功的橫向移動(dòng)和過濾階段使用內(nèi)部偵察階段收集的數(shù)據(jù)。因此,通過檢測(cè)與APT步驟相關(guān)的低等級(jí)事件并使用信息流鏈接它們,可以構(gòu)建APT攻擊者所使用的新興殺傷鏈。
- HOLMES第三個(gè)主要貢獻(xiàn)是開發(fā)了一個(gè)高級(jí)場(chǎng)景圖(high-level scenario graph,HSG)。HSG的節(jié)點(diǎn)對(duì)應(yīng)于TTP,而邊表示TTP中涉及的實(shí)體之間的信息流。HSG為高可信地檢測(cè)APT活動(dòng)提供了基礎(chǔ)。為此,我們開發(fā)了幾個(gè)新的想法。① 首先是HSG中祖先覆蓋的概念。我們將展示這個(gè)概念如何幫助評(píng)估HSG節(jié)點(diǎn)之間的依賴關(guān)系強(qiáng)度。然后可以刪除弱依賴關(guān)系,以消除許多假警報(bào)。② 我們開發(fā)了降噪技術(shù),進(jìn)一步淡化了已知與良性活動(dòng)相關(guān)的依賴性。③ 我們開發(fā)了排序和優(yōu)先級(jí)技術(shù)來刪除與APT活動(dòng)無關(guān)的大多數(shù)節(jié)點(diǎn)和邊。在第IV-D、IV-E和IV-F節(jié)中詳細(xì)描述了這些步驟。使用這些技術(shù),我們證明了霍爾姆斯能夠清楚地區(qū)分攻擊場(chǎng)景和良性場(chǎng)景。
- 最后,HSG在任何時(shí)候都提供了非常緊湊的攻擊事件總結(jié),從而為攻擊理解做出了重要貢獻(xiàn)。例如,從一個(gè)包含1000萬個(gè)審計(jì)記錄的數(shù)據(jù)集開始,我們能夠使用一個(gè)僅包含16個(gè)節(jié)點(diǎn)的圖來總結(jié)一個(gè)高級(jí)攻擊事件。網(wǎng)絡(luò)分析師可以使用所提出的HSG相對(duì)容易地快速推斷攻擊的大局(范圍和規(guī)模)。
4.評(píng)估
HOLMES通過DARPA透明計(jì)算程序所生成的數(shù)據(jù)進(jìn)行評(píng)估,該程序是由一個(gè)專業(yè)紅隊(duì)在不同平臺(tái)組成的網(wǎng)絡(luò)上模擬的多個(gè)網(wǎng)絡(luò)攻擊。我們?yōu)長inux、FreeBSD和Windows實(shí)現(xiàn)了適當(dāng)?shù)南到y(tǒng)審核數(shù)據(jù)解析器,以處理其審計(jì)數(shù)據(jù)并轉(zhuǎn)換為通用的數(shù)據(jù)表示和分析格式。使用系統(tǒng)審計(jì)數(shù)據(jù)的優(yōu)點(diǎn)是,它是一個(gè)可靠的信息來源,并且沒有未經(jīng)授權(quán)的篡改(在未妥協(xié)的內(nèi)核的威脅模型下)。
- DARPA Transparent Computing program
在9個(gè)真實(shí)APT攻擊場(chǎng)景中評(píng)估HOLMES,以及將它作為一個(gè)實(shí)時(shí)入侵檢測(cè)工具實(shí)驗(yàn)兩周,實(shí)驗(yàn)顯示HOLMES能夠明確區(qū)分攻擊場(chǎng)景和良性場(chǎng)景,可以發(fā)現(xiàn)網(wǎng)絡(luò)攻擊與高精度和召回(Sec. VI)。
Ⅱ.運(yùn)行示例
在本節(jié)中,我們將介紹本文使用的一個(gè)運(yùn)行示例來說明本文方法。這個(gè)例子表示了作為政府機(jī)構(gòu)組織(特別是美國DARPA)研究計(jì)劃中的一部分紅隊(duì)攻擊。在這次攻擊中,存在漏洞的Nginx Web服務(wù)器在FreeBSD系統(tǒng)上運(yùn)行。其操作(系統(tǒng)調(diào)用)在系統(tǒng)審計(jì)日志中被捕獲。從這個(gè)審計(jì)數(shù)據(jù)中構(gòu)建了一個(gè)溯源圖(provenance graph),其片段如圖2所示。該圖中的節(jié)點(diǎn)表示系統(tǒng)實(shí)體(entities),如進(jìn)程(表示為矩形)、文件(橢圓)、網(wǎng)絡(luò)連接(菱形)、內(nèi)存對(duì)象(五邊形)和用戶(星形)。邊對(duì)應(yīng)系統(tǒng)調(diào)用,并且面向信息流和/或因果關(guān)系的方向。請(qǐng)注意,使用參考文獻(xiàn)[23]中描述的(優(yōu)化的)節(jié)點(diǎn)版本控制技術(shù),我們的溯源圖已被呈現(xiàn)為無循環(huán)的。
攻擊者的目標(biāo)是從系統(tǒng)中提取敏感信息。圖2底部描繪了攻擊者的活動(dòng),主要包括以下步驟:
- 初始入侵(Initial Compromise)。 攻擊者在監(jiān)聽80端口的套接字(S1) 上發(fā)送惡意有效載荷。因此,Nginx 使其內(nèi)存區(qū)域 (M1) 的某些部分可執(zhí)行。 接下來,攻擊者通過使用反射自加載漏洞來控制Nginx進(jìn)程。
- C&C通信(C&C Communications)。受損的Nginx進(jìn)程與C&C服務(wù)器建立連接(S2),以接收來自攻擊者的命令。
- 特權(quán)提升(Privilege Escalation)。攻擊者利用現(xiàn)有漏洞將Nginx的特權(quán)升級(jí)為根目錄(U1)。
- 內(nèi)部偵察(Internal Reconnaissance)。接下來,攻擊者會(huì)發(fā)出諸如whoami(P5)和主機(jī)名(P6)等命令。紅隊(duì)使用這些命令來模擬對(duì)專有數(shù)據(jù)的訪問。攻擊者還會(huì)讀取用戶名和密碼哈列(F2、F3、F4),并將所有這些信息寫入臨時(shí)文件。
- 竊取信息(Exfifiltration)。接下來,攻擊者將包含收集信息的文件傳輸?shù)狡錂C(jī)器(S3)。
- 清除痕跡(Cleanup)。攻擊的最后一步,攻擊者將刪除臨時(shí)文件(F5)以清除任何攻擊殘余
本示例說明了下面描述的許多關(guān)鍵挑戰(zhàn):
- 攻擊隱蔽(Stealthy Attacks):該統(tǒng)計(jì)系統(tǒng)留下痕跡最少,有效載荷在現(xiàn)有的Nginx進(jìn)程中運(yùn)行,檢測(cè)這種隱蔽攻擊是非常具有挑戰(zhàn)性的,因?yàn)楣艋顒?dòng)與正常的系統(tǒng)操作可以無縫融合。
- 大海撈針(Needle in a haystack):一個(gè)主機(jī)每天也能生成數(shù)千萬個(gè)事件,除小部分外(通常不到0.01%)都屬于良性活動(dòng),很難檢測(cè)到這種罕見事件。
- 實(shí)時(shí)檢測(cè)(Real-time detection):假設(shè)HOLMES與網(wǎng)絡(luò)響應(yīng)系統(tǒng)一起使用,因此需要在幾秒鐘內(nèi)檢測(cè)和總結(jié)一場(chǎng)正在進(jìn)行的事件。實(shí)時(shí)檢測(cè)給HOLMES使用的技術(shù)帶來了額外的挑戰(zhàn)和限制。
盡管能無縫地融入了良性的背景活動(dòng),但在攻擊中有兩個(gè)因素很突出。首先,攻擊步驟實(shí)現(xiàn)與某些APT階段能力對(duì)應(yīng)。其次,攻擊活動(dòng)通過信息流被連接起來。在下一節(jié)中,我們描述HOLMES方法的兩個(gè)關(guān)鍵觀察結(jié)果。
Ⅲ.方法概述
我們方法背后的核心認(rèn)知是,盡管具體的攻擊階段在不同的APT之間可能存在很大差異,但高級(jí)APT行為通常符合第一部分中引入的殺傷鏈模型。我們對(duì)數(shù)百個(gè)APT報(bào)告的分析表明,大多數(shù)APT包括這些階段的子集。更重要的是觀察到這些階段存在因果關(guān)系,這種聯(lián)系是攻擊正在展開的一個(gè)主要跡象。
注意,每個(gè)APT階段的具體表現(xiàn)形式可能變化,例如初始入侵可以通過使用戶執(zhí)行惡意文件的網(wǎng)站掛馬或魚叉式網(wǎng)絡(luò)釣魚攻擊來執(zhí)行。無論如何,APT階段本身代表了對(duì)攻擊者意圖的高層次抽象,因此即使攻擊者使用的操作策略因APT而異,它們也必然會(huì)表現(xiàn)出來。此外,由于APT攻擊階段在邏輯上相互依賴,因此必然在它們之間存在信息流或因果關(guān)系,例如信息竊取取決于內(nèi)部偵察去收集敏感數(shù)據(jù)。
因此,研究問題是我們能否將檢測(cè)建立在以下基礎(chǔ)上:
- APT最基本的高層次行為階段
- 并且這些階段之間的信息流依賴關(guān)系
回答這個(gè)問題的一個(gè)主要挑戰(zhàn)是:低級(jí)別審計(jì)數(shù)據(jù)與攻擊者目標(biāo)、意圖和能力與高級(jí)殺傷鏈(kill-chain)視角之間存在巨大的語義差距。
縮小語義鴻溝(Bridging the Semantic Gap)
為了彌合低級(jí)系統(tǒng)調(diào)用視角和高級(jí)殺傷鏈視角之間的語義差距,構(gòu)建了一個(gè)中間層,如上圖3所示。映射到這個(gè)中間層是基于MITRE的ATT&CK框架, 它描述了近200種行為模式,定義為在野觀察到的戰(zhàn)術(shù)、技術(shù)和程序(Tactics,Techniques and Procedures,TTPs)。
每個(gè)TTP都定義了一種實(shí)現(xiàn)特定高級(jí)功能的可能方法。例如,可以使用11個(gè)不同的TTP實(shí)現(xiàn)在受損Linux系統(tǒng)中的持久化能力,每個(gè)TTP代表ATT&CK框架中可能的低級(jí)活動(dòng)序列,例如rootkit的安裝、修改引導(dǎo)腳本等。這些較低級(jí)別的操作更接近審計(jì)日志的抽象級(jí)別,因此可以根據(jù)起源圖中的節(jié)點(diǎn)和邊來描述TTP。
技術(shù)挑戰(zhàn)(Technical challenges)
- 有效地將低級(jí)事件流與TTPs進(jìn)行匹配
- 檢測(cè)攻擊步驟之間的相關(guān)性
- 減少誤報(bào)
(1) 通過一些創(chuàng)新設(shè)計(jì)來解決這些挑戰(zhàn)。為了使低級(jí)別的數(shù)據(jù)有效地映射到TTPs,我們將審計(jì)日志表示為主內(nèi)存中的?有向溯源圖(directed provenance graph)
,并且使用系統(tǒng)中低級(jí)別實(shí)體(如文件、進(jìn)程等)之間的信息流(Information Flow)依賴關(guān)系作為基礎(chǔ),來進(jìn)行警報(bào)關(guān)聯(lián)。TTP被指定為利用這些依賴關(guān)系的模式。
(2) 為了檢測(cè)到攻擊步驟之間的關(guān)聯(lián)性,本文開發(fā)了?高級(jí)別場(chǎng)景圖(high-level scenario graph, HSG)
,HSG的節(jié)點(diǎn)對(duì)應(yīng)于TTPs,邊表示TTPs實(shí)體之間的信息流和依賴關(guān)系。在HSG中定義了以下概念:
- Ancestral Cover:描述節(jié)點(diǎn)之間的依賴關(guān)系
- Noise Reduction:降低與良性活動(dòng)相關(guān)的依賴性
- Ranking and Prioritization:修剪與APT無關(guān)的節(jié)點(diǎn)和邊
(3) 為了減少誤報(bào),本文提出的方法是:學(xué)習(xí)可能會(huì)產(chǎn)生誤報(bào)的良性TTPs模式,采用啟發(fā)式算法;根據(jù)其嚴(yán)重程度為圖中的節(jié)點(diǎn)和路徑分配權(quán)重,以便可以對(duì)HSG進(jìn)行排序,并將排序最高的HSG呈現(xiàn)給分析人員。
總之,APT高級(jí)階段使用一套可以從審計(jì)數(shù)據(jù)中觀察到通用戰(zhàn)術(shù)的操作。這些觀察結(jié)果提供了一些惡意活動(dòng)可能正在開展的證據(jù)。因此,HOLMES的主要工作是收集證據(jù),推斷它們之間的相關(guān)性,并利用這些相關(guān)性繪制出整個(gè)攻擊事件。
Ⅳ.系統(tǒng)設(shè)計(jì)
系統(tǒng)設(shè)計(jì)的主要任務(wù)是建立威脅模型,因此如何建立審計(jì)系統(tǒng)以及如何生成日志數(shù)據(jù)不在本系統(tǒng)設(shè)計(jì)的范圍之內(nèi)。此外,本文假設(shè)初始系統(tǒng)是安全可靠地。
A.數(shù)據(jù)收集和表示
該系統(tǒng)使用的審計(jì)日志來源于許多主機(jī)的不同操作系統(tǒng):
- Linux auditd:審計(jì)數(shù)據(jù)
- BSD dtrace
- Windows ETW:事件跟蹤日志系統(tǒng)
原始審核數(shù)據(jù)被收集并處理成與操作系統(tǒng)無關(guān)的格式。HOLMES接受的輸入的事件(event)包括:
- principals :用戶
- files:如I/O操作、文件創(chuàng)建、文件所有權(quán)、權(quán)限
- memory:如mprotect和mmap
- processes:如進(jìn)程創(chuàng)建和權(quán)限更改
- network connections:網(wǎng)絡(luò)連接相關(guān)事件
數(shù)據(jù)表示為稱為溯源圖(provenance graph)。
- 圖的節(jié)點(diǎn)包括主體(進(jìn)程)和對(duì)象(文件、通道、套接字)
- 邊表示這些實(shí)體之間的依賴關(guān)系,并使用事件名稱進(jìn)行注釋
該設(shè)計(jì)與前人的工作有兩個(gè)不同之處:
-
provenance graph是不斷變化的:當(dāng)一條邊改變了節(jié)點(diǎn)的依賴關(guān)系,一個(gè)新的節(jié)點(diǎn)將會(huì)被創(chuàng)建并替換舊節(jié)點(diǎn)。這種“版本化”的方法使得在不改變分析結(jié)果的情況下可以對(duì)圖進(jìn)行修剪,而且這種versioned graph是無環(huán)的,這可以簡(jiǎn)化許多圖算法。
-
另一個(gè)不同之處是provenance graph是存儲(chǔ)在主存中的,每個(gè)事件所占空間小于5bytes,這種表示方式可以在較長的時(shí)間段內(nèi)實(shí)時(shí)消耗事件和構(gòu)建起源圖。
B.TTP規(guī)劃
TTP規(guī)范提供了低級(jí)別審計(jì)事件和高級(jí)別APT階段之間的映射,因此這是本文所提出的方法的核心。TTP代表了具體審計(jì)日志和高級(jí)APT步驟之間的中間抽象層。具體而言,主要依靠兩種技術(shù)將審計(jì)日志數(shù)據(jù)提升到該中間層:
- (a) 以安全相關(guān)事件的溯源圖形式的OS中性表示;
- (b) 使用TTPs中涉及的實(shí)體之間的信息流依賴關(guān)系。
總之,這些技術(shù)實(shí)現(xiàn)了高級(jí)別的惡意行為規(guī)范,這些規(guī)范在很大程度上獨(dú)立于許多TTP細(xì)節(jié),例如使用的特定系統(tǒng)調(diào)用、惡意軟件名稱、創(chuàng)建的中間文件以及用于創(chuàng)建它們的程序等。信息流依賴的使用對(duì)于通過使用良性系統(tǒng)進(jìn)程來實(shí)現(xiàn)其目標(biāo)并隱藏其活動(dòng)的隱秘APT的檢測(cè)至關(guān)重要。
- 先決條件(Prerequisites):表現(xiàn)為因果關(guān)系和和信息流的形式。
最后,為了高效匹配TTP且不使用回溯技術(shù)(backtracking)。我們發(fā)現(xiàn),大多數(shù)TTP可以在我們的框架中使用單個(gè)事件進(jìn)行建模,并對(duì)所涉及的主題和對(duì)象有附加的先決條件。表4顯示了TTP規(guī)范示例。
其中,第一列表示APT階段;第二列表示相關(guān)的TTP名稱和所涉及的實(shí)體;第三列指定與TTP相關(guān)聯(lián)的事件家族;第四列列出了第三列對(duì)應(yīng)的Event Family中所包含的事件;最后一列既可以表示該TTP的先決條件,也可以表示該TTP的先決TTP。先決條件既可以包含于兩個(gè)TTPs實(shí)體之間的關(guān)系,而且能夠捕獲兩個(gè)TTP擁有一個(gè)共同parent的條件。應(yīng)用先決條件,我們可以減少誤報(bào)。
C.HSG構(gòu)建
下圖顯示了一個(gè)HSG。該圖的橢圓節(jié)點(diǎn)表示匹配的TTP。在每個(gè)橢圓內(nèi)部,用灰色表示匹配的起源圖實(shí)體。為了便于說明,還包括TTP的名稱,每個(gè)TTP所屬的APT階段以及每個(gè)TTP的嚴(yán)重性級(jí)別(低中高)。圖的邊代表不同TTP之間的先決條件。完成兩個(gè)實(shí)體之間的路徑的虛線表示前提條件。例如,MakeMemExec TTP將Untrusted_Read TTP作為前提,由兩個(gè)節(jié)點(diǎn)之間的邊表示。
HSG的構(gòu)建主要是由先決條件驅(qū)動(dòng)的。如果一個(gè)TTP的所有先決條件都滿足了,那么這個(gè)TTP就會(huì)被匹配并且被添加到HSG中。這可以隨時(shí)減少HSG中TTP的數(shù)量,從而可以進(jìn)行復(fù)雜的分析而不會(huì)影響實(shí)時(shí)性能。
D.避免虛假依賴
虛假依賴(spurious dependencies),即活動(dòng)的攻擊者不感興趣或無關(guān)的依賴。我們應(yīng)該優(yōu)先考慮較強(qiáng)的依賴關(guān)系,盡可能地對(duì)弱依賴關(guān)系進(jìn)行剪枝。
(1) 虛假依賴即與攻擊活動(dòng)不相關(guān)的依賴
- 例如,進(jìn)程nginx(P2) 寫入文件/usr/log/nginx-error.log,然后cat進(jìn)程讀取該文件。但是,即使cat和日志文件之間存在依賴關(guān)系,cat也與攻擊無關(guān),并通過ssh獨(dú)立調(diào)用。通常,考慮由攻擊活動(dòng)生成的二次衍生的任何進(jìn)程,例如一個(gè)日志滾動(dòng)系統(tǒng),它會(huì)復(fù)制包含攻擊者進(jìn)程生成的部分條目的日志文件。這些進(jìn)程雖然代表良性的背景活動(dòng),但會(huì)在起源圖中標(biāo)記為依賴于攻擊者的進(jìn)程。如果沒有及時(shí)修剪這些虛假的依賴關(guān)系,可能會(huì)出現(xiàn)依賴關(guān)系爆炸,這會(huì)極大地增加HSG的整體大小。所以我們的目標(biāo)是留下強(qiáng)依賴,修剪掉弱依賴。
為了將上述討論推廣到可能存在多個(gè)入侵進(jìn)程的情況,引入了一個(gè)信息流 f上所有進(jìn)程的祖先實(shí)體覆蓋(ancestral cover)。
(2) 祖先覆蓋 ancestral cover AC(f)
- f 表示一條信息流路徑
- 僅針對(duì)在f中的所有進(jìn)程,不影響非進(jìn)程節(jié)點(diǎn)
(3) 最小祖先覆蓋 minimum ancestral cover?AC_{min}(f)ACmin?(f)
- AC_{min}(f)ACmin?(f)?表示攻擊者如果想要控制整條信息流路徑,那么所需要拿下的最少祖先節(jié)點(diǎn)數(shù)
(4) 路徑因子?path\_factor(N_1,N_2)path_factor(N1?,N2?)
- 考慮到?N_1N1??到?N_2N2??的所有信息流路徑?f_1,...,f_nf1?,...,fn?,令?m_imi??表示?f_ifi??的最小祖先覆蓋。那么,path\_factor(N_1,N_2)path_factor(N1?,N2?)** 為?m_1,...,m_nm1?,...,mn??中的最小值。
- path_factor的使用極大地減輕了優(yōu)先處理受攻擊影響信息流導(dǎo)致的依賴性爆炸(dependency explosion)。
PS:該部分細(xì)節(jié)太多,建議大家去讀原文。
E.降噪
攻擊檢測(cè)和取證的審計(jì)日志分析中的一個(gè)挑戰(zhàn)是存在噪音,即與TTP規(guī)則匹配的良性事件。諸如瀏覽器、Web服務(wù)器和ssh守護(hù)進(jìn)程之類的長周期進(jìn)程不時(shí)會(huì)觸發(fā)TTP匹配。為了減少這些誤報(bào),結(jié)合了基于訓(xùn)練數(shù)據(jù)的降噪規(guī)則。利用兩個(gè)概念:
- 良性先決條件匹配
- 良性數(shù)據(jù)流數(shù)量
(1) 良性先決條件匹配
對(duì)于每個(gè)進(jìn)程,我們的系統(tǒng)運(yùn)行在良性的環(huán)境中并學(xué)習(xí)經(jīng)常遇到的先決條件。在運(yùn)行過程中,一旦某個(gè)被觸發(fā)的TTP的先決條件與我們?cè)谟?xùn)練中得到的條件(benign)相匹配,我們便忽略該TTP。
這種方法可能會(huì)導(dǎo)致漏報(bào)(false negative),比如一個(gè)惡意事件如果匹配到了良性環(huán)境中訓(xùn)練得到的良性先決條件,那么這個(gè)惡意事件就可能會(huì)被忽略。例如,即便沒有任何攻擊,在nginx的啟動(dòng)階段也會(huì)執(zhí)行read /etc/passwd,然而如果我們將該行為列入白名單的話,如果有惡意事件是讀取改文件,那么該惡意事件就會(huì)被忽略。
(2) 良性數(shù)據(jù)流數(shù)量
為了解決上述問題,提出了用字節(jié)轉(zhuǎn)移度量的數(shù)據(jù)流數(shù)量的概念。比如從/etc/passwd到nginx的數(shù)據(jù)流數(shù)量等于/etc/passwd文件的大小。因此,如果觀察到更多的字節(jié)從/etc/passwd流向nginx,那么該信息流可能是攻擊的一部分。為了確定信息流數(shù)量的臨界點(diǎn),我們?cè)谝欢螘r(shí)間的良性活動(dòng)中觀察process-file和process-socket活動(dòng)。
F.信息關(guān)聯(lián)和檢測(cè)
對(duì)每一個(gè)HSG定義?嚴(yán)重程度評(píng)分(severity score)
,據(jù)此來確定一個(gè)HSG會(huì)構(gòu)成APT攻擊的可能性。這項(xiàng)工作分兩步進(jìn)行,如下所述:
(1) 威脅元組(Threat Tuple)
首先通過與相應(yīng)的HSG關(guān)聯(lián)的抽象威脅元組來表示攻擊者在活動(dòng)中的進(jìn)度。特別是對(duì)于每個(gè)HSG,威脅元組由7個(gè)元素<S1, S2, S3, …, S7>組成,其中每個(gè)Si對(duì)應(yīng)于APT攻擊階段的威脅程度。一個(gè)APT階段通常會(huì)包含許多APT,選取威脅程度最高的來構(gòu)成威脅元組。
由于屬于某一APT階段的不同TTP可能具有不同的嚴(yán)重性級(jí)別,因此通常有多個(gè)候選者可供選擇。在這些候選人中選擇最嚴(yán)重級(jí)別是很自然的。例如,與圖5的HSG相關(guān)聯(lián)的威脅元組是<M, L, H, H, —, H, M>。這個(gè)元組包含6個(gè)條目,因?yàn)樗ヅ涞腡TP屬于6個(gè)不同APT階段。這些條目是根據(jù)殺傷鏈中APT級(jí)別的順序排列的。例如元組的第一個(gè)條目是M,因?yàn)閳D中屬于Initial_Reconnaissance 最嚴(yán)重的TTP具有嚴(yán)重性M。
(2) HSG 排名和優(yōu)先級(jí)(HSG Ranking and Prioritization)
為了給HSG排序,首先根據(jù)下圖將Threat Tuple轉(zhuǎn)化為數(shù)值類型,接下來將代表7個(gè)APT階段的分?jǐn)?shù)合并為一個(gè)整體的分?jǐn)?shù)。特別是根據(jù)通用漏洞評(píng)分系統(tǒng)(CVSS)中包含的轉(zhuǎn)換表(下表)將威脅元組的每個(gè)元素映射為一個(gè)數(shù)值,CVSS是一個(gè)由商業(yè)、非商業(yè)和學(xué)術(shù)領(lǐng)域的安全專業(yè)人員協(xié)作創(chuàng)建的中立行業(yè)標(biāo)準(zhǔn)??紤]到他們感知到的威脅與對(duì)抗威脅的歷史,替代評(píng)分選擇可以由企業(yè)進(jìn)行。
合并規(guī)則基于以下兩個(gè)準(zhǔn)測(cè):
- 靈活性和定制化
- 該分?jǐn)?shù)要能夠反映APT攻擊步驟是如何展開的
為元組中的每一個(gè)entry設(shè)置一個(gè)權(quán)重,其中,n表示APT攻擊的步驟數(shù),wi 和 Si 分別表示步驟i的權(quán)重和威脅程度,T表示閾值。如果在步驟i中沒有TTP出現(xiàn),我們將Si設(shè)置為1。
Ⅴ.系統(tǒng)實(shí)現(xiàn)
下圖是整個(gè)HOLMES系統(tǒng)架構(gòu)。
A.構(gòu)建溯源圖的流消耗
為了實(shí)現(xiàn)平臺(tái)的獨(dú)立性,將來自不同操作系統(tǒng)的審計(jì)數(shù)據(jù)規(guī)范化為通用數(shù)據(jù)表示(common data representation, CDR)。為基于CDR的審計(jì)記錄發(fā)布到流處理服務(wù)器(Kafka),并從流服務(wù)器消耗來進(jìn)行實(shí)時(shí)分析和檢測(cè)。
使用SLEUTH(USENIX’17)系統(tǒng)進(jìn)行數(shù)據(jù)流消耗,利用因果關(guān)系跟蹤和起源圖構(gòu)造。
B.規(guī)則匹配引擎和HSG構(gòu)建
規(guī)則匹配引擎在溯源圖上進(jìn)行操作,并且將TTP規(guī)則作為輸入。論文中用到的TTPs規(guī)則在Table8中展示。為了匹配到一個(gè)TTP,規(guī)則匹配引擎將規(guī)則表中的每一條規(guī)則和它的先決條件進(jìn)行迭代。這個(gè)環(huán)節(jié)的主要挑戰(zhàn)是:對(duì)于每一個(gè)TTP來說,都要檢查之前匹配的TTPs的先決條件和他們之間的路徑因子。
為了避免大量的計(jì)算,我們不使用回溯法而是使用?增量匹配法。這種方法存儲(chǔ)先前計(jì)算的結(jié)果,并沿著圖匹配和傳播指向這些結(jié)果的指針。當(dāng)一個(gè)TTP被匹配時(shí),我們?cè)贖SG中創(chuàng)建相應(yīng)的節(jié)點(diǎn),并創(chuàng)建一個(gè)指向該節(jié)點(diǎn)的指針。同時(shí)這個(gè)指針將會(huì)指向所有與該TTP有依賴關(guān)系的低級(jí)別實(shí)體。
例如path_factor的計(jì)算,假設(shè)N1(起源圖中的實(shí)體)和N2、N1和N3之間已經(jīng)建立了依賴,當(dāng)節(jié)點(diǎn)N2與N3之間出現(xiàn)了信息流時(shí), 我們需要重新計(jì)算N1和N3之間的path_factor,以取path_factor的最小值。計(jì)算的過程中之前N1和N2的計(jì)算結(jié)果便可復(fù)用。
這種基于指針的兩層之間的關(guān)聯(lián)方法可能存在開銷和復(fù)雜性較大的問題。但實(shí)際情況是,大量的低級(jí)別實(shí)體指向一個(gè)TTP,每個(gè)低級(jí)別實(shí)體只有一個(gè)指向TTP的指針,而每個(gè)TTP有多個(gè)維護(hù)多個(gè)指向它的指針,因此并沒有出現(xiàn)隨著起源圖的增加而開銷和復(fù)雜度急劇提升的情況
C.噪聲過濾和檢測(cè)引擎
噪聲過濾引擎識(shí)別的是良性的TTP匹配,所以它被排除在HSG之外。它以從正常行為中學(xué)習(xí)到的模型為輸入,模型包含了與良性活動(dòng)匹配的TTPs以及從操作系統(tǒng)中讀寫操作的字節(jié)數(shù)閾值。
當(dāng)規(guī)則匹配系統(tǒng)匹配到一個(gè)TTP時(shí),它的入口和先決條件就會(huì)在這個(gè)模型中搜索,如果在模型中存在一個(gè)入口包含了所有的先決條件和匹配事件,那么所有的被轉(zhuǎn)移的字節(jié)數(shù)就會(huì)與良性閾值進(jìn)行比對(duì)。低于良性閾值該TTP則被過濾,否則在HSG中創(chuàng)建一個(gè)該TTP對(duì)應(yīng)的節(jié)點(diǎn)。最后檢測(cè)引擎計(jì)算不同HSGs的“權(quán)重和”,當(dāng)其超過檢測(cè)閾值時(shí),就發(fā)出警報(bào)。
Ⅵ.實(shí)驗(yàn)評(píng)估
實(shí)驗(yàn)評(píng)估是在由DARPA組織的紅藍(lán)對(duì)抗中完成,通過評(píng)估計(jì)算出HOLMES最佳的閾值,并衡量HOLMES的表現(xiàn)。最終,將HOLMES部署在真實(shí)環(huán)境中,在沒有先驗(yàn)知識(shí)的情況下來檢測(cè)紅隊(duì)的APT攻擊。在我們的現(xiàn)場(chǎng)實(shí)驗(yàn)后,這個(gè)數(shù)據(jù)集已經(jīng)在公共領(lǐng)域[26]發(fā)布,以刺激在這一領(lǐng)域的進(jìn)一步研究。
- https://github.com/darpa-i2o/Transparent-Computing
A.數(shù)據(jù)
評(píng)估所用的數(shù)據(jù)如表10所示,包含了跨三個(gè)操作系統(tǒng)7臺(tái)主機(jī)的9個(gè)APT攻擊場(chǎng)景,時(shí)間跨度為20天,其中包含了攻擊數(shù)據(jù)和良性數(shù)據(jù),攻擊數(shù)據(jù)在數(shù)據(jù)總量中少于0.001%。
簡(jiǎn)而言之,紅隊(duì)攻擊場(chǎng)景中的攻擊目標(biāo)和活動(dòng)涵蓋了那些備受矚目的APT活動(dòng)。這些活動(dòng)包括典型的APT活動(dòng),如瀏覽器誘導(dǎo)驅(qū)動(dòng)器的初始入侵、后門注入、特權(quán)提升、內(nèi)部偵察、敏感資產(chǎn)過濾以及清理攻擊足跡。在這些攻擊中,復(fù)雜的攻擊向量,如反射加載、Webshell和內(nèi)存模塊加載,它們被紅隊(duì)用來評(píng)估HOLMES對(duì)APT攻擊的魯棒性。
為了構(gòu)建降噪模型,我們使用了4天的良性審計(jì)數(shù)據(jù)。這些程序包括瀏覽器(如火狐)、Web服務(wù)器(如Nginx)和各種守護(hù)進(jìn)程(如postfix、syslogd)。
B.設(shè)定
在行動(dòng)之前,每個(gè)主機(jī)都有一些接下來會(huì)被攻擊者利用的漏洞軟件。為了進(jìn)一步混合正常日志和攻擊日志,紅隊(duì)同時(shí)也會(huì)進(jìn)行良性的活動(dòng)。
HOLMES會(huì)訂閱7個(gè)Kafka的topics(每個(gè)主機(jī)一個(gè)topics)來消耗數(shù)據(jù)流以進(jìn)行實(shí)時(shí)地分析和預(yù)測(cè)。為TTPs的先決條件設(shè)置path_thres=3,設(shè)置APT階段i的權(quán)重weight=(10+i)/10。
C.結(jié)果顯示
表11總結(jié)了9個(gè)攻擊場(chǎng)景的檢測(cè)情況。第二列顯示檢測(cè)過程中匹配每個(gè)HSG的威脅元組,第三列顯示相應(yīng)的威脅分?jǐn)?shù),第四列顯示了執(zhí)行攻擊場(chǎng)景機(jī)器在所有良性場(chǎng)景中的最高得分。這些良性場(chǎng)景可能包含相應(yīng)攻擊場(chǎng)景中的確切程序。
良性HSG的最高得分為338(方案3),攻擊HSG的最低得分為608(方案5.2),這與對(duì)系統(tǒng)沒有造成傷害的不完全攻擊有關(guān)。 這說明 HOLMES 已經(jīng)將攻擊場(chǎng)景和良性場(chǎng)景分成了兩個(gè)不相交的集群,并明確區(qū)分了它們。
學(xué)習(xí)降噪規(guī)則和路徑因子的影響如圖12所示。此圖顯示了所有良性和攻擊HSG在分析了所有七個(gè)階段后構(gòu)建的威脅分?jǐn)?shù)。這些分?jǐn)?shù)在三種不同的設(shè)置下顯示,很明顯,攻擊HSG和良性HSG之間有較大的差距。
D.尋找最優(yōu)閾值
如下圖所示,使用準(zhǔn)確率和召回率來尋找最佳閾值。其中F-score表示準(zhǔn)確率和召回率的調(diào)和平均值,注意到在[338.25, 608.26]時(shí),F(xiàn)-score達(dá)到最大,區(qū)間的兩個(gè)端點(diǎn)分別表示良性活動(dòng)的最高分?jǐn)?shù)和惡意活動(dòng)的最小分?jǐn)?shù),因此閾值應(yīng)該在該區(qū)間內(nèi)選取。
在取n次方根之后我們發(fā)現(xiàn),F(xiàn)-score取得最大值時(shí),在[338.25, 608.26]之間調(diào)整閾值獲得不同的threat scores,此時(shí)對(duì)應(yīng)平均嚴(yán)重程度的收斂區(qū)間為[2.01, 2.16],我們?nèi)∑渲形粩?shù)2.09。
E.性能
-
Graph Size
圖15顯示了數(shù)千條邊(左)的起源圖和邊數(shù)(右)的HSG的生長趨勢(shì)的比較。在邊緣測(cè)量的圖尺寸比是1875:1,即在從起源圖映射到HSG的過程中減少了1875倍。 -
Memory Use
HOLMES在8核CPU上測(cè)試,每個(gè)速度2.5GHz和150GB內(nèi)存。圖16(左)顯示具有審計(jì)記錄數(shù)量HOLMES的內(nèi)存消耗。它顯示了內(nèi)存消耗的近線性增長,因?yàn)樵撓到y(tǒng)在內(nèi)存中的審計(jì)記錄。圖16(右)顯示了支持多少主機(jī)的可擴(kuò)展性到數(shù)百臺(tái)主機(jī)的企業(yè)。很明顯,隨著主機(jī)數(shù)量的增加,我們可以在內(nèi)存中保持完整的溯源圖的持續(xù)時(shí)間就會(huì)減少。注意,x軸和y軸都是按log-2比例排列的。 -
Runtime
本文測(cè)量了消耗記錄、構(gòu)建溯源圖、構(gòu)建HSG和檢測(cè)APTs的CPU時(shí)間。
F.真實(shí)場(chǎng)景實(shí)驗(yàn)
將系統(tǒng)放在模擬的企業(yè)環(huán)境中,在對(duì)攻擊沒有先驗(yàn)知識(shí)的情況下,由紅隊(duì)發(fā)起APT攻擊。圖18顯示了HOLMES在本實(shí)驗(yàn)中構(gòu)造的攻擊HSG和良性HSG的累積分布函數(shù)。
- 誤報(bào)(False Positive)
將系統(tǒng)放在兩周的良性活動(dòng)環(huán)境中,沒有發(fā)現(xiàn)誤報(bào)。 - 漏報(bào)(False Negative)
TTP之間的隱式因果關(guān)系:對(duì)于避免系統(tǒng)調(diào)用的信息流,HOLMES無法直接查看系統(tǒng)實(shí)體之間的因果關(guān)系。 但是,如果攻擊的其余部分通過系統(tǒng)調(diào)用展開,則HOLMES仍將重構(gòu)部分攻擊。此外,作為一種主動(dòng)規(guī)避技術(shù),攻擊者可能會(huì)利用多個(gè)入口點(diǎn)來生成分離的子圖。
Ⅶ.相關(guān)工作
HOLMES對(duì)實(shí)時(shí)警報(bào)生成、警報(bào)相關(guān)性和場(chǎng)景重建等問題做出了貢獻(xiàn)。HOLMES模型中的一個(gè)核心思想是構(gòu)建和使用高級(jí)攻擊場(chǎng)景圖作為上述所有問題的潛在基礎(chǔ)。下面,我們將討論上述所有領(lǐng)域的相關(guān)工作。
A.警報(bào)生成(Alarm Generation)
基于主機(jī)的入侵檢測(cè)方法(Host-based intrusion detection approaches)主要分為以下三類:
- misuse-based(濫用) :檢測(cè)與已知攻擊相關(guān)的行為
- anomaly-based(異常) :從正常行為中學(xué)習(xí)模式,并檢測(cè)偏離該模式的行為
- specification-based(規(guī)范) :根據(jù)專家指定的策略檢測(cè)攻擊,依賴專家知識(shí)
本文屬于misuse-based,但本文方法超越了傳統(tǒng)的濫用檢測(cè)(傳統(tǒng)基于規(guī)則)。
- HOLMES使用了先決條件-結(jié)果的模式,當(dāng)匹配的TTP中涉及的實(shí)體之間存在信息流依賴性時(shí),這些先決條件-結(jié)果模式將被匹配。
B.警報(bào)關(guān)聯(lián)
IDS生成的警報(bào)對(duì)于人工操作員而言太多且級(jí)別很低。 需要開發(fā)一些技術(shù)來總結(jié)這些低級(jí)別警報(bào)并減少其數(shù)量。一些方法使用警報(bào)相關(guān)性,通過對(duì)相似警報(bào)進(jìn)行聚類并確定警報(bào)之間的因果關(guān)系來執(zhí)行檢測(cè)。
-
目前的方法依賴運(yùn)行在用戶空間的第三方應(yīng)用生成的日志,而且基于像時(shí)間戳之類的統(tǒng)計(jì)特征,這樣并不能很好的檢測(cè)時(shí)間跨度很長的APT攻擊。因此HOLMES在不同的攻擊步驟之間建立了信息流,使用了內(nèi)核審計(jì)數(shù)據(jù)。
-
警報(bào)關(guān)聯(lián)的另一項(xiàng)工作依賴于警報(bào)在時(shí)間上的接近程度。 相比之下,HOLMES依靠信息流和因果關(guān)系來關(guān)聯(lián)警報(bào),因此即使在執(zhí)行步驟非常緩慢的情況下,也能夠檢測(cè)到攻擊。
C.場(chǎng)景重建
許多研究是基于生成和使用系統(tǒng)調(diào)用級(jí)別的日志(system-call level
logs)來進(jìn)行的。大多數(shù)的方法是從一個(gè)給定的惡意事件開始去追溯導(dǎo)致該事件的原因。相比之下,HOLMES使用系統(tǒng)事件跟蹤來執(zhí)行實(shí)時(shí)檢測(cè),在檢測(cè)框架中具有以高水平攻擊步驟形式的集成取證能力,而不需要檢測(cè)。
最近的研究已經(jīng)使用了系統(tǒng)調(diào)用級(jí)別的日志來進(jìn)行實(shí)時(shí)分析。SLEUTH提出了基于標(biāo)簽的攻擊檢測(cè)和就地取證的技術(shù)。HOLMES在偵探方面取得了一些重大進(jìn)展。
- 首先,它展示了如何利用最小祖先覆蓋的概念來解決依賴爆炸問題,并開發(fā)了一種有效的增量計(jì)算算法。
- 其次,偵探的場(chǎng)景圖與起源圖處于抽象相同,這對(duì)于許多分析人員來說可能太低,而且在HSG中缺乏可操作的信息。
- 最后,溯源圖在長期運(yùn)行的攻擊中可能會(huì)變得太大,而HOLMES則通過使用降噪和優(yōu)先級(jí)技術(shù)生成緊湊的HSG。
D.攻擊粒度
有時(shí),審計(jì)日志的粗粒度會(huì)限制對(duì)信息流的推理。例如,如果具有之前加載過敏感文件的進(jìn)程受到攻擊,則攻擊者可以在不使用系統(tǒng)調(diào)用的情況下在其內(nèi)存區(qū)域內(nèi)搜索敏感內(nèi)容。HOLMES會(huì)將該文件竊取行為與該進(jìn)程的其他動(dòng)作相關(guān)聯(lián),比如敏感文件讀取。
Ⅷ.結(jié)論
本文提出了一個(gè)實(shí)時(shí)APT檢測(cè)系統(tǒng)HOLMES,它關(guān)聯(lián)了可能用于執(zhí)行每個(gè)APT階段的戰(zhàn)術(shù)、技術(shù)和程序(TTPs)。HOLMES生成一個(gè)高級(jí)圖實(shí)時(shí)總結(jié)攻擊者的步驟。我們?cè)u(píng)估HOLMES對(duì)9個(gè)真實(shí)的APT威脅,并將其部署為一個(gè)實(shí)時(shí)入侵檢測(cè)工具。實(shí)驗(yàn)結(jié)果表明,HOLMES能以高精度、低誤警率成功地檢測(cè)到APT活動(dòng)。
S&P是安全最好的會(huì)議,能發(fā)S&P的論文都是最優(yōu)秀的論文之一。下面先引用?安全學(xué)術(shù)圈?的總結(jié),推薦大家關(guān)注它們。
-
首先,HOLMES旨在將主機(jī)日志中發(fā)現(xiàn)的活動(dòng)以及企業(yè)中發(fā)現(xiàn)的任何告警直接反應(yīng)到殺傷鏈中。這種設(shè)計(jì)允許HOLMES生成告警,這些告警在語義上接近APT活動(dòng)者的活動(dòng)階段(TTPs)。通過這樣做,HOLMES將告警生成過程提升到攻擊活動(dòng)步驟的級(jí)別,而不是在低級(jí)別審計(jì)日志的形式。在實(shí)驗(yàn)中發(fā)現(xiàn)為期五天的審計(jì)日志集合包含大約3M的低級(jí)別事件,而HOLMES僅從中提取86個(gè)可疑活動(dòng)階段。
-
HOLMES的第二個(gè)重要思想是使用系統(tǒng)內(nèi)低級(jí)別實(shí)體(文件,進(jìn)程等)之間的信息流作為告警關(guān)聯(lián)的基礎(chǔ)。請(qǐng)注意殺傷鏈中的內(nèi)部偵察階段取決于成功的初始入侵和立足點(diǎn)建立。特別地,偵察階段通常使用攻擊者在立足點(diǎn)建立期間安裝的CC代理(進(jìn)程)來啟動(dòng),從而展示兩個(gè)階段中涉及的進(jìn)程之間的信息流。此外,偵察通常涉及在立足點(diǎn)建立階段運(yùn)行下載的惡意軟件(文件),說明文件到進(jìn)程的信息流。同樣,成功的橫向滲透階段以及竊取階段,會(huì)使用偵察階段收集的數(shù)據(jù)。因此通過檢測(cè)與APT階段相關(guān)的低級(jí)別事件并使用信息流將它們關(guān)聯(lián)起來,可以構(gòu)建APT活動(dòng)者使用的殺傷鏈。
-
HOLMES的第三個(gè)主要貢獻(xiàn)是開發(fā)高層次場(chǎng)景圖(HSG)。HSG的節(jié)點(diǎn)對(duì)應(yīng)于TTP,并且其邊表示TTP中涉及實(shí)體之間的信息流。HSG為檢測(cè)APT的高可信度提供了基礎(chǔ)。首先是使用了HSG中祖先實(shí)體覆蓋的概念幫助評(píng)估HSG節(jié)點(diǎn)之間依賴關(guān)系的強(qiáng)度。然后可以修剪弱依賴項(xiàng)以消除許多錯(cuò)誤告警。其次是開發(fā)了降噪技術(shù),進(jìn)一步降低已知與良性活動(dòng)相關(guān)的依賴項(xiàng)。第三是使用優(yōu)先級(jí)排序技術(shù),以刪除與APT活動(dòng)無關(guān)的大多數(shù)節(jié)點(diǎn)和邊。使用這些技術(shù)證明了HOLMES能夠明確區(qū)分攻擊和良性場(chǎng)景。
-
最后,HSG提供了一個(gè)任意時(shí)刻都存在的簡(jiǎn)潔可視摘要,從而為理解攻擊做出了重要貢獻(xiàn)。例如,從10M審計(jì)記錄的數(shù)據(jù)集開始,能夠使用僅16個(gè)節(jié)點(diǎn)的圖表來總結(jié)高級(jí)攻擊活動(dòng)。網(wǎng)絡(luò)分析師可以使用現(xiàn)有的HSG快速推斷出攻擊的總體情況(范圍和幅度)。
個(gè)人感覺這篇文章真的非常棒,融合殺傷鏈、ATT&CK和TTPs的圖結(jié)構(gòu)用于APT攻擊檢測(cè)我也曾想過,但本文模型的完整性、實(shí)驗(yàn)、故事敘述非常值得我們學(xué)習(xí),尤其是很多細(xì)節(jié)部分(如剪枝、降噪、HSG構(gòu)建)。同時(shí),本文應(yīng)用于真實(shí)場(chǎng)景實(shí)踐都非常棒。
?文章來源:http://www.zghlxwxcb.cn/news/detail-665965.html
點(diǎn)擊關(guān)注,第一時(shí)間了解華為云新鮮技術(shù)~文章來源地址http://www.zghlxwxcb.cn/news/detail-665965.html
到了這里,關(guān)于帶你讀論文丨S&P2019 HOLMES Real-time APT Detection的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!