許多初階工程師在接觸惡意軟體分析時,常認為後門程式就是一個簡單的遠端控制工具,只要能連回伺服器執行指令即可。然而,俄羅斯國家級駭客組織 Turla(也被稱為 Secret Blizzard 或 Snake)近期對其長期使用的 Kazuar 後門進行了重大升級,將其從單一功能的程式轉變為一個複雜的模組化 P2P 殭屍網路。這次演進的核心目的在於提高隱蔽性與生存能力,讓攻擊者能在目標系統中長期潛伏而不會被偵測。
從單體架構到模組化設計
早期的 Kazuar 是一個單體式(Monolithic)的 .NET 後門,意味著所有功能都寫在同一個程式中。這種設計的缺點在於一旦其中一個功能被安全軟體偵測到,整個後門就會被揭發,且更新功能需要重新部署整個程式。
現在的 Kazuar 採取了模組化設計,將功能拆分為三種不同角色:Kernel(核心)、Bridge(橋接)與 Worker(工作單元)。這種設計讓攻擊者可以根據目標環境靈活配置,且能將高風險的操作與低風險的通訊分開,降低被發現的機率。
深入解析三層模組架構
首先是 Kernel 模組,它是整個殭屍網路的協調中心。Kernel 負責發佈任務給 Worker、管理與 Bridge 的通訊、記錄操作日誌,並執行反分析(Anti-analysis)與沙箱檢查(Sandbox checks),以確認自己是否運行在安全研究人員的分析環境中。
其次是 Bridge 模組,它的角色就像是一個代理伺服器(Proxy)。Bridge 負責在 Kernel 與外部的指令控制伺服器(C2 Server)之間傳遞訊息。這樣設計的好處是,只有少數的 Bridge 模組需要與外部通訊,大部分的 Kernel 模組不需要直接連網,能有效避開網路流量監控。
最後是 Worker 模組,它是實際執行髒活的單元。Worker 負責記錄鍵盤輸入(Keylogging)、攔截 Windows 事件、收集系統資訊以及讀取 MAPI(Messaging Application Programming Interface,一種用於存取電子郵件的介面)詳細資料。
P2P 選舉機制與隱蔽通訊
為了進一步增加生存率,Kazuar 引入了類似 P2P 網路的選舉機制。在同一個受感染的網路環境中,多個 Kernel 模組會透過 Mailslot(一種 Windows 內部通訊機制)進行選舉,選出一個領導者(Kernel Leader)。
選舉的邏輯是根據運行時間與中斷次數(如重啟或登出)的比例來決定。一旦選出領導者,其他 Kernel 模組會進入靜默模式(SILENT),只有領導者會保持活躍並透過 Bridge 請求任務。這種做法極大地減少了網路中的異常活動,因為大部分的受感染主機在表面上看起來並沒有在與外部通訊。
在內部通訊方面,Kazuar 使用了 Windows Messaging、Mailslot 和命名管道(Named Pipes)這三種本地通訊方式。而在外部通訊上,則支援 Exchange Web Services、HTTP 與 WebSockets,使其能偽裝成正常的企業流量。
數據分層與非同步處理
Kazuar 在受害主機上會建立一個專用的工作目錄作為暫存區(Staging Area)。它將任務指令、收集到的數據、日誌與配置檔案分開存放。
這種設計實現了任務執行與數據外傳的解耦(Decoupling)。Worker 收集到的資料會先加密存放在本地,再由 Kernel 統一處理並透過 Bridge 傳回伺服器。即使系統重啟或網路暫時中斷,惡意軟體也能維持操作狀態,並在適當時機非同步地將數據外傳。
總結與工程啟示
Turla 的這次演進顯示了頂尖攻擊者不再單純依賴 Living-off-the-Land(利用系統內建工具,如 PowerShell 或 certutil 來規避偵測)的技巧,而是直接將韌性(Resilience)與隱蔽性工程化到工具的架構中。
對於防禦端而言,單純監控單一主機的連外流量已不足夠,必須關注內部主機之間異常的命名管道通訊或 Mailslot 活動,以及非預期路徑下的加密暫存檔案,才能有效偵測這類高度模組化的威脅。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。