CoffeeLoader 惡意軟件利用 GPU 加殼技術規避檢測
高級惡意軟件采用多重規避技術
Zscaler威脅實驗室ThreatLabz發現,自2024年9月開始活躍的CoffeeLoader惡意軟件家族采用多種技術規避終端安全檢測,以下載第二階段有效載荷。該惡意軟件運用的高級技術包括:基于GPU的加殼、調用棧欺騙、休眠混淆和Windows纖程技術。該惡意軟件通過SmokeLoader傳播,兩者具有相似行為特征。
Zscaler在報告中指出:"CoffeeLoader實現了多項對抗終端安全軟件的功能,包括調用棧欺騙、休眠混淆和Windows纖程技術。該加載器采用我們命名為Armoury的加殼程序,通過在系統GPU上執行代碼來阻礙虛擬環境分析。"
多階段攻擊流程分析
當主控服務器不可用時,CoffeeLoader會啟用域名生成算法(DGA)。研究人員確認該惡意軟件被用于部署Rhadamanthys信息竊取程序。
樣本采用獨特的惡意軟件加殼程序保護,該程序利用系統GPU執行代碼,大幅增加虛擬環境分析難度。由于仿冒華碩公司開發的合法Armoury Crate工具,專家將該加殼程序追蹤命名為Armoury。
CoffeeLoader投放器執行安裝例程時,不同變種實現不同功能。其中一個版本將加殼DLL(ArmouryAIOSDK.dll)復制到用戶臨時目錄,通過rundll32.exe執行,采用直接執行(提升權限時)或UAC繞過(未提權時)方式。研究人員指出該變種不具備持久化能力。
其他版本通過以下方式實現持久化:將DLL復制至%PROGRAMDATA%(提權時)或%LOCALAPPDATA%(未提權時),設置嚴格文件權限,并通過schtasks.exe或Windows ITaskScheduler COM接口創建計劃任務(AsusUpdateServiceUA)。早期版本在用戶登錄時執行,新版則設置為每10分鐘運行一次。安裝完成后,投放器執行CoffeeLoader的暫存組件后退出。
高級規避技術詳解
惡意軟件暫存組件創建掛起的dllhost.exe進程,通過NtAllocateVirtualMemory、NtProtectVirtualMemory和NtWriteVirtualMemory注入主模塊。在終止前修改線程上下文執行注入代碼。
主模塊采用DJB2算法解析API函數,并運用調用棧欺騙、休眠混淆和Windows纖程等高級規避技術。報告補充說明:"主模塊還通過哈希值解析API函數地址,但使用DJB2算法。該模塊實施了多項規避殺毒軟件(AV)和終端檢測響應(EDR)的技術。"
CoffeeLoader支持多種命令,可注入執行shellcode、可執行文件和DLL。具體命令包括:休眠(0x58)、在指定進程注入運行shellcode(0x87)、更新休眠混淆方法和超時(0x89)、將可執行載荷寫入臨時目錄并運行(0x91)、將DLL載荷寫入臨時目錄并通過rundll32.exe執行(0x93)。
該惡意軟件采用調用棧欺騙技術掩蓋函數調用來源,規避分析堆棧跟蹤的安全工具。通過建立合成堆棧幀和動態映射系統調用,避開用戶模式鉤子。在休眠混淆方面,CoffeeLoader在非活動狀態加密內存,僅在執行時解密。還通過修改內存權限和為關鍵系統函數添加異常,繞過Windows控制流防護(CFG)。
與SmokeLoader的潛在關聯
ThreatLabz發現CoffeeLoader與SmokeLoader存在多項相似性,暗示兩者可能有關聯。兩個惡意軟件家族都使用暫存組件將主模塊注入其他進程,基于系統詳情生成僵尸ID,并創建與僵尸ID關聯的互斥體名稱。它們都采用哈希解析導入項,在全局結構中存儲內部變量,使用硬編碼RC4密鑰加密網絡流量。兩者都重度依賴底層Windows API,并通過修改文件屬性保持隱蔽。
在持久化機制方面,CoffeeLoader最新版本每10分鐘運行計劃任務(無需提權)。2024年12月據稱出現新版SmokeLoader,與CoffeeLoader共享多項規避技術。但尚不確定CoffeeLoader是SmokeLoader的演進版本,還是巧合相似。
報告總結指出:"CoffeeLoader加入了競爭激烈的惡意軟件加載器市場。開發者集成的紅隊攻防概念(如調用棧欺騙、休眠混淆和Windows纖程)使其具備競爭優勢。雖然SmokeLoader傳播CoffeeLoader且兩者存在顯著相似性,但確切關系仍有待厘清。"報告最后提供了完整的入侵指標(IOCs)。