什麼是 Rootkit?它們如何隱藏及如何清除

Rootkit 是最危險的惡意軟件之一,因為它們在系統的最深層運作,向偵測工具隱藏自身及其他惡意軟件。了解 Rootkit 對於應對進階威脅至關重要。

What are rootkits
1定義與類型

Rootkit 的定義及不同類型

Rootkit 是一種旨在獲取電腦系統特權存取,同時主動向作業系統、安全工具和使用者隱藏自身存在的惡意軟件。這個名稱源自 Unix 術語——「root」是最高特權的系統帳戶,而「kit」則指用於維持該存取權限的工具集合。Rootkit 的定義特徵不僅在於它們的行為,更在於它們的隱藏方式:Rootkit 會修改作業系統自身的報告機制,使其創建的惡意軟件檔案、程序、登錄檔項目和網絡連線對標準系統查詢不可見。當您列出正在運行的程序時,Rootkit 不會顯示。當您搜索其檔案時,它們不會被返回。

Rootkit 按其運作的特權層級分類。使用者模式 Rootkit 在應用程式層運作,攔截應用程式與作業系統核心之間的 API 呼叫。它們較易實現,但也較易偵測。核心模式 Rootkit——更危險的類別——在 Ring 0 運行,與作業系統核心本身相同的特權層級,允許它們直接修改核心數據結構,並在最低層級攔截任何系統呼叫。開機程式(開機磁區 Rootkit)感染主引導記錄(MBR)或 UEFI 韌體,在作業系統載入前執行——這使它們特別難以清除,因為它們在防毒軟件初始化之前就已開始運作。超級監督程序 Rootkit 嘗試將作業系統作為虛擬機載入,在其安裝的惡意超級監督程序下運行。

Rootkit 感染的實際影響遠超 Rootkit 本身。Rootkit 通常作為更廣泛攻擊的一部分安裝,以維持對受感染系統的持久、隱蔽存取。一旦 Rootkit 就位,攻擊者可以安裝額外惡意軟件、竊取憑證、將系統用作殭屍網絡的一部分、滲出數據,或在網絡中橫向移動——而 Rootkit 的隱藏能力確保偵測機率降至最低。一些歸因於國家級行為者的最重要進階持續性威脅(APT)活動已使用複雜的 Rootkit 作為核心持久性機制。在犯罪惡意軟件中,Rootkit 常被用於隱藏加密貨幣挖礦軟件或殭屍網絡代理,為攻擊者提供持續的價值。

  • 使用者模式 Rootkit:在應用程式層攔截 API 呼叫——較易實現和偵測。
  • 核心模式 Rootkit:在作業系統 Ring 0 運行——直接修改核心數據結構,最難偵測。
  • 開機程式:感染 MBR 或 UEFI——在作業系統載入前、防毒軟件初始化前執行。
  • 超級監督程序 Rootkit:在惡意超級監督程序下將作業系統作為虛擬機運行——極為罕見且複雜。
  • 隱藏功能:向作業系統查詢隱藏檔案、程序、登錄檔項目和網絡連線。
  • 持久性平台:主要用於維持隱藏存取並啟用其他惡意軟件安裝。
Types of rootkits
2Rootkit 的隱藏方式

Rootkit 如何逃避偵測及為何如此難以發現

核心模式 Rootkit 所採用的規避技術正是使其獨特危險的原因。直接核心物件操控(DKOM)修改作業系統數據結構——具體而言,是作業系統在核心記憶體中維護的程序物件鏈結清單——以從清單中移除 Rootkit 的程序。當任何應用程式(包括任務管理器或防毒軟件)向作業系統詢問「哪些程序正在運行?」時,作業系統會遍歷此清單並返回結果。透過 DKOM 從清單中移除的程序根本不會被返回,對任何依賴標準作業系統 API 的工具而言實際上不可見。相同技術可以隱藏檔案、登錄檔項目和網絡連線。

系統服務描述符表(SSDT)鉤子是一種經典的核心模式 Rootkit 技術,Rootkit 替換了將系統呼叫號碼對應到其處理函式的表中的指標。當任何應用程式進行系統呼叫(例如列出檔案)時,Rootkit 的鉤子會攔截呼叫,呼叫合法的處理程序,然後在返回結果之前過濾結果——從清單中移除 Rootkit 檔案。現代 64 位 Windows 包含核心補丁保護(KPP,亦稱 PatchGuard),專門用於偵測和應對 SSDT 鉤子及其他核心數據結構修改。PatchGuard 定期檢查核心完整性,若偵測到未授權修改,則觸發系統當機(藍屏死機,BSOD)——這就是為何現代 Rootkit 使用更複雜的技術來規避 PatchGuard 本身。

偵測 Rootkit 需要採用與標準防毒掃描不同的方法。由於 Rootkit 顛覆了大多數安全工具所依賴的作業系統報告機制,有效偵測必須使用獨立的帶外方法。將作業系統對系統的視圖與磁碟和記憶體數據的直接視圖(繞過作業系統 API)進行比較,可以揭示由 Rootkit 隱藏造成的差異——如果作業系統報告目錄中有 50 個檔案,但直接讀取磁碟磁區顯示有 53 個,則那 3 個隱藏檔案值得懷疑。從可開機救援環境(受潛在感染的作業系統處於離線狀態)掃描,可消除 Rootkit 攔截掃描查詢的能力。正確配置的 UEFI 安全開機可透過在開機組件執行前進行加密驗證來防止開機程式。

  • DKOM:直接核心物件操控從核心記憶體清單中移除程序——對所有作業系統 API 查詢不可見。
  • SSDT 鉤子:攔截系統呼叫以過濾結果——現代 Windows PatchGuard 主動偵測此技術。
  • 規避 PatchGuard:進階 Rootkit 使用技術避免觸發 Windows 核心補丁保護。
  • 帶外偵測:比較作業系統視圖與直接磁碟存取——差異揭示隱藏的 Rootkit 檔案。
  • 離線掃描:可開機救援環境在不運行受感染作業系統的情況下進行掃描。
  • 安全開機:對開機組件進行 UEFI 加密驗證——防止開機程式載入。
How rootkits hide from antivirus
3偵測工具

偵測 Rootkit 感染的工具和方法

專用 Rootkit 偵測工具使用標準防毒軟件可能缺乏的帶外比較技術。GMER(Windows)是一個長期使用的 Rootkit 偵測工具,它將作業系統可見的程序、服務和檔案與直接系統數據進行比較,突顯表明鉤子的差異。卡巴斯基 TDSSKiller 專門設計用於偵測和清除開機程式及 TDSS 家族 Rootkit。Malwarebytes Anti-Rootkit(與標準 Malwarebytes 分開的工具)使用直接記憶體和磁碟掃描來偵測核心模式 Rootkit。這些工具是對傳統防毒軟件的補充,而非替代——它們專門針對特定的、狹窄的威脅類別。

具有強大核心層面整合的防毒產品在 Rootkit 偵測方面具有優勢。ESET 的反 Rootkit 技術使用其自身的核心驅動程式,以與其設計偵測的 Rootkit 相同的特權層級,將作業系統報告的數據與原始磁碟和記憶體數據進行交叉核查。Bitdefender 和卡巴斯基均大力投資反 Rootkit 研究,並包含專用偵測模組。Windows Defender 進階威脅防護(Microsoft Defender for Endpoint 企業產品的一部分)包含核心層面感測器和記憶體完整性(HVCI——超級監督程序保護程式碼完整性),使用虛擬化保護核心免遭修改,使核心模式 Rootkit 安裝變得更加困難。

對於疑似開機程式感染,最可靠的偵測和清除方法是可開機救援環境。卡巴斯基救援磁碟、Bitdefender 救援環境和 ESET SysRescue 是免費工具,可從 USB 開機進入具有已更新防毒掃描器的乾淨 Linux 環境,在已安裝的 Windows 系統完全離線時對其進行檢查。由於受潛在感染的 Windows 核心未在運行,Rootkit 隱藏機制處於非活躍狀態——掃描可見磁碟的真實狀態。ESET 的 LiveGuard 和 Bitdefender 的救援環境在全面性方面享有特別好的聲譽。這些也是在症狀表明感染存在但正常 Windows 防毒掃描無法偵測疑似感染時應使用的工具。

  • GMER:Windows Rootkit 偵測器,比較作業系統視圖與直接系統數據的差異。
  • 卡巴斯基 TDSSKiller:專門針對開機程式和 TDSS 家族核心 Rootkit。
  • ESET 反 Rootkit:使用 ESET 自身驅動程式在與 Rootkit 相同的特權層級進行核心層面交叉核查。
  • 記憶體完整性(HVCI):Windows 虛擬化功能,保護核心免遭未授權修改。
  • 可開機救援磁碟:卡巴斯基/Bitdefender/ESET 救援環境離線掃描 Windows 系統。
  • 離線掃描的優勢:受感染作業系統未在運行時,Rootkit 隱藏機制不起作用。
Rootkit detection tools
4清除與預防

清除 Rootkit 及預防日後感染

Rootkit 的清除工作比標準惡意軟件清除複雜得多,對於核心模式和開機程式感染,推薦的方法通常是完整重新安裝作業系統,而非嘗試就地清除。原因在於可靠性:即使防毒軟件成功移除了 Rootkit 的檔案和鉤子,也很難確定所有持久性機制均已清除、核心是否以未被偵測到的方式被進一步修改,或在 Rootkit 隱藏下安裝的額外惡意軟件是否已完全移除。從已知良好的媒體進行乾淨的作業系統重新安裝,隨後重新安裝應用程式並從感染前的備份恢復數據,可以確保受感染的作業系統組件已完全消除。

對於開機程式的清除,過程需要重寫受感染的開機磁區或 UEFI 韌體。卡巴斯基 TDSSKiller 等專用工具可處理許多常見的開機程式變體。對於 UEFI 層面的感染,修復可能需要將韌體刷回原廠狀態——這是針對主板製造商的特定過程。修復後啟用 UEFI 安全開機可防止開機程式再次感染,因為它會在開機組件執行前驗證其加密簽名。在現代 Windows 11 硬件上,安全開機是必需的且預設啟用;在較舊的硬件上,請在 UEFI 設定中確認安全開機已啟用,如果處理敏感數據,請考慮升級不支持安全開機的硬件。

預防 Rootkit 感染遵循與一般惡意軟件預防相同的原則,但特別強調 Rootkit 具體使用的攻擊途徑。Rootkit 的傳遞通常需要某種形式的提升特權——Rootkit 要麼利用漏洞獲取核心存取權限,要麼使用者(或初始階段的惡意軟件)擁有允許安裝核心驅動程式的管理員權限。將帳戶保持為標準使用者而非管理員、在 Windows 上啟用使用者帳戶控制(UAC)並要求所有提升請求都需提示,以及及時應用作業系統和驅動程式更新(核心層面的漏洞利用是 Rootkit 傳遞的首選目標)可大幅降低 Rootkit 安裝風險。受信任平台模組(TPM)和 Microsoft Secured-core PC 規格等基於硬件的安全功能在韌體層面提供額外的 Rootkit 防護。

  • 建議重新安裝作業系統:對於確認的核心 Rootkit——乾淨重裝可確保受感染作業系統已完全消除。
  • 開機程式清除:重寫 MBR 或重新刷寫 UEFI 韌體——TDSSKiller 等專用工具可處理常見變體。
  • 啟用安全開機:UEFI 加密驗證防止開機程式再次感染——在 UEFI 設定中確認已啟用。
  • 標準使用者帳戶:限制 Rootkit 安裝通常需要的特權提升路徑。
  • UAC 嚴格模式:要求所有提升請求都需提示——阻斷自動特權提升鏈。
  • TPM 和 Secured-Core:在韌體層面提供 Rootkit 防護的硬件安全功能。
完整惡意軟件清除指南 →
Rootkit removal and prevention

在核心層面保護您的系統

選擇具備強大反 Rootkit 能力和核心層面保護的防毒軟件,以抵禦最進階的惡意軟件。

Related VPN Articles