流氓軟體為生存不擇手段:進程守護、交叉感染、啟動項、自我恢復、檔案隱藏、進程注入、核心驅動保護。驅動級保護最頑固,普通模式無法刪除,甚至安全模式亦自動載入。本文教你用 Sysinternals Autoruns 精準定位惡意驅動,配合冰刃/檔案粉碎器徹底清除。
一、為何流氓軟體「刪不掉、除不盡」?
- 核心驅動 (`C:\Windows\System32\drivers\*.sys`) 掛載於 `HKLM\SYSTEM\CurrentControlSet\Services\`。
- 啟動類型設為 `Boot` (0) 或 `System` (1),安全模式同樣載入。
- 驅動過濾所有檔案/註冊表操作:針對自我操作返回 `STATUS_SUCCESS` 實際不執行;偵測刪除行為即從備份/網路恢復。
- 檔名隨機、偽造簽名 (冒充 Microsoft)、時間戳偽造、檔案系統層級隱藏 (FS Filter),極難人工發現。
二、Autoruns 核心功能與配置
- 下載 Autoruns.exe (官方簽名),以管理員身分執行。
- 選單 `Options` → 勾選兩項關鍵:
- Verify Code Signatures:驗證所有驅動檔案數位簽名。
- Hide Signed Microsoft Entries:隱藏微軟官方簽名項目,聚焦異常項。
- 切換至 `Drivers` 頁籤,列出所有已註冊驅動服務。
三、判讀異常驅動指標
| 指標 | 正常 | 可疑/惡意 |
| 驗證狀態 | Verified (綠色) | Not Verified / Unable to Verify (紅/黃) |
| 發布者 | Microsoft Corporation / 硬體廠商實名 | 空白、亂碼、冒充 Microsoft 但拼寫錯誤 (Microsof、Microsft) |
| 路徑 | `C:\Windows\System32\drivers\` 知名檔名 | 隨機檔名、非標準目錄、用戶配置檔下 |
| 啟動類型 | Demand (3) / Auto (2) | Boot (0) / System (1) 強制早期載入 |
| 描述 | 清晰功能說明 | 空白、亂碼、與檔名無關 |
四、清除標準作業程序 (SOP)
- 記錄:截圖/記下可疑驅動服務名稱 (Service Name)、顯示名稱、映像路徑。
- 刪除註冊表鍵值:用冰刃 或 `regedit` 刪除 `HKLM\SYSTEM\CurrentControlSet\Services\` 整個鍵值。
- 重開機:驅動不再載入,檔案鎖定釋放。
- 刪除實體檔案:用檔案粉碎器 (Eraser/File Shredder) 多次覆寫刪除 `.sys` 檔案。
- 清理殘留:檢查 `Services`、`Logon`、`Scheduled Tasks`、`Winsock Providers`、`LSA Providers` 等分頁同步清理相關項目。
- 驗證:再次執行 Autoruns 確認無殘留異常項;進程監視器 觀察無異常驅動載入。
五、未來演進與應對
- 駭客可能繞過 Autoruns:簽名竊取 (Stuxnet 式)、UEFI 固體植入、DKOM (Direct Kernel Object Manipulation) 隱藏驅動物件、Hypervisor 層級 Rootkit (Blue Pill)。
- 應對:啟用 VBS (Virtualization-Based Security)/HVCI (Hypervisor-Protected Code Integrity)、啟用 Windows Defender Credential Guard、部署 EDR 核心回呼監控、定期離線掃描 (Windows Defender Offline)。
Autoruns 是「手術刀」,精準切除驅動級惡意碼。但工具終有極限,系統級防護 (VBS/HVCI/EDR) 才是常態化防線。