根據網路安全公司 Arctic Wolf 的分析報告,近期在委內瑞拉的一家通訊機構中發現了一款新型的惡意軟體框架,名為 GoCaracal。這款使用 Go 語言開發的惡意軟體被認為與威脅組織 Dark Caracal 有高度關聯。Dark Caracal 長期以來一直活躍於拉丁美洲地區,其攻擊目標涵蓋巴西、厄瓜多、智利、哥倫比亞等國。此次發現的 GoCaracal 展現了極強的模組化設計,並引入了一種利用區塊鏈技術來維持指令控制連線的創新手段。
惡意軟體的設計與功能模組
GoCaracal 在設計上分為輕量化(Lightweight)與擴展(Extended)兩種設定檔,旨在根據攻擊階段的不同需求提供相應的功能。輕量化版本主要負責基礎的環境偵察、建立加密的指令與控制(C2, Command and Control)通道、執行遠端指令以及載入與注入 Shellcode(一段可用於漏洞利用的低階機器碼)。在實際攻擊中,攻擊者常將 GoCaracal 與另一款名為 Bandook 的惡意軟體並行部署,顯示 GoCaracal 並非為了取代 Bandook,而是作為功能互補的工具集。
而擴展版本則提供了更深層的滲透能力。除了基礎功能外,它還能執行系統與檔案探索、竊取瀏覽器的 Cookie 與登入資料庫、紀錄鍵盤輸入(Keylogging)、搜尋特定目標檔案,甚至能透過 WebRTC(一種允許瀏覽器進行即時通訊的技術)實現遠端桌面控制。此外,它還具備 SOCKS5 代理功能,允許攻擊者將受感染的主機作為跳板,進一步滲透內網的其他設備,並具備維持權限持久化的能力。
利用以太坊智能合約的 C2 備援機制
GoCaracal 最令人關注的技術特點在於其 C2 位址的更新機制。傳統的惡意軟體通常將 C2 伺服器的位址硬編碼在程式碼中,或者依賴域名生成演算法(DGA)。一旦該伺服器被安全人員封鎖,惡意軟體將失去與攻擊者的聯繫,除非攻擊者重新分發更新過的二進位檔案。
為了克服這個限制,GoCaracal 的擴展版本引入了以太坊(Ethereum)智能合約作為備援機制。當惡意軟體嘗試連接預設的主 C2 伺服器多次失敗後,它會向公共的以太坊 JSON-RPC 端點(一種用於與區塊鏈節點互動的標準介面)發送 eth_getStorageAt 請求。這個請求會讀取預先設定在區塊鏈智能合約中的特定儲存槽位,從中獲取一個新的替代 C2 位址。
獲取新位址後,GoCaracal 會將其寫入記憶體配置中,並嘗試使用這個新位址重新建立傳統的離鏈(Off-chain)通訊。這種做法的核心意義在於,攻擊者無需重新發送惡意檔案,只需在區塊鏈上更新智能合約的狀態,就能在全球範圍內同步更新所有受感染主機的連接目標。由於可以使用多個公共 RPC 端點來讀取同一份合約狀態,這大大降低了對單一備援點的依賴,增加了防禦者封鎖其通訊路徑的難度。
攻擊路徑、影響與防禦限制
根據 Arctic Wolf 的分析,GoCaracal 的傳播路徑極可能是透過釣魚郵件。雖然在本次案例中未能直接回收原始郵件,但調查人員發現了大量與金融、稅務相關的檔案命名,以及超過 100 個與惡意託管網站通訊的 SVG(可縮放向量圖形)檔案。攻擊者利用 SVG 檔案隱藏惡意指令,誘導使用者下載並執行。
儘管這種利用智能合約的機制在理論上非常強大,但 Arctic Wolf 指出,在本次委內瑞拉的入侵事件中,尚未發現有受感染主機真正觸發此備援機制並成功重新連接。這顯示該功能目前可能處於部署階段或作為最後防線。
對於企業防禦者而言,GoCaracal 的出現提醒了區塊鏈技術在惡意軟體中的潛在用途。由於區塊鏈數據的公開性與不可篡改性,它為攻擊者提供了一個天然的、分散式的配置分發中心。防禦端除了依賴 YARA 規則(一種用於識別惡意檔案特徵的工具)與 IoC(侵害指標)來偵測已知樣本外,更需要監控異常的 RPC 流量,以及對未知 Go 語言編寫的二進位檔案保持高度警戒。
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。