HOLMES: Real-time APT Detection through Correlation of Suspicious Information Flows
S&P-2019
伊利諾伊大學芝加哥分校、密歇根大學迪爾伯恩分校、石溪大學
Milajerdi S M, Gjomemo R, Eshete B, et al. Holmes: real-time apt detection through correlation of suspicious information flows[C]//2019 IEEE Symposium on Security and Privacy (SP). IEEE, 2019: 1137-1152.
0. 摘要
??在本文中,我們介紹了 HOLMES,這是一種實現(xiàn)高級和持續(xù)性威脅 (APT) 檢測新方法的系統(tǒng)。HOLMES 旨在產(chǎn)生一個檢測信號,表明存在一組協(xié)調(diào)的活動,這些活動是 APT 活動的一部分。
- 一套使檢測信號穩(wěn)健可靠的技術(shù)
- 有效地利用了攻擊者活動期間出現(xiàn)的可疑信息流之間的相關(guān)性
- 生成一個高級圖表,實時總結(jié)攻擊者的行為
1. 引言
??典型的 APT 攻擊包括成功滲透(例如,驅(qū)動式下載或魚叉式網(wǎng)絡釣魚攻擊)、偵察、命令和控制 (C&C) 通信(有時使用遠程訪問木馬 (RAT))、特權(quán)升級(通過利用漏洞),通過網(wǎng)絡橫向移動,泄露機密信息等。簡而言之,殺傷鏈為理解和映射 APT 參與者的動機、目標和行動提供了參考。
現(xiàn)有的 IDS/IPS 系統(tǒng)缺乏低級警報的組合能力,不能揭示APT活動的高級場景。
現(xiàn)有的警報關(guān)聯(lián)系統(tǒng)如 Splunk、LogRhythm 和 IBM QRadar等:
- 缺乏對警報和入侵實例之間復雜關(guān)系的理解
- 不具備關(guān)聯(lián)長時間發(fā)生在不同主機上的攻擊步驟所需的精度
問題陳述:
??本文基于來自企業(yè)的主機日志和 IPS 警報,實時檢測正在進行的 APT 活動(包括長時間跨多個主機的許多不同步驟),并向分析師提供攻擊場景的高級解釋。主要有三個方面:
- 警報生成:從主機的低級事件中搞笑地生成低噪聲的警報
- 警報關(guān)聯(lián):將多個警報組合成一個代表APT活動的信號(signal)
- 高級場景:直觀、高層次地總結(jié)攻擊便于分析師快速掌握攻擊信息
方法和貢獻:
??HOLMES 根據(jù)主機審計數(shù)據(jù)(例如,Linux auditd 或 Windows ETW 數(shù)據(jù)),生成一個檢測信號,該信號描繪了正在進行的 APT 活動的各個階段。在較高層面上,HOLMES 新穎地使用 APT 殺傷鏈作為關(guān)鍵參考,解決了 APT 檢測的上述三個方面所涉及的技術(shù)挑戰(zhàn)。
- 首先,HOLMES從日志中生成語義上接近APT步驟(TTPs)的警報,然后映射到殺傷鏈模型。
- 第二,利用低級實體(進程、文件)之間的信息流作為警報關(guān)聯(lián)的基礎(chǔ),因為APT活動的初始妥協(xié)點一般是文件和進程
- 第三,開發(fā)了高級場景圖(HSG),圖的節(jié)點代表TTPs,邊代表實體之間的信息流。通過祖先覆蓋、降噪技術(shù)和優(yōu)先級排名來精簡高級場景圖和減少誤報。
- 最后,HSG 提供了非常緊湊直觀的活動摘要。10M的審計日志中得到一個僅有16個節(jié)點的HSG
評估:
??使用DRAPA-TC作為數(shù)據(jù)集,對九種真實場景進行評估,實現(xiàn)高精度和召回率。
2. 一個實例
??圖中的節(jié)點表示系統(tǒng)實體,例如進程(表示為矩形)、文件(橢圓形)、網(wǎng)絡連接(菱形)、內(nèi)存對象(五邊形)和用戶(星形)。邊對應于系統(tǒng)調(diào)用,并以信息流和/或因果關(guān)系的方向為導向。
我們的溯源圖已使用參考文獻 [23] 中描述的(優(yōu)化的)節(jié)點版本控制技術(shù)呈現(xiàn)為無環(huán)的。
[23] Md Nahid Hossain, Junao Wang, R. Sekar, and Scott Stoller. Dependence preserving data compaction for scalable forensic analysis. In
USENIX Security Symposium. USENIX Association, 2018.
- 初步妥協(xié):攻擊者通過80端口套接字(S1)上載了惡意載荷(playload),利用Nginx使內(nèi)存區(qū)域(M1)變得可執(zhí)行。接下來,攻擊者通過使用反射自加載漏洞獲得對 Nginx 進程的控制
- C&C通信:受損的 Nginx 進程與 C&C 服務器建立連接 (S2) 以接收來自攻擊者的命令
- 提權(quán)。攻擊者利用現(xiàn)有漏洞將 Nginx 的權(quán)限提升至root(U1)
- 內(nèi)部發(fā)現(xiàn):攻擊者發(fā)出 whoami (P5) 和 hostname (P6) 等命令(紅隊使用這些命令來模擬對機密/專有數(shù)據(jù)的訪問)。攻擊者還讀取用戶名和密碼哈希值(F2、F3、F4)并將所有這些信息寫入一個臨時文件
- 外泄:攻擊者將包含收集到的信息的文件傳輸?shù)剿牡臋C器 (S3)
- 清掃:攻擊者刪除臨時文件 (F5) 以清除所有攻擊殘余
這個實例揭示了面臨的挑戰(zhàn):
- 隱形攻擊:攻擊者利用內(nèi)存和合法進程實施攻擊,整個活動與系統(tǒng)行為重合且不會留下可見痕跡如文件。
- 大海撈針:檢測罕見攻擊需要高誤報為代價,從大量虛警中過濾出真正的攻擊具有挑戰(zhàn)性
- 實時檢測:幾秒鐘內(nèi)
盡管攻擊無縫融入良性后臺活動,但其有兩個明顯的攻擊表征:
- 攻擊步驟與部分APT階段對應
- 攻擊活動通過信息流連接
因此,利用信息流串聯(lián)步驟,再與APT行為做對比,使得檢測這種隱蔽攻擊成為可能。
3. 方法概述
??我們的方法背后的核心見解是,盡管具體的攻擊步驟在不同的 APT 之間可能有很大差異,但高級 APT 行為通常符合殺傷鏈。大多數(shù) APT 都包含這些步驟的一個子集,且這些步驟存在信息流或因果關(guān)系。例如,數(shù)據(jù)外泄依賴于內(nèi)部偵察來收集敏感數(shù)據(jù)。
??因此,關(guān)鍵在于檢測工作是否可以基于APT最重要的高級行為步驟和步驟間的依賴性。然而這么做的難題在于:低級審計日志和高級殺傷鏈視圖(攻擊者意圖、目標、能力)之間的語義鴻溝。
彌補語義鴻溝:
??構(gòu)建了一個中間層,如圖 3 所示。到該中間層的映射基于 MITRE 的 ATT&CK 框架,該框架描述了近 200 種定義為在公開環(huán)境(wild)觀察到的戰(zhàn)術(shù)、技術(shù)和程序 (TTP) 的行為模式。每個 TTP 都定義了一種實現(xiàn)特定APT步驟的可能方式。這些較低級別的操作更接近審計日志的抽象級別,因此可以根據(jù)溯源圖中的節(jié)點和邊來描述 TTP。
技術(shù)挑戰(zhàn):
??為了實現(xiàn)上述方法,主要挑戰(zhàn)是:低級事件流與TTP的有效匹配、檢測攻擊步驟之間的相關(guān)性、減少誤報
- 為了進行高效匹配:溯源圖放內(nèi)存中、編碼了實體之間的額信息流依賴關(guān)系
- 為了檢測步驟間相關(guān)性:高級場景圖作為中間件
- 為了減少誤報:學習可能產(chǎn)生誤報的良性模式、為節(jié)點和路徑分配權(quán)重用以對進行HSG排名
4. 系統(tǒng)設(shè)計
??對操作系統(tǒng)內(nèi)核、審計系統(tǒng)及其產(chǎn)生的日志的攻擊不在我們的威脅模型的范圍內(nèi)。假設(shè)系統(tǒng)一開始是良性的,即最初的攻擊必須來自企業(yè)外部,使用遠程網(wǎng)絡訪問、可移動存儲等方式。
A. 數(shù)據(jù)收集和表示
??對于Linux,數(shù)據(jù)來源是auditd;對于BSD,數(shù)據(jù)來源是dtrace;對于Windows,數(shù)據(jù)來源是ETW。這些原始審計數(shù)據(jù)被收集并處理成與操作系統(tǒng)無關(guān)的格式,用作 HOLMES 的輸入。
??數(shù)據(jù)表示為溯源圖,但是經(jīng)過版本化處理。如果該邊更改了節(jié)點的現(xiàn)有依賴項(即祖先節(jié)點集),則在添加傳入邊之前創(chuàng)建節(jié)點的新版本。這樣可以在不更改分析結(jié)果的情況下刪除審計日志中的大部分事件,而且,這個版本圖是無環(huán)的,可以簡化很多圖算法。
大概是指:如果出現(xiàn)環(huán)(即一個進程的子孫反過來影響了自己,那自己既是自己的祖先又是自己的子孫),此時就為這個節(jié)點創(chuàng)建一個新的版本,既方便刪除子樹不影響別的部分,無環(huán)又可以簡化圖搜索。
此外,溯源圖存于內(nèi)存,根據(jù)之前的工作進行了優(yōu)化存儲,每個事件僅需要不到五個字節(jié)。
B. TTP規(guī)范
??TTP 規(guī)范提供了低級審計事件和高級 APT 步驟之間的映射。依靠兩種主要技術(shù)將審計日志數(shù)據(jù)提升到這個中間層:(a) 以溯源圖的形式對安全相關(guān)事件進行操作系統(tǒng)無關(guān)的表示,以及 (b) 在涉及的實體之間使用信息流依賴關(guān)聯(lián)TTP。 使用信息流依賴性對于檢測通過使用良性系統(tǒng)進程來實現(xiàn)其目標來隱藏其活動的隱秘 APT 至關(guān)重要。
??除了指定 TTP 的步驟之外,我們還需要捕獲其先決條件(prerequisites)。先決條件采用因果關(guān)系和 APT 階段之間的信息流的形式,不僅有助于減少誤報,還有助于理解 TTP 在更大范圍的 APT 活動中的作用。
??TTP 規(guī)則規(guī)范的示例如表 4 所示,
- 第一列表示 APT 階段
- 第二列表示關(guān)聯(lián)的 TTP 名稱和 TTP 中涉及的實體
- 第三列指定與 TTP 關(guān)聯(lián)的事件系列
- 第四列中顯示了該系列中包含的一些特定事件(不是規(guī)則的一部分,只定義一次,在規(guī)則中重復使用)
- 第五列表示與每個 TTP 關(guān)聯(lián)的嚴重性級別,用于警報排名。根據(jù)常見攻擊枚舉分類而得到,支持定制。還支持權(quán)重定制機制。
- 最后一列指定了 TTP 規(guī)則匹配的先決條件。先決條件可以捕獲兩個 TTP 中涉及的實體之間的關(guān)系,例如進程上的父子關(guān)系,或文件之間的信息流。使用先決條件,我們能夠修剪許多誤報,即類似于 TTP 的良性活動。
??先決條件可以指定匹配TTP的參數(shù),例如第一行 U n t r u s t e d R e a d T T P Untrusted Read TTP UntrustedReadTTP 的套接字參數(shù)S。先決條件還可以包含先前匹配的 TTP 及其參數(shù)的條件。例如, M a k e M e m E x e c ( P , M ) T T P Make Mem Exec(P,M) TTP MakeMemExec(P,M)TTP 的先決條件列包含一個條件 ? U n t r u s t e d R e a d ( ? , P ′ ) ? Untrusted Read(?, P' ) ?UntrustedRead(?,P′)。僅當不可信讀取 TTP 已與進程 P ′ P' P′ 早先匹配,并且兩個 TTP 中涉及的進程的 p a t h _ f a c t o r path\_factor path_factor 小于指定閾值時,才滿足此先決條件。
C. HSG構(gòu)造
??圖 5 說明了運行示例的 HSG,其中橢圓表示匹配的TTP,橢圓內(nèi)的是溯源圖實體,圖的邊代表不同TTP之間的先決條件。HSG 的構(gòu)造主要由先決條件驅(qū)動:如果滿足所有先決條件,則匹配 TTP 并將其添加到 HSG。這使得HSG總能保持一個較少數(shù)量的TTP,進一步使實時進行復雜分析成為可能。
D. 偽依賴避免
??偽依賴指的是對攻擊者活動的無趣和/或不相關(guān)的依賴。例如,在圖 2 中,進程 nginx (P2) 寫入文件 /usr/log/nginx-error.log,隨后 cat 進程讀取該文件。然而,即使 cat 和日志文件之間存在依賴關(guān)系,但 cat 與攻擊無關(guān),而是通過 ssh 獨立調(diào)用的。更一般地說,考慮與攻擊活動帶來的進程有關(guān)系的良性行為。例如,一個日志輪換系統(tǒng),它復制一個日志文件,其中包含攻擊者進程產(chǎn)生的部分條目。此類進程雖然代表良性后臺活動,但會在來源圖中被標記為依賴于攻擊者的進程。如果不及時刪除這些虛假的依賴關(guān)系,可能會出現(xiàn)依賴爆炸,從而極大地增加 HSG 的規(guī)模。
??考慮兩個實體和它們之間的路徑,在溯源圖中指示它們之間的信息。確定此流代表強信息流還是弱信息流等同于確定流中的實體是否共享受損的祖先。如果它們共享受感染的祖先,則它們是攻擊者活動的一部分,并且它們之間存在很強的依賴性,必須對其進行優(yōu)先級排序。否則,我們認為依賴性很弱,并在我們的分析中不再強調(diào)它。
??為了將這個方法推廣到多個進程的情況,我們引入以下信息流路徑
f
f
f 上所有進程的祖先覆蓋
A
C
(
f
)
AC(f)
AC(f) 的概念:
?
p
∈
f
?
a
∈
A
C
(
f
)
??
a
=
p
??
or?
a
?is?an?ancestor?of?
p
\forall p\in f\exists a\in AC(f)\;a=p\;\text{or }a\text{ is an ancestor of }p
?p∈f?a∈AC(f)a=por?a?is?an?ancestor?of?p
A
C
m
i
n
(
f
)
AC_{min}(f)
ACmin?(f) 表示攻擊者完全控制信息流路徑
f
f
f 必須妥協(xié)的最少祖先數(shù)量。例如,再次考慮從攻擊者控制的 nginx 進程到 cat 進程的流程。由于這兩個進程沒有共同的祖先,它們之間路徑的最小祖先覆蓋大小等于 2。
定義路徑因子
p
a
t
h
f
a
c
t
o
r
(
N
1
,
N
2
)
path f actor(N1, N2)
pathfactor(N1,N2),描述了攻擊者對N1到N2流的控制程度,為所以路徑的最小祖先覆蓋的最小值。
E. 減少噪聲
良性事件會與TTP匹配引起噪聲,利用兩個概念來消除。
良性先決條件:對于每個進程,學習系統(tǒng)在良性環(huán)境中運行時頻繁觸發(fā)的先決條件。在運行時,當觸發(fā)的 TTP 的先決條件與訓練期間遇到的先決條件匹配時,忽略該匹配
良性數(shù)據(jù)流量:為了解決白名單會漏報的問題,同時監(jiān)控傳輸?shù)臄?shù)據(jù)量,如果超過閾值,視為攻擊行為。文章來源:http://www.zghlxwxcb.cn/news/detail-671526.html
F. 信號關(guān)聯(lián)與檢測
定義威脅元組為一個七元組,分別對應七個比價重要的階段,每個階段具有不同的TTP選項,每個選項對應不同的嚴重等級。用HSG去匹配這個七元組,部分階段可以缺省。
為了對HSG進行排名,首先利用通用漏洞評分系統(tǒng)(CVSS)將元組轉(zhuǎn)換為數(shù)值
然后算一個總體評分
∏
i
=
1
n
(
S
i
)
w
i
≥
τ
\displaystyle\prod_{i=1}^n(S_i)^{w_i}\geq\tau
i=1∏n?(Si?)wi?≥τ缺省的階段權(quán)重設(shè)為1文章來源地址http://www.zghlxwxcb.cn/news/detail-671526.html
到了這里,關(guān)于【論文閱讀】HOLMES:通過關(guān)聯(lián)可疑信息流進行實時 APT 檢測(S&P-2019)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!