1.概述
安天CERT利用FireEye的開源虛擬機測試套件CommandoVM線索與公開的規則對樣本庫進行掃描篩選,梳理了一些疑似FireEye的失竊工具並結合情報對工具進行初步分類:基於開源項目的工具、基於內置Windows二進位文件的工具(利用白文件實現免查殺功能的工具)、FireEye紅隊自研工具以及目前未確認的部分工具。其中自研工具包括偵查工具、持久化工具、內存轉儲工具、惡意宏模板工具以及利用D語言、Golang、C#等語言編寫的後門程序。安天CERT對其中FireEye的部分自研工具進行了分析並評估可能產生的影響,同時針對部分相關規則使用了小規模白名單集合測試其誤報率和規則質量。
2.從威脅框架視角對紅隊工具的能力評估
安天CERT從威脅框架視角對本次洩露的紅隊工具進行了相應能力評估,這些能力更多的代表其基礎能力和模仿其他APT組織的能力,並不代表對FireEye全部紅隊能力的評估。
威脅框架是認知威脅的重要方法,安天CERT通過對其失竊工具的戰術、技術分解,發現從初始訪問到命令與控制階段除收集外的全方位、無死角地覆蓋威脅框架的各個階段。安天CERT重新梳理本次被竊工具對應的ATT&CK能力映射圖譜,可以看出本批工具可以實現的戰術動作覆蓋了ATT&CK威脅框架12個戰術階段中的10個,可以實現118個技術動作。
● 失竊的紅隊工具包含極少的載荷,其主要目的是模仿潛在的攻擊者並使用工具對企業進行攻擊,用來評估企業的檢測和響應能力以及系統的安全狀況,而非直接進行惡意操作,因此在收集、滲出和影響階段極少有所動作,通常這三個階段的戰術動作主要由惡意載荷完成。
● 在初始訪問階段,紅隊工具具備水坑攻擊、魚叉釣魚攻擊、第三方應用程式和外部服務的動作。入侵供應鏈、利用受信關係和有效帳戶通常在實際攻擊中使用的方法和資源,一般不使用工具本身參與,所以紅隊工具未覆蓋這三項戰術動作也很正常;
● 在執行階段,通常由工具、漏洞利用、其他載荷等方式完成,紅隊工具在執行階段覆蓋的戰術動作佔一半以上,說明了該批工具在執行階段利用的技術點較多;
● 在持久化階段,大多也由載荷自身完成,所以該批紅隊工具在持久化階段只佔一成多的戰術動作點;
● 在防禦規避階段,紅隊工具覆蓋了三分之一的戰術動作點,像繞過UAC、混淆和反混淆等方式都是為了躲避或繞過安全防禦機制,說明其非常注重戰術隱蔽;
● 在提權階段,紅隊工具的覆蓋率接近四成,但卻包含了漏洞相關的所有動作,而利用漏洞提權是使用較多且極為有效的方式,說明其提權階段同樣具備較強的能力;
● 在憑證訪問階段,紅隊工具有三成的覆蓋,其中包含獲取文件、註冊表和轉儲憑證,而操縱帳戶、輸入捕捉、欺騙用戶輸入、網絡嗅探和收集私鑰等動作並不覆蓋;
● 在發現階段,紅隊工具除瀏覽器書籤動作外,其他戰術動作全覆蓋,瀏覽器書籤可能會被用於研究使用者經常訪問的網站,這種資源通常被用於水坑攻擊,但在已經入侵的系統中,瀏覽器書籤已無大用,所以紅隊工具不具備發現瀏覽器書籤可以理解。除此之外,所有的硬體、軟體、用戶、服務、共享、進程等信息全部是發現的目標,發現這些的目的是為了提高下一階段橫向移動的成功率;
● 在橫向移動階段,紅隊工具未使用易於發現的可移動介質複製和汙染共享內容的戰術動作,更多的是使用遠程服務、認證和漏洞等方式進行橫向移動;
● 在命令與控制階段,紅隊工具覆蓋了將近一半的戰術動作,多為使用協議、埠、服務和遠程訪問工具進行通信,通信過程覆蓋了編碼和混淆數據,以逃避安全軟體檢測和發現。
結合以上這些特點可以看出,紅隊工具在多個階段利用開源框架、無文件攻擊、多種語言、白文件等多種技術和戰術進行隱蔽性動作操作。
圖 2-1 紅隊工具對應的ATT&CK映射圖譜
3.FireEye紅隊工具的功能梳理歸類
2019年3月28日,FireEye發布了一個包含超過140個開源Windows滲透工具包,該工具集名為「CommandoVM」[2]。FireEye推出的CommandoVM套件面向Windows平臺構建,屬於此前發布的FLARE VM套件的全新迭代版本,CommandoVM專攻逆向工程和惡意軟體分析,功能也更加全面。其工具集包含:命令與控制工具集、開發語言工具集、規避檢測工具集、信息收集工具集、網絡工具集、密碼攻擊工具集和漏洞分析工具集等13類工具集。安天CERT利用FireEye的開源虛擬機測試套件CommandoVM與公開的規則線索匹配到了大量工具。
針對失竊紅隊工具進行初步分類為以下4類:
1、基於開源項目的21款工具,包含ADPassHunt、Beacon、Beltalowda等。在這其中,安天CERT利用FireEye提供的規則線索通過分析識別出多個CommandoVM中的工具,通過研判特徵規則中提供的工具信息發現了4款可能是FireEye失竊的工具對應的公開發布版本,分別為SharpHound、Rubeus|Fluffy、Seatbelt、SharpSploit,其中3個源碼生成的滲透工具程序可被FireEye提供的YARA規則命中,另一個為同家族老版本滲透工具。
2、基於內置的Windows二進位文件的5款工具,包含DueDLLigence、MSBuildMe、NetshShellCodeRunner等;
3、FireEye紅隊自研工具24款,包含Dshell、Excavator、GetDomainPasswordPolicy等;其中包括偵查工具、持久化工具、內存轉儲工具、惡意宏模板工具以及利用D語言、Golang等編寫的後門程序;
4、目前未確認的工具,包含AllTheThings、CoreHound、Justask等。
具體工具功能清單詳見附錄。
4.從自研工具深度分析角度評估可能產生的影響
安天CERT對國外研究人員公布出的針對規則碰撞的哈希文件[3]進行了二次梳理,並針對部分自研工具進行了深入分析,以評估可能產生的影響。
圖4-1研究人員公布的規則對應的哈希
在紅隊失竊的四類工具中,開源工具與內置Windows二進位文件的工具,屬於開源技術,基於安全廠商的技術積累可有效防範;但自研工具與暫時未確認的工具部分,由於其未知的風險不能有效評估,一旦失竊被大規模利用,會將專屬高級攻擊能力轉化為普遍的攻擊能力,從而造成大面積攻擊事件,導致安全產品未能及時更新產品出現攻防失衡。
4.1 PGF——後門生成工具
PGF是FireEye紅隊一個利用各種「白利用」技術執行的後門生成工具。該工具實現對載荷進行加密,並注入到系統進程中解密執行,捕獲的載荷為標準的CobaltStrike遠控程序。
利用白文件實現免查殺功能的技術被稱之為「LOLBins」(Living-Off-the-Land Binaries),這個概念最初在2013年DerbyCon黑客大會由Christopher Campbell和Matt Graeber創造,最終由Philip Goh提出。
表 4-1樣本標籤
該樣本是一個C#語言編寫的進程注入器,目的是在目標機器執行相關載荷,其注入的惡意代碼部分可以隨意修改替換,注入代碼通過base64加密存在樣本中,在樣本執行時解密還原使用。
圖4-2加密的注入代碼
本例樣本注入代碼為CobaltStrike生成的DLL遠控功能載荷,樣本利用Windows系統進程SearchProtocolHost.exe,對其進行注入並執行。
圖4-3創建進程並注入解密的代碼(DLL)
解密後的代碼為典型CobaltStrike生成的針對Windows系統的載荷。
圖4-4 CobaltStrike載荷
4.2 ResumePlease——Microsoft Office宏惡意軟體模板
ResumePlease是一個Microsoft Office宏惡意軟體模板,實質上為一段VBA惡意代碼,主要功能是提取Excel表格中保存的數據轉為可執行程序,釋放到指定目錄中並運行。因此,該工具的使用必須與具備惡意載荷的Excel表格相結合,才能完成一個惡意文檔的製作,進而攻擊者可利用該惡意文檔實現對目標的魚叉式釣魚攻擊。
表 4-2樣本標籤
當文檔被打開時,執行下面的函數:
圖4-5文檔打開時執行的相關函數
writeOutHeader的功能是讀取Excel中保存的數據,生成惡意程序DisplayMon.exe。
圖4-6 writeOutHeader函數代碼
writeOutFooter的功能是讀取Excel中保存的數據,生成文件DismCore.dll。
圖4-7 writeOutFooter
DoStuff的功能是通過WMI服務運行惡意程序DisplayMon.exe,再進一步調用DLL文件執行。
圖4-8 DoStuff
5.從FireEye提供的檢測規則的誤報情況看規則質量
為遏制事件可能發生的次生影響,FireEye提供了包括HASH列表、漏洞編號和YARA等格式的擴展規則,用於服務其全球客戶。安天CERT對部分相關規則進行了小規模白名單集合誤報率測試,發現了一些問題。
表 5-1誤報樣本詳情
經安天分析人員判定,針對規則「APT_Backdoor_Win_DShell_2」和「APT_Backdoor_Win_GoRat_Memory」匹配的大部分樣本,不屬於DShell後門和GoRat(意為Go語言編寫的遠程控制工具)。
其中名為「APT_Backdoor_Win_DShell_2」的規則,用於檢測DShell後門,但在測試結果中發現該規則匹配到D語言的編譯工具和庫管理文件。目前來看該規則提取自D語言編譯工具rdmd,規則提取不夠嚴謹,安天分析人員在一個百萬級的白名單集合測試中,其規則命中的多個文件經人工分析大部分為正常文件。所以該條規則如果不結合場景信息使用,可能會導致誤判正常文件的情況。
圖 5-1 「APT_Backdoor_Win_DShell_2」 規則
名為「APT_Backdoor_Win_GoRat_Memory」規則,其原意應該是檢測運行於Windows平臺的GoRat樣本,但在測試結果中,該規則誤報了一個Android平臺下的視頻播放器程序。由於該規則對各字符串的匹配條件採用「or」(「或」)的方式,匹配其中的部分字符串即報警,導致該條規則誤報率很高。
圖 5-2 「APT_Backdoor_Win_GoRat_Memory」規則
從規則匹配的樣本在VT中的檢測結果看,主流的安全廠商在應對此次FireEye失竊事件時,並未盲目採用FireEye提供的檢測規則。
6.附錄:工具功能說明
紅隊工具合計60款,清單信息如下表所示:
表6-1 FireEye紅隊失竊工具功能清單
7.參考連結
[1]《FireEye紅隊工具失竊事件分析和思考》
https://www.antiy.cn/research/notice&report/research_report/20201210.html
[2]《Welcome to ThreatPursuit VM: A Threat Intelligence and Hunting Virtual Machine》
https://www.fireeye.com/blog/threat-research/2020/10/threatpursuit-vm-threat-intelligence-and-hunting-virtual-machine.html
[3]《國外研究人員公布出的針對規則碰撞的哈希》
https://docs.google.com/spreadsheets/d/1uRAT-khTdp7fp15XwkiDXo8bD0FzbdkevJ2CeyXeORs/edit#gid=36102663