萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 健康知識

流氓軟體與反流氓技術演進史:從使用者模式到核心層對抗的軍備競賽

流氓軟體 (Rogue Software) 與反流氓工具的對抗,宛如軍備競賽,從使用者模式的註冊表啟動、BHO 掛鉤、進程快照,演進至核心模式的驅動程式過濾、SSDT Hook、Rootkit 隱藏技術。本文系統梳理雙方十輪攻防演進,揭示技術本質與防禦啟示。

第一階段:使用者模式攻防 (Ring 3)

流氓軟體持久化與監控手法

  1. 註冊表自啟:Run、RunOnce、Winlogon\Userinit、BootExecute。
  2. 瀏覽器劫持:BHO (Browser Helper Object) 掛載 IE 事件;IURLSearchHook 攔截未知 URL。
  3. 進程監控:Toolhelp32 快照輪詢 CreateToolhelp32Snapshot;或 API Hook CreateProcess 攔截瀏覽器啟動。
  4. LSP (Layered Service Provider):插入 Winsock 協議鏈,攔截應用層封包。
  5. 各式 Hook:IAT Hook、Inline Hook、Message Hook (鍵盤/滑鼠/訊息)。

反流氓對策 (Ring 3)

  • 掃描啟動項、BHO、LSP、計畫任務、服務;刪除註冊表鍵值與檔案。
  • 工具:超級兔子、完美卸載、木馬克星、早期 360 安全衛士 (用戶模式掃描)。
  • 弱點:流氓程式若以執行緒監控註冊表、Hook OpenProcess 拒絕終止、注入系統進程 (explorer.exe、services.exe),用戶模式工具束手無策。

第二階段:核心模式對抗 (Ring 0)

流氓軟體升級核心驅動防護

  1. 檔案系統過濾驅動:攔截 IRP_MJ_CREATE/SET_INFORMATION,阻止刪除/重命名自身檔案。
  2. SSDT/Shadow SSDT Hook:替換 ZwCreateFile、ZwSetInformationFile、ZwDeleteKey、ZwSetValueKey 等系統服務,保護檔案/登錄表/進程。
  3. DKOM (Direct Kernel Object Manipulation):從 EPROCESS 鏈表移除自身進程、隱藏埠口、竄改系統時間。
  4. 遠端執行緒注入:CreateRemoteThread 將代碼注入系統進程,達成隱藏與持久化。

反流氓核心層對策

  • 優先載入順序搶佔 (PNP_TDI 群組) 建立同名裝置物件,阻礙流氓驅動載入 (360 早期策略)。
  • 直接發送 IRP 至檔案系統驅動 (繞過過濾層) 強制刪除檔案;直接操作登錄表配置單元 (Hive) 刪除鍵值。
  • 核心回調 (PsSetCreateProcessNotifyRoutine, CmRegisterCallback) 監控惡意行為。

第三階段:Rootkit 與硬體層面

  • 流氓嘗試修補檔案系統驅動 (ntfs.sys/fastfat.sys) 或磁碟類別驅動,實現「硬體級」隱藏與保護——即 Rootkit 定義:修改作業系統核心元件。
  • Windows 核心簽章強制 (Driver Signature Enforcement)、VBS (虛擬化基礎安全)、HVCI (超視碼器保護程式碼完整性) 大幅提升 Rootkit 開發門檻。
  • 反作弊/反惡意碼產品轉向超視碼器層 (Hypervisor/EL3) 監控,實現更高權限的完整性量測。

啟示與防禦策略

  1. 預防優於清除:應用程式白名單、驅動程式簽章強制、安全啟動 (Secure Boot) 從源頭阻絕未授權代碼執行。
  2. 分層防護:EDR (端點偵測回應) + HIPS (主機入侵防禦) + 網流量分析 (NDR) 多層次能見度。
  3. 屬性驗證:啟用 Windows Defender Application Control (WDAC) 或 AppLocker,僅允許受信任簽章的核心模組載入。
  4. 威脅情報共享:訂閱商業/開源 IOC Feed,縮短從發現到封鎖的時間窗。

流氓軟體演變史,本質上是「權限提升與隱藏技術」的疊代。防禦者無法永遠贏在技術細節上,唯有建立「預設拒絕、持續驗證、最小權限」的系統架構,才能在軍備競賽中立於不敗之地。

copyright © 萬盛學電腦網 all rights reserved