根據 The Hacker News 的報導,一名獨立惡意軟體研究員 Dominik Reichel 發現了一款名為 SLEEPWALKER 的新型 Windows 後門程式。這款惡意軟體展現了極高的隱匿技巧,它在記憶體中保持靜默狀態,直到接收到一個經過特殊設計的網路封包(Crafted Packet)才會被激活,隨後執行一套由攻擊者自定義的指令集。這種設計使其能有效規避傳統的網路監控工具,因為它在等待指令期間不會主動發起任何對外的連線。
背景與潛入機制
SLEEPWALKER 採取的是一種後滲透(Post-compromise)部署策略,這意味著它並非最初進入系統的突破口,而是攻擊者在取得本地管理員權限後,為了長期維持控制權而植入的工具。該後門是以 64 位元動態連結庫(DLL, Dynamic-Link Library,一種可被多個程式共享使用的函數庫檔案)形式存在,大小約為 60 KB。
為了在系統中潛伏,它利用了 DLL Side-loading(DLL 側載)技術。側載是一種利用 Windows 載入 DLL 的搜尋順序漏洞,將惡意 DLL 偽裝成合法系統檔案,放置在合法執行檔同目錄下的攻擊手法。SLEEPWALKER 偽裝成微軟的 dpapi.dll(資料保護 API 庫),並將自己植入到 ESET Management Agent 的執行檔 ERAAgent.exe 所在目錄中。每當 ESET 的管理服務啟動時,系統會優先載入這個惡意的 dpapi.dll,從而讓後門在合法程序的安全上下文中執行,而無需額外獲取權限。
核心運作方式:被動監聽與自定義指令集
SLEEPWALKER 最顯著的特徵在於其被動的觸發機制。大多數後門會定期與命令與控制伺服器(C2 Server)聯繫,但 SLEEPWALKER 內部沒有內建任何域名或 IP 地址。它使用 AES-256-CCM 加密算法解密配置,指令其在所有網路介面上進行無限期的監聽。
這種監聽模式非常危險,因為它會擷取經過該介面的所有流量,即使該封包並非發往該主機。如果受感染的主機是閘道器或 VPN 伺服器,它可能會誤觸原本發給其他機器的觸發封包。一旦接收到正確的觸發封包,後門便會解析其中包含的 Bytecode(位元組碼,一種低階的機器碼指令)。
為了增加分析難度,攻擊者設計了一套僅包含 23 個指令的私有語言。這意味著即使安全研究員破解了加密金鑰,看到的依然是無法直接理解的操作碼(Opcodes),而非可讀的文字命令。這套自定義語言涵蓋了排程管理、數據移動、經由 SHA-256 雜湊驗證的分階段檔案傳遞,以及直接在記憶體中執行代碼的功能。
多樣化的傳輸通道與隱匿性
為了確保在不同環境下都能運作,SLEEPWALKER 支援六種傳輸通道,包括常見的 TCP、UDP、ICMP 以及用於橫向移動的 SMB 具名管道(Named Pipes)。特別值得關注的是,它支援 VMware 的 VMCI(虛擬機通訊介面),這是一種允許虛擬機與宿主機或其他虛擬機直接通訊的機制。由於 VMCI 流量繞過了傳統的網路適配器,一般的網路封包擷取工具完全無法偵測到此類通訊。
此外,該後門採取全記憶體運作策略,幾乎沒有任何指令會將數據寫入硬碟,這使其能有效避開基於檔案掃描的防毒軟體。為了讓未經身分驗證的呼叫者能存取其具名管道,它會修改 Windows 登錄檔中的 EveryoneIncludesAnonymous 與 NullSessionPipes 數值,以降低存取限制。
影響、限制與防禦建議
從技術複雜度來看,這種自定義指令集與被動監聽的設計,符合資源充足且目標明確的定向攻擊(Targeted Operation)特徵,而非隨機的機會主義攻擊。然而,由於目前僅分析單一樣本且缺乏完整的攻擊脈絡,研究員尚無法將其歸類於特定的駭客組織或確定受害者範圍。
在防禦方面,由於側載攻擊利用的是 Windows 的系統機制而非 ESET 軟體本身的漏洞,因此無法透過單純的軟體更新來修補。唯一的解決方案是進行事件響應(Incident Response)並重建受感染的系統。
目前可用的偵測指標包括在 ERAAgent.exe 目錄中出現異常的 dpapi.dll 或 dpapisvc.dll 檔案,以及登錄檔中異常的 NullSessionPipes 項目。儘管研究員提供了 YARA 規則(一種用於識別惡意軟體特徵的工具)與 PowerShell 掃描腳本,但由於 YARA 規則部分依賴於靜態 AES 金鑰與編譯後的協議代碼,攻擊者只要更改編譯設定或重新建構樣本,就可能使現有的偵測手段失效。
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。