2025-11-04
【精選威脅情資】資安軟體官方 CPE 更新包遭篡改事件分析
危害與影響 國內知名資安軟體官方 CPE 更新包遭篡改,奧義智慧研究團隊調查後發現攻擊者使用了合法的打包工具,將惡意檔案混入更新程序中,導致使用者執行官方更新包時,遭遇了預期之外的攻擊。
分析師觀點 在此事件中,攻擊者使用了常見的 Nullsoft 打包工具,即便修改過、惡意的 TexturePackerLib.dll 被混入一般更新程序中,原本的更新行為也如期完成,導致使用者難以察覺隱藏的異常活動(如:C2 連線、下載惡意資源等)。因此,我們建議每次更新時都需要檢查更新檔的簽章、hash 等 meta data,確保執行的是官方認證的正確檔案。
描述 2025 年 7 月,針對此事件調查時,奧義智慧研究團隊發現一個由 Nullsoft 工具打包的20250702_CPE_update.exe 執行檔,執行後會產生一個原始的 CPE_Update.exe,以及一個惡意的 TexturePackerLib.dll。此行為看似是具有效數位簽章的正常更新程式,實際隱含了以下惡意操作:
後台執行 :執行 CPE_Update.exe 時,會在背景啟動具有效簽章的TexturePacker.exe,同時建立包含惡意 TexturePackerLib.dll 的資料夾。 命令與控制 (C&C) :透過 Google Sheets API(URL: https://sheets.googleapis.com/v4/spreadsheets/1eAYKk9buUngvIXPF5QABMw0fjJ0NCh0g2KmZmhEeGZo) 作為 C2 伺服器,並利用 Google Drive API 傳輸資料。DNS監控 :向 gapi.n2p.eyes.sh 發送 DNS 查詢,此為疑似用於記錄受感染主機的 IP 位址。惡意元件 :包含以 Go 語言編寫、無數位簽章的 TexturePackerLib.dll 惡意模組,用以解密配置檔與資料外洩。 技術分析 初始存取 T1204.002 – User Execution : Malicious File(使用者執行:惡意檔案)利用合法軟體 Nullsoft 隱藏惡意行為,誘導使用者執行看似正常的更新程式。 執行 T1204 – User Execution(使用者執行)使用者為了更新而執行被篡改的執行檔20250702_CPE_update.exe,同時執行正常的 CPE_Update.exe 以及僅在背景執行的 TexturePacker.exe。 T1574.002 – Hijack Execution Flow: DLL Side-Loading(劫持執行流程:DLL 側載入)在背景執行 TexturePacker.exe,透過 DLL 載入惡意模組 TexturePackerLib.dll。
持續潛伏 T1543.003 - Create or Modify System Process : Windows Service(建立或修改系統程序:Windows 服務)透過 TexturePackerLib.dll 建立後台,確保惡意程式在系統重啟後仍能執行。 防禦規避 T1553.002 - Subvert Trust Controls : Code Signing(破壞信任控管:程式碼簽章)使用數位簽章隱藏惡意元件,偽裝成合法軟體以逃避檢測。 T1071.001 - Application Layer Protocol: Web Protocols(應用層協議:網路協議)透過 Google Sheets/Drive API 隱藏 C2 流量,使通訊行為看似正常。 發現 T1046 - Network Service Scanning(網路服務掃描)透過 DNS 查詢 gapi.n2p.eyes.sh 並監控受感染主機的 IP 位址,用以橫向移動。 收集 T1082 - System Information Discovery(系統資訊搜集)解密內嵌設定檔後,搜集主機名稱、IP、作業系統版本與權限等系統資訊。 命令與控制 T1071.001 - Application Layer Protocol: Web Protocols(應用層協議:網路協議)Google Sheets 作為 C2 伺服器,透過 API 接收指令。 資料外洩 T1567.002 - Exfiltration to Cloud Storage(外洩至雲端儲存)透過 Google Drive API 外洩資料,利用合法服務掩蓋資料竊取行為。
緩解措施 封鎖 C2 通訊:在防火牆或 DNS 層級封鎖 gapi.n2p.eyes.sh 及Google Sheets/Drive API 等非必要通訊。 更新與驗證:確保所有軟體更新程式(如 CPE_Update.exe)來自官方且驗證數位簽章。 監控異常行為:檢測後台執行的 TexturePacker.exe 或未簽章的 TexturePackerLib.dll,監控對 Google Sheets/Drive API 的異常請求。 部署 EDR 工具:使用支援 YARA 規則的端點防禦工具,檢測 Go 語言惡意程式。
入侵指標 (Indicator of Compromise, IoCs) Domain gapi.n2p.eyes.sh URL https://sheets.googleapis.com/v4/spreadsheets/1eAYKk9buUngvIXPF5QABMw0fjJ0NCh0g2KmZmhEeGZo File Hash
Name
SHA256
SHA1
MD5
CPE_Update.exe
f84a8f05ff77417c80705dfac85c7f728c4e8efa0bfdac5865995a1fa6366a10
464a98344c279e0948c6dc61a5471d287bead2dc
e5fc275fbdc2d27a9319d13993225ea3
TexturePacker.exe
fab9217f8760a9a48364ca2d16d7d31f862239ac362733d111ec4ba8d26f1060
072ebb8d9038fec73adef066d972b3242064fb44
dc4e65765c2ae32928ab2def119e89db
TexturePackerLib.dll
67fc968e2b172eafd933b259440150a47034aa61f72b5ce8579baf0e5853d322
462f3ab01b996cb7b8b2bb78f2ca9a74aa941f7d
115346d8d37e95f0f15938484e843ccb
YARA 規則Go_TokenDecrypt_JSONUnmarshal(匹配 Go 語言解密與 JSON 解析行為) rule Go_TokenDecrypt_JSONUnmarshal
{
meta:
author = "oalieno"
description = "Go malware that decrypts config and uses JSONUnmarshal"
version = "2.0"
strings:
$decrypt_sequence = {
8D 05 ?? ?? ?? ??
89 44 24 44
8B 44 24 3C
89 44 24 48
8D 44 24 44
89 44 24 4C
C6 44 24 27 01
8B 44 24 38
8B 08
83 F9 02
0F 83 ?? ?? ?? ??
}
$json_unmarshal = {
8D 0D ?? ?? ?? ??
89 4C 24 0C
89 44 24 10
E8 ?? ?? ?? ??
}
condition:
all of them
}