作者:PIanet
招高級安全分析 反APT研究 威脅情報 hongyu1@#
原文鏈接:https://projectsharp.org/2020/02/23/APT%20%E5%88%86%E6%9E%90%E5%8F%8A%20TTPs%20%E6%8F%90%E5%8F%96/?from=groupmessage&isappinstalled=0
Abstract
本文對 APT 分析及 TTPs 提取進行討論,總結出一套適用于安全分析、安全研究及企業應急響應人員的分析方法。
文章由六部分組成,引用了殺傷鏈模型,鉆石分析模型,ATT&CK 等內容,介紹了攻擊事件、APT 攻擊的一些概念,簡單概括了 “通過攻擊者能力切入” 和 “通過基礎設施切入” 的兩種 APT 事件分析的方法。著重探討了 TTP 的提取、使用、應用、落地及歸因判斷。提出了 “特征矩陣” 和 “事件鏈圖”,設計了描述模型,同時進行了簡單的可行性論證。
內容適用于具有一定經驗的安全分析師,病毒分析師,威脅情報分析師等安全人員。
0x00 攻擊事件
什么是攻擊事件?
個人理解,攻擊事件是在未授權情況下,對計算機系統或計算機資源進行訪問、使用、更改、破壞的活動。根據事件烈度和影響范圍,可以分為以下幾類:
- 常規攻擊
- Botnet
- 惡意軟件
- APT
0x00-01 攻擊事件甄別
對攻擊事件,可以從烈度、影響、指向以及特點等維度進行甄別。
- 常規攻擊
常規攻擊一般事件復雜度低,雜音少,線性且可直接推測出攻擊目的。其中包括非定向釣魚,端口,服務掃描,SQL 注入,拒絕服務攻擊,會話劫持和中間人攻擊,憑證重放等。此類型事件,影響少,危害可控且可在短時間內進行排查修復。
- Botnet
僵尸網絡的特點就是大規模攻擊,數據說話,涉及到RAT。比如 Necurs、Gafgyt、Mirai 僵尸網絡上的垃圾郵件、DDoS 等。
- 惡意軟件
惡意軟件指一些勒索、挖礦以及病毒木馬。涉及錢包、礦池;目的不同,會包含 RAT;不同的入口,也會出現標志性的工具和利用。比如 WannaCry、Bad Rabbit、大量 MikroTik 路由器被感染進行惡意挖礦等。
- APT
APT 攻擊時間復雜度高,多個行為,多個指紋身份;有 loader、有Downloader、有 RAT、有 Malware。在所有攻擊事件中是最難分析的一類。知名的 APT 組織:海蓮花、摩訶草、APT28、Lazarus Group 等。APT 的目標通常是監視網絡活動并竊取數據,而不是破壞網絡或系統。
0x00-02 攻擊事件的核心元素

借用鉆石模型中的概念,每一起攻擊事件(Event)都包含四個核心元素:攻擊者(Adversary)、受害者(Victim)、能力(Capability)和基礎設施(Infrastructure)。
-
攻擊者:攻擊事件的直接執行者 在一些大型的攻擊事件中,攻擊組織有完善的人員體系結構,這里所說的攻擊者,是事件的直接操作者。
-
受害者:攻擊者的目標 不同類型的的攻擊事件中受害者表現也不同,可能是一臺主機、一個企業或者一個機構。
-
能力:使用的工具或者技術
能力是事件中攻擊者所使用技術或者工具。從探查到最終目的達到,“技術”存在攻擊過程的每一個階段。
- 基礎設施:攻擊者維持權限控制的通道或者載體。 基礎設施可以理解為攻擊的 C2 通道,可以分為三類:① 攻擊者購買擁有 ② 攻擊者攻陷的 ③ 使用的第三方平臺或者服務。
每一起攻擊事件,都有一個攻擊者通過基礎設施上的能力對受害者產生影響,進而達成某種目的。所有攻擊事件都是圍繞這四者進行展開的。
在這四核心元素之上,又可以衍生出 “技術”,“社會” 維度,指導安全分析。在此不再展開,之后會單獨做一個專題,使用鉆石模型進行事件分析。
0x01 APT
APT (Advanced Persistent Threat),翻譯為高級持續威脅。這類攻擊報告,最早可以追溯到 2005 年 6 月,英國國家基礎設施安全協調中心 (UK-NISCC) 和美國計算機應急響應小組 (US-CERT) 發布了技術警報公告,其中描述了有針對性的社交工程電子郵件,這些電子郵件包含特洛伊木馬進行竊密。(LM White Paper Intel DrivenDefense)
這個概念炒了好幾年,不同身份角色,站在不同角度都有自己的理解,就不過多解讀。文章以下內容,限定在國家及組織對抗的 APT 攻擊場景。
0x01-00 APT 攻擊的特點
國家及組織對抗的 APT 有以下幾個特點:
-
攻擊目的性強,為了達到目的不擇手段。
-
雄厚的支持
分析中發現有大量漏洞利用和定制化工具使用,這反應出 APT 攻擊需要耗費巨大的人力、物力。攻擊者往往有政府或財團支持。
- 目標價值高
與投入相匹配,APT 攻擊的目標價值往往也十分高,其攻擊領域有:政府部門、軍事部門、基礎設施、金融機構、教育科研機構和大型企業等。
- 時間復雜度高
APT 攻擊的另一個特點就是,時間復雜度高,持續時間長。即使有報告對 APT 組織進行披露,導致之前的攻擊手段失效,但只要目標的價值還在,那么攻擊還會發生。
0x01-01 APT 入侵的方式
APT 攻擊入侵的方式主要有:魚叉式釣魚、IM、水坑攻擊、釣魚網站、1/N day 漏洞、0 day 漏洞和物理接觸。入侵包括載荷投遞和突破防御兩個階段,各種入侵方式的成本如下圖:

入侵方式金字塔,從下到上,入侵成本和危害程度逐層遞增。
處于金字塔最底層的是魚叉式釣魚郵件和即時通訊軟件,它是最常見、入侵成本最低的攻擊方式。攻擊者常常以魚叉郵件做為攻擊入口,精心構造郵件標題、正文和附件。用來投遞惡意網址、偽裝文件或者含有漏洞利用的文檔。IM 與魚叉郵件釣魚類似。水坑攻擊和釣魚網站也是常見 APT 攻擊入侵方法。侵入網站,加入惡意 JS 偽裝更新;或者通過推特、fb、論壇上面通過發布、評論、轉發等方式進行社交平臺的水坑攻擊。還可以制作釣魚網站,通過郵件、IM、水坑等方式投遞給受害者,竊取賬號密碼、收集主機信息或者誘惑下載惡意軟件。這兩種入侵方式的成本也不高。
防御邊界的滲透攻擊,針對的是受害系統、業務的防御邊界,進行常規的滲透攻擊,例如常見的 SQL 注入,文件上傳,跨站腳本攻擊、跨站請求偽造等。此類入侵方式較常規網絡攻擊并無不同,入侵的目的是突破防御邊界,找到穩定且隱蔽的入口,滲透攻擊在 APT 攻擊中也是比較常見的。
再往上,就是漏洞利用。漏洞利用的目的有兩點:未授權安裝、運行代碼和規避殺軟檢測。其中 0 day 漏洞危害和成本要遠大于 1/N day 漏洞。各種 APT 攻擊中,出現過許多操作系統漏洞、路由器或交換機網絡設備漏洞,以及 office,Flash,PDF 等應用漏洞。此種攻擊往往搭配其他手法,組合進行入侵。例如容器漏洞在滲透攻擊中的利用,以及 Office 漏洞在釣魚中的利用。
漏洞入侵之上是供應鏈攻擊,典型的例子如 XSHELL 、CCleaner、華碩軟件更新劫持等攻擊事件。在突破上游供應商后,在極短的時間內進行資產摸排、更改、下發、劫持。又同時可以順利篩選、控制下游目標。整套流程下來,及其考驗攻擊組織的技術能力,協調能力,后勤能力及儲備和信息收集能力。
最頂層是物理接觸,典型的攻擊事件:“震網”。這種比較少見,不多說。
APT 攻擊是否成功,取決于攻擊者的目的和所具有的入侵能力,與目標防御強弱無關。防御強弱和目標的價值決定了入侵的方式。漏洞利用,特別是 0 day 漏洞都是針對高價值,特定目標,考慮到入侵成本,APT 攻擊更傾向于其他的入侵方式。
0x02 APT 事件分析
在事件分析的初期,我們拿到的線索是破碎零散的,這些線索只是攻擊者為了達成目的采取的手段,我們做安全分析,其實是對攻擊手段上下文的描述。
事件有四個核心元素,攻擊者、受害者、基礎設施和能力。我們分析 APT,可以從受害者、基礎設施和能力三個角度進行切入。具體方法分為兩種。
0x02-00 APT 兩種分析方法
通過攻擊者“能力”切入分析:
基于能力的分析方法,對應的是樣本分析。樣本分析要關注樣本的行為及上下文關系。
樣本行為包括樣本的惡意行為、駐留、子進程創建,釋放文件、網絡請求等。其中要注意樣本中攜帶的信息和加解密、攻擊技術、對抗技術方面的特征。這些攜帶的信息和特征有助于關聯匹配到其他樣本。
入侵過程中往往有 fake (Downloader),有 Dropper,有 backdoor;各個階段還會包含偽裝、漏洞利用。初期拿到的樣本通常只是其中一個。樣本分析是事件分析的基礎,只有弄清樣本的上下文關系,才能理順攻擊手段。
樣本分析同學以惡意軟件為起點,針對技術(加解密、攻擊技術、對抗技術),C2 結構和惡意軟件上下文進行分析。根據惡意軟件的特征匹配其他樣本,擴大分析面。期望分析得到的結果:
- 受害者的信息
- 基礎設施列表
- 使用的技術
- 樣本的一些特征
- 匹配到其他樣本
各大廠商的 APT 報告都是以攻擊者能力切入,所以看到大量篇幅都是惡意軟件技術報告。
通過攻擊者“基礎設施”切入分析
基于基礎設施的分析方法是 C2 關聯分析。是描述事件上下文最有效的方法。
樣本中多少會暴露一些基礎設施信息;或是 IP,或是域名。通過 WHOIS 信息來發現統一注冊者的不同域名。進一步研究可以得到針對不同攻擊者的惡意軟件信息(相似/相同的基礎設施)。期望分析得到的結果:
- 與該基礎設施有聯系的受害者
- 該基礎設施下發\上傳、命令控制等行為
- 關聯到其他基礎設施
分析過程中要注意一點,樣本分析和關聯分析并不是獨立進行的。
對惡意軟件進行分析,得到其中的 C2 基礎設施。通過對 C2 的關聯分析,找到了同一基礎設施下發的其他樣本。之后再對樣本進行分析……由此形成了一個循環。最后的效果,差不多是這樣的:

舉一個簡單的例子:我們拿到初始樣本 A,進行惡意軟件分析,得到其中的 C2:域名 A 和域名 B,對 C2 基礎設施關聯分析,發現具有相同基礎設施的樣本 B。通過對樣本 B 逆向分析,得到新的 C2 域名 C。這僅僅是一個循環,分支上就已經可以關聯到許多信息。這個循環越多,找到的線索越多,最后事件分析的完整度就越高。
0x02-01 IoC 層級
IoC (Indicators of Compromise) 在取證領域被定義為計算機安全性被破壞的證據。在 APT 領域作用就是描述攻擊者得惡意活動。分析人員對 IoC 進行識別和關聯,來尋找惡意活動背后得事件和潛在得威脅。APT 分析工作都是圍繞 IoC 進行的。
分析過程中遇到的 IoC 有以下幾種:
- hash
- IP
- 域名
- 網絡
- 主機特征
- 工具
- TTPs
這些 IoC 的地位并不是相同的,其中一些指標遠比其他指標更有價值。David Bianco提出了 Pyramid of Pain,描述了 IoC 之間的層級關系。

- hash:
指樣本文件的哈希值。通常用于提供對特定惡意軟件樣本或涉及入侵的文件的唯一標識。hash 值是分析人員最容易拿到的 IoC,但是哈希值很容易改變,文件中更改一個字節,都會影響文件哈希。很多情況下不值得跟蹤。
-
IP: 絕大多數惡意軟件都有網絡行為,其中一定會涉及 IP,但是如果攻擊者使用匿名代理或者 Tor,IP 十分容易改變。
-
域名: 域名和 IP 類似,但是域名需要注冊,要付出一定的費用。因為 DNS 解析需要時間,即使使用 DNS 服務商提供的免費域名服務,但是還會有時間成本。所以,域名稍比 IP 穩定一點。
-
網絡特征: 指 C2 上,比較有區分度得特征。比如,惡意軟件請求 C2 上指定路徑的資源文件,如:
GET xxx[.]com/AWDA/a.exe、GET xxx[.]com/AWDA/get.php?fun=xx&ad=xx,或者向指定位置上傳文件:POSTxxx[.]com/AWDA/img.php等,AWDA/a.exe、AWDA/get.php?fun=xx&ad=xx、AWDA/img.php這些就是網絡特征。攻擊者可能會架設多個 C2,多渠道撒布大量惡意軟件。只要 C2 指令結構不變,網絡特征很難改變。 -
主機特征: 指惡意樣本中,攜帶的攻擊者主機的一些特征。這些特征不容易發現。但是對匹配其他樣本、定位攻擊者意義重大。后面有章節詳細介紹。
-
工具: APT 攻擊中,為了達到某種目的,攻擊者往往會使用、研發、定制一些工具。比如 APT 28 使用的 DealersChoice、Xagent。攻擊者定制、自研一些工具,肯定要花費一定的成本。如果對攻擊套件進行準確識別,攻擊者只能放棄目前所使用的工具,這樣無疑加大了下次攻擊的成本。
-
TTP: Tactics, Techniques, and Procedures (戰術、技術、過程)。是對攻擊者攻擊行為,戰略戰術層次的描述。I /域名可以更改,網絡主機特征也容易消除、工具可以重新開發。但是攻擊的戰略戰術往往很難改變,如果能識別出 TTP 特征,攻擊者要么放棄攻擊,要么指定新的戰術。這對 actor 將是致命的打擊。在 IoC 的層次結構中,由下到上獲取難度依次增高,同時改變的難度和價值也是增長的。處于最頂端的是 TTP,這是最有價值和最難獲取的 IoC。下面聊一聊 TTPs 提取。
0x03 TTPs 提取
TTP 是什么?
TTP: Tactics, Techniques, and Procedures (戰術、技術、過程)
- 戰術:攻擊者從信息收集開始到目的達成的攻擊策略。攻擊的目標、攻擊目的、前期信息收集方式、對目標攻擊的入口點、載荷投遞方式等等都可以劃分在戰術指標里面。
- 技術:為了達成攻擊目的,Actor 通常在具體事件中使用各種技術。這些技術旨在突破防御,維護 C2,橫向移動,獲得信息、數據等。
- 過程:要進行成功的攻擊,僅僅擁有良好的戰術和技術是不夠的。還需要一組精心策劃的戰術動作來執行才可以。
0x03-00 TTP 提取的難點
戰術、技術、過程三個詞過于抽象,目前沒有很好的方案對 TTP 進行實體描述。
再者就是,相關的資料過于匱乏。國外技術封鎖、而國內做 APT 研究的能力性安全廠商寥寥無幾。 曾從事過一段時間 APT 分析,結合鉆石分析模型、Kill chain,摸索出一種描述 TTP 的方法:特征矩陣和事件鏈圖。
不管是 IoC、IoA、SITX 還是 ATT&CK ,目前市面上都沒有成熟的方案對 TTP 進行描述,特別是 ATT&CK ,因為過度炒作,目前已經有點妖魔化。本篇不對 ATT&CK 過多探討,可以參考閱讀《安全分析中的威脅情報(二):ATT&CK》和 《關于ATT&CK/APT/歸因的討論》以示正聽。ATT&CK 對 TTP 提取的幫助,后文會進行討論。
0x03-01 特征矩陣
特征矩陣是對特征的事件分析過程中,攻擊者能力,基礎設施,戰略等方面的特征總述。
整體分為三個部分,基礎設施特征、技術特征、戰略特征。
- 基礎設施特征中包含 C2 列表、網絡特征和樣本中攜帶的主機特征。
- 技術特征包含加解密技術、攻擊技術和對抗技術。
- 戰略特征包含目標群體、攻擊入口和載荷投遞。
大體的框架如圖所示,一些指標要根據實際情況進行調整:

- 戰略/戰術: 包含目標群體、攻擊入口和載荷投遞方式和釋放流程。攻擊入口、載荷投遞方式和釋放流程可以在樣本分析中進行總結。
事件四個核心元素,攻擊者、受害者、能力、基礎設施。上面所講了通過能力和基礎設施切入進行事件分析。此外,還可以通過受害者進行切入分析,得到攻擊者的一些戰略信息。例如,攻擊者為了提高成功率,會貼合受害者定制一些攻擊郵件或者文件,通過其中精心構造的郵件名、正文、附件內容,可以反推受害者群體,以此揣摩攻擊者的戰略目的。
-
基礎設施: 基礎設施分為 C2、網絡特征、主機特征。因為會有基礎設施重用的情況,C2 列表一定要有;再者就是 URL 上面的網絡特征以及樣本中攜帶的主機特征。主機特征有很多,例如樣本生成的開發/打包工具語言、配置,PDB 調試文件路徑、源碼路徑可以看出攻擊者的一些習慣;樣本、簽名證書的生成時間推斷攻擊者所在地區、如果數據量大的話,還能根據節假日、休息日推斷所在國家。如果有文檔類樣本,還會有文檔所有者、修改者這些攻擊者個人信息。
-
技術: 技術特征分為加解密、攻擊技術、對抗技術、C2 技術。技術特征太多了,加密算法、使用的工具、持續部署的方案、漏洞利用、C2 通信方式、反殺軟、行為隱藏……工具使用,代碼重用這些情況都可能導致技術上的重疊。
以上的特征分析方法對應:
- 戰略戰術 -> 受害者分析
- 基礎設施 -> 樣本分析 + 關聯分析
- 技術特征 -> 樣本分析
TTP 是 Tactics, Techniques, and Procedures。得到的特征矩陣,更多的是在能力和基礎設施方面上的特征,Procedures 上面的體現很弱。為了彌補這一點,推出事件鏈圖來表示攻擊事件的上下文,體現戰術特征。
0x03-02 事件鏈圖
在說事件鏈圖時,先補充幾個概念。
KILL CHAIN
入侵的本質:攻擊者開發有效的載荷突破防御,在可信賴的環境中實現駐留,以便接下來的行動。這種行動可能是橫向移動、竊密、破壞完整性或可用性等。
洛克希德馬丁公司,在 2011 年發布的一篇論文《Intelligence-Driven Computer Network Defense Informed byAnalysis of Adversary Campaigns and Intrusion Kill Chains 》中描述了一種名為 Kill Chain 的入侵分析模型。通過對入侵的理解,殺傷鏈將攻擊定義為7個階段:
- Reconnaissance (偵察)
- Weaponization (武器構建)
- Delivery (載荷投遞)
- Exploitation (漏洞利用)
- Installation (駐留)
- C2 (命令控制)
- Actions on Objectives (采取行動)
前面的六個階段都是為最后采取行動做鋪墊。當入侵成功實現駐留之后,惡意軟件將會通過 C2 命令執行一些橫向移動、竊密、破壞、勒索等一些惡意行為。介紹 Kill Chain 的文章已經很多,不再贅述。
攻擊總是線性的
攻擊者不可能隔空,也不可能不借助外有資源和能力達成攻擊目的。
舉一個簡單的例子:
攻擊者投遞含有 cve-2017-11882 的釣魚郵件,受害者打開了釣魚文件,漏洞利用成功,文檔從遠程拉取執行了后門。
將描述的實體抽離出來,就是這個樣子:
outlook ->
Explorer ->
office ->
EQNEDT32 ->
[NET] ->
Explorer ->
Payload
簡單梳理一下, 此描述的攻擊動作,其中將使用到的行為主體有 outlook,資源管理器,office,公式編輯器,網絡和最終的 payload。每一個步驟都是首尾相連,且沒有中斷的。
攻擊在觀測空間內的動作一定是呈線性關系的。操作的對象、攻擊的動作一定是有明確的目的和明顯的前后關系。
APT 分析單位
在此規定一下,事件為 APT 分析的最小單位,而不是樣本。
樣本分析 ∈ 事件分析
事件分析 ∈ 攻擊戰術分析
一次完整的分析要包含完整獨立攻擊上下文。當然,事件之間是關聯的。比如,攻擊者發送釣魚郵件,其中包含釣魚網站鏈接,受害者接收釣魚郵件并且點開釣魚鏈接下載并運行了惡意軟件。這是三個獨立事件:郵件釣魚、釣魚網站、惡意軟件執行。
因為在殺傷鏈模型中,郵件釣魚、釣魚網站、惡意軟件有各不相同入侵過程。雖然整個攻擊是連貫的,還是要將各個步驟拆解出來,單獨進行事件分析。
為了表述事件鏈圖。指定以下場景:
APT 組織對某機構進行攻擊:
攻擊者通過 google hacking 搜尋到所屬該單位的某雇員,通過社交平臺找到其 163 郵箱。
對該員工發送釣魚郵件,其中包含 163 郵箱釣魚網站。
雇員查看釣魚網站,泄漏了自己 163 郵箱密碼。
攻擊者登陸郵箱,查看往來信件,鎖定高價值目標。
向高價值目標發送釣魚郵件,其中包含有漏洞利用的文檔。
文檔被打開,主機被感染,竊取到機密文件。
以上整個攻擊,用事件鏈圖描繪出來:

入侵的上下文用實線連接,事件之間的上下文用虛線連接。就構成了基于殺傷鏈的事件鏈圖。
但是 APT 攻擊手法是多樣的,設立的場景中,釣魚郵件進行惡意文檔投遞,水坑攻擊不行么?最終后門是通過利用文檔漏洞進行惡意代碼執行,使用瀏覽器漏洞是不是更高效?所以我們將鏈圖再進一步抽象,就得到最后成品:
攻擊的入口和方法很多,但是攻擊事件的上下文基本上是類似的。

因為場景十分簡單,實際的 APT 攻擊,制作出來的鏈圖要比這一個豐富的多。
0x04 TTPs 的使用及歸因判斷
首先是特征矩陣,特征矩陣著重對 APT 活動技術上面進行描述。

兩個活動 A 和 B,將特征矩陣由 A 到 B 進行映射,相同顏色部分標識相同特征。區域的顏色標識特征的置信度。當置信度達到一定閾值后。我們就可以將兩個活動關聯起來,認為是同一攻擊組織所為。 之前 IoC 層級中提到,不同的 IoC 他的更改難易程度不同,所以各種 IoC 的價值也不同。在這里也是適用的。
在特征矩陣映中,映射到的部分權重也而不相同。參照 Pyramid of Pain,制作一個 Pyramid of Features:

自下而上,一共七層。最底層是樣本中硬編碼的字符串和樣本中攜帶的主機特征、這些是最容易改變且經常用來迷惑分析人員的指標。往上是 C2 上面的特征,這些也很容易改變,但是同批樣本,同一活動的 C2 結構基本相同。在往上是樣本中的一些攻擊技術和對抗技術。處于頂層的時加密方式、密鑰、使用的攻擊,漏洞利用技術、C2 和獨特的算法。
加密方式和密鑰以上在關聯分析中的置信度已經很高了,特別是非對稱加密的密鑰,但是生存時間短,經常用過幾次后就被棄用。再一個是使用的工具和漏洞利用技術,在 Pyramid of Pain 也提到了,工具的開發需要大量的人力金錢成本,這些特征不容易改變。
APT 組織,有基礎設施重用的情況,如果看到相同的 C2,基本就確定活動關聯,但是要注意 C2 生命的連續性,如果域名 1 月份注冊到期,過了保護期,6 月份時再次活躍,是不是同一攻擊者還需思量。獨特的算法包括加密算法、有特點的攻擊技術、對抗技術。
金字塔上的特征有下到上,特征的改變難度越高、價值越高,使得在分析時,權重和置信度也越高。
如果特征上,置信度疊加不高,就可以在事件鏈圖中進行匹配:

A 是所掌握的某組織的事件鏈圖,B 是獨立攻擊的事件鏈圖。
紅色部分為匹配到的相同特征,如果特征置信度達不到一定閾值。可以觀察 A 攻擊的上下文,與所掌握 B 的信息是否相符。如果上下文重合度高。可以增加 B∈A 的可能性。
TTP 是有生命周期的。APT 攻擊在對抗中升級,技術、戰術特征會在一段時間后變的面目全非。
歸因判斷不僅僅可以通過特征矩陣進行特征匹配,還可以通過事件鏈圖攻擊上下文進行佐證。
0x05 TTPs 落地的思考
一個東西提出后,首先要思考的是它產生的背景,自身的價值,適用的范圍,解決的問題,存在的不足以及可行的落地場景和具體方案。
TTP 的意義在于可以對一起攻擊事件、一個攻擊組織高度的總結。可以幫助我們對攻擊進行及時的感知和阻斷。此外,TTP 另一個用處就是歸因判斷。
0x05-01 實體抽取
不管用作防御的感知和阻斷,還是在研究領域的歸因判斷。落地前需要解決的第一個問題就是人類語言向機器語言的轉變,也就是行為實體抽取和可機讀。
前文提出了一個觀點:攻擊是線性的,且不可能隔空進行操作。將操作對象視為原點,操作視為方向,其構成的向量即代表本次的攻擊動作,向量的頂點即表示下一個操作對象。這些一個個的攻擊動作首尾相連構成攻擊行為,最終指向的便是攻擊目的。

進行 TTP 提取的前提是,梳理出完整的攻擊流程和操作對象。而圖中所示的操作對象,便是需要抽取的實體。“操作對象” 具有以下特點:
- 攻擊過程中的支撐點
- 攻擊過程中更改、操作及運行的對象。
- 操作的載體
- 攻擊中所需要的資源(運算、網絡)
還是那個例子:
攻擊者投遞含有 cve-2017-11882 的釣魚郵件,受害者打開了釣魚文件,漏洞利用成功,文檔從遠程拉取執行了后門。
outlook,資源管理器,office,公式編輯器,網絡和最終的 payload 這些都都是操作對象。他們直接或間接的受控于攻擊者。
0x05-02 關系描述
“事件鏈圖” 是描述 TTP 的重要方法,它著重強調了攻擊的上下文關系,以及操作對象之間的關聯關系。在事件鏈圖描述中,每一個方塊實際就是操作對象。除此之外另外一個維度就是關聯關系,也就是 “操作”,對應事件鏈圖中連接方塊的邊。
操作可以理解為攻擊動作。人類知識轉變為機器語言是困難的,將攻擊動作進行可機讀的表述需要借助一個東西:ATT&CK。
ATT&CK 對 TTP 提取的幫助
ATT&CK 的價值在于統一了行為標記和描述的標準。它對攻擊性操作進行細分和分類,有了這種完善的參照,極大減少了 “行為抽象” 的成本。
進行 TTP 描述,需要對攻擊的動作進行一種標準化描述。我們所要描述的 “關系”,其實是表達 “攻擊者借助何種基礎設施,采用何種方法對受害者產生影響的過程”,這是一種帶有明顯方向性的特征。就像標量不能描述矢量一樣,狹義的 IOC 是不能描述 TTP 和攻擊上下文的。
MITRE 提出了 STIX (Structured Threat Information eXpression), CrowdStrike 提出了 IOA (Indicator of Attack),他們都意識到 IOC 是不足以描述豐富多變的網絡安全環境,也不能描述復雜的上下文關系。STIX 通過 Observables (可觀察對象)、Indicators (上下文關聯)、Incidents (上下文實例)、TTP、Exploit Target (弱點)、Campaign (意圖)、ThreatActors (惡意行為特征)、Courses Of Action (反應措施) 描述攻擊;而 IOA 主要表達攻擊者必須采取的什么行動才能達成目的。
不管是何種方式,IOA、SITX 都是在嘗試去描述攻擊過程這一 ”矢量“,而 ATT&CK 的出現就像膠水一樣,很好的將 ”部件“進行粘合。豐富且適用的字典可以幫助描述操作對象的上下文關系,進而幫助對 TTP 進行抽象描述。
ATT&CK 讓攻擊描述可以聚焦于更加抽象的過程總結,而不必糾結這個攻擊的實際步驟。并且采用統一的描述方法,實現了可機讀,以及可以更好的進行信息交換,降低數據轉入轉出成本,提高信息適用性和可拓展性。
使用 ATT&CK 進行關系映射
使用 ATT&CK 關系映射分為兩種:人工映射以及自動化匹配。
人工映射無非就是打標簽,分析人員在分析過程中,通過自身知識的總結攻擊活動,人工到 ATT&CK 矩陣中去匹配。自動化映射是指,機器去理解攻擊的上下文關系,通過一些算法,將攻擊過程去 ATT&CK 矩陣中去匹配。
人工映射十分準確,既然是人,肯定有自己擅長的領域以及知識盲區,“人” 對非擅長領域的信息是很難進行判斷的;同時,人的精力是有限的,面對海量信息顯得有些乏力。為了解決人工映射的弊端,業內有自動化映射的研究,不可否認,自動化映射更符合真實環境需求。受限于當前機器學習發展的瓶頸,很難有一個算法可以全自動地進行 ATT&CK 映射。
結合 “事件鏈圖”,使用 ATT&CK 映射關聯關系可以從四個角度入手:
- 環境:動作所處的環境,例如操作系統,執行環境(內存、命令行、SQL 等)
- 實現:進行了何種操作,例如文件釋放,網絡請求,數據修改等
- 操作對象:如釋放的文件類型,注冊表等
- 特征:有一些攻擊動作,需要特定的條件,比如 T1170,T1156,T1086 等,這種,檢測到相關特征,便可進行直接映射。
自動化映射需要結合自身系統的設計和需求,因人制宜,不過多的討論。
0x05-03 完整的描述模型
經過優化, 可以將 “事件鏈圖” 描述為:

方塊表示操作對象,邊表示操作對象之間的操作,也就是 ATT&CK 所描述的那部分。每兩個實體和邊看作一個最小分析單位,如圖中紅框所示。其構成的最小元組表達為:
(Node1 {Labels:'xxx'})-[:Relationships {Labels:'xxx'}]->(Node2)
每一個操作對象、實體表達為(Node)。關聯關系表達為[:Relationships]。實體和關聯關系都具有屬性信息。
Node 的屬性信息,可以是資源路徑,捕獲時附帶的信息,帶有的命令行參數等等。一切和操作對象實體有關的信息都可以放在里面。Relationships 描述攻擊過程和實體之間的關系,可以基于 ATT&CK 進行描述,屬性信息包含攻擊擊過程的環境,實現,特征或者其他一切信息。總的說,關注的是4種內容:
- 實體
- 實體的屬性
- 關聯關系
- 關聯關系的屬性
基于此種描述模型,可以延伸出兩種 TTP 描述方法:
- 關注實體的 TTP 描述方法(特征矩陣)
- 關注關聯的 TTP 描述方法(事件鏈圖)
特征矩陣中的信息,大多可以映射到實體屬性上。關注實體的 TTP 描述方法更多的是在能力和基礎設施方面的特征。關注關聯的 TTP 描述方法,著重上下文關系,更能體現體現戰術特征。當然也可以將兩者進行融合,只不過我將其歸為第二類。因為描述上下文時,也需要操作對象(實體)的屬性信息。
那么如何設計數據結構呢?可以使用 json 嵌套,也可以使用 STIX ,當然也可以自己設計標準。此處留一點想象空間。??
0x06 參考鏈接
- https://www.lockheedmartin.com/content/dam/lockheed-martin/rms/documents/cyber/LM-White-PaperIntel-Driven-Defense.pdf
- http://pwc.blogs.com/cyber_security_updates/2015/05/diamonds-or-chains.html
- https://ti.360.net/uploads/2018/01/26/65f86ec75d7775677676515122363c69.pdf
- https://www.lockheedmartin.com/content/dam/lockheed-martin/rms/documents/cyber/LM-White-Paper-Intel-Driven-Defense.pdf
- https://zhuanlan.zhihu.com/p/73172883
- http://detect-respond.blogspot.com/2013/03/the-pyramid-of-pain.html
- https://weibo.com/ttarticle/p/show?id=2309404450471736639616
- https://www.fireeye.com/blog/threat-research/
- https://ti.qianxin.com/blog/
鳴謝
主要內容成文于兩年前,感謝當時 Redrain、cyg07 對我教導和幫助。
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1132/
暫無評論