新的 CosmicStrand rootkit 針對技嘉和華碩主板
一個可能的中國 rootkit 會感染目標計算機并在重新安裝系統時保持活動狀態。
圖片:土坯股票
惡意軟件以不同的形式存在。大多數時候,惡意軟件由存儲在計算機操作系統中的惡意文件組成,就像任何其他文件一樣,并且作為具有或不具有高權限的軟件運行。找到后,它們通常可以很容易地從文件系統中刪除或在重新安裝操作系統時刪除。但是,rootkit是不同的惡意軟件。
什么是 rootkit?
Rootkit 旨在提供對計算機的訪問權限,并可能掩蓋在其上運行的其他惡意軟件。一些 rootkit 也不駐留在操作系統的通常文件系統中,而是駐留在其他位置,例如固件。Rootkit 通常也運行在內核級別,而不是通常的軟件級別。
與通常的惡意軟件相比,這樣的惡意軟件需要付出更多的努力來開發,因為它面臨著更多的技術和編程挑戰。
卡巴斯基的新研究揭示了一個名為 CosmicStrand 的 rootkit,它靜靜地位于特定計算機的統一可擴展固件接口(UEFI) 中。
根據卡巴斯基的說法,rootkit 位于技嘉或華碩主板的固件映像中。受感染的固件映像與使用 H81 芯片組的設計有關,這表明可能存在一個常見漏洞,該漏洞允許攻擊者將 rootkit 注入固件映像。
CosmicStrand 是如何工作的?
受影響的固件映像已被更改為在系統啟動時運行惡意代碼。觸發長執行鏈以在受影響機器上的 Windows 操作系統內核中下載和部署惡意內容。固件的初始入口點已被修補以重定向到 .reloc 部分中添加的代碼執行。
據研究人員稱,固件正在使用自動修補程序進行修改,這意味著攻擊者可以事先訪問受害者的計算機以提取固件,注入惡意代碼,然后覆蓋主板的固件。
由于此 rootkit 的目標是允許在操作系統的內核級別運行惡意代碼,因此感染鏈非常復雜,比任何常見的惡意軟件感染都要復雜得多。UEFI 代碼在 Windows 系統加載之前運行,這意味著攻擊者必須設法在操作系統啟動之前將惡意代碼傳遞給操作系統,而 UEFI 代碼將被終止。
攻擊者通過連續設置多個鉤子來實現這一點,允許在操作系統啟動后執行惡意代碼(圖A)。
圖A
圖片:卡巴斯基。從 UEFI 啟動到操作系統運行的感染鏈
在感染鏈中,rootkit 負責禁用內核補丁保護(KPP),也稱為 PatchGuard,這是一種 64 位 Windows 安全機制,可防止修改內存中 Windows 內核的關鍵結構。
在操作系統啟動結束時,CosmicStrand rootkit 在內核的地址空間中分配一個緩沖區,并在執行前映射一個 shellcode。
內核級惡意載荷
rootkit 運行的 shellcode 等待 winlogon.exe 中的新線程,然后在此上下文中執行回調,這是高權限的。然后它會在測試互聯網連接之前休眠 10 分鐘。該測試通過傳輸設備接口完成,而不是使用通常的高級 API 函數,并向 Google 的 DNS 服務器或位于中國的自定義服務器發送 DNS 請求。
如果互聯網連接可用,shellcode 會在 C2 服務器 update.bokts[.]com 上檢索最終有效負載。預計來自 CosmicStrand 的有效載荷將按照特定結構以 528 字節的塊的形式接收,這可能會破壞自動分析工具。
卡巴斯基無法檢索最后一個有效載荷,但研究人員在他們可以分析的一臺受感染計算機的內存中發現了一個用戶模式樣本。該樣本被認為與 CosmicStrand 相關聯,它在目標計算機上創建了一個名為“aaaabbbb”的用戶,并將該用戶添加到本地管理員組中。
針對個人的長期威脅
卡巴斯基發現舊版本的 rootkit 會到達另一臺 C2 服務器以獲取額外的 shellcode。這些舊版本可能已在 2016 年底至 2017 年中使用,而最新版本在 2020 年活躍。奇虎 360 也在 2017 年分析了早期版本的 rootkit。
研究人員發現的與兩臺 C2 服務器相關的數據分析表明,這些域的生命周期很長,并且在有限的時間范圍內解析為不同的 IP 地址,在此時間范圍之外,rootkit 將無法運行。
關于 CosmicStrand 威脅的目標,卡巴斯基指出,遙測中的所有受害者似乎都是使用免費版產品的個人,位于中國、越南、伊朗和俄羅斯。
可能的中國威脅行為者
根據卡巴斯基的說法,一些數據導致人們相信“CosmicStrand 是由一個說中文的威脅行為者開發的,或者是通過利用說中文的威脅行為者之間共享的共同資源開發的。”
MyKings僵尸網絡使用在 CosmicStrand 中也觀察到的許多代碼模式,據信這些代碼模式是由講中文的威脅行為者開發的。在內核模式下分配內存時,這兩種威脅也共享相同的標簽,并以相同的方式生成網絡數據包。兩者中使用的 API 哈希代碼也是相同的,并且根據卡巴斯基、MoonBounce 和 xTalker僅在另外兩個 rootkit 中發現,也與說中文的威脅參與者有關。
如何檢測rootkit?
Rootkit 特別難以檢測,尤其是當它們使用操作系統之外的硬件功能時,CosmicStrand rootkit 就是這種情況。
在最低級別掃描計算機活動的安全軟件可能會檢測到來自 rootkit 的異常活動并成功檢測到它。
檢測它的另一種方法是通過所有未被 rootkit 感染但連接到同一網絡的系統:通過使用入侵檢測系統/預防檢測系統,可以像檢測任何其他惡意軟件一樣檢測惡意網絡活動(入侵檢測系統/IPS)。
如果懷疑計算機運行 UEFI rootkit,事件響應者可能會檢查固件是否存在異常。顯示與供應商提供的哈希值不同的固件可能已被盜用。
最后,需要了解的是,即使惡意文件從 Windows 操作系統中刪除,它們也會在每次啟動時被 rootkit 重新安裝。需要安裝干凈且安全的固件版本來替換惡意版本。