萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Windows Server 2008 教學

Windows Server 2008 資料執行保護 (DEP) 配置指南:保護關鍵應用程式免受緩衝區溢位攻擊

資料執行保護 (Data Execution Prevention, DEP) 是硬體與作業系統協同的安全機制,標記記憶體頁面為不可執行,阻止惡意程式碼在資料區 (堆疊、堆積) 執行。Windows Server 2008 預設僅保護核心系統服務,本文說明如何擴展 DEP 保護範圍至指定應用程式,並處理相容性衝突。

DEP 運作模式

  • 硬體強制 DEP: 需 CPU 支援 NX (AMD) / XD (Intel) 位元,由核心執行,效能影響極小。
  • 軟體模擬 DEP: 無硬體支援時由核心模擬,僅保護 SEH (結構化例外處理) 鏈,效能影響較大。

配置 DEP 保護特定應用程式 (選擇退出模式)

預設為「僅為基本 Windows 程式和服務啟用 DEP」 (選擇退出模式)。若需保護特定第三方應用 (如資料庫、Web 伺服器、自製服務),需將其加入保護清單:

  1. 「電腦」右鍵「內容」→「進階系統設定」→「進階」索引標籤 →「效能」區域「設定」。
  2. 「資料執行保護」索引標籤 → 選擇「為除下列選取之程式以外的所有程式和服務啟用 DEP」 (全域保護模式,較安全)。
  3. 點選「新增」→ 瀏覽選取目標應用程式執行檔 (如 C:\Program Files\MyApp\MyApp.exe) → 開啟。
  4. 確定套用 → 系統提示重新開機生效。

處理 DEP 相容性衝突 (將應用程式排除保護)

舊版應用 (特別是使用舊版 Delphi、VB6、某些即時編譯器) 可能因合法動態程式碼產生觸發 DEP 終止。排除步驟:

  1. 同樣進入「資料執行保護」索引標籤。
  2. 在「為除下列選取之程式以外的所有程式和服務啟用 DEP」清單中,找到有問題的應用程式。
  3. 選取該程式 →「移除」→ 確定 → 重新開機。
最佳實務: 優先嘗試向廠商取得相容 DEP 的更新版本;若必須排除,請記錄風險並納入例外管理清單,定期檢視是否可移除例外。

命令列查詢與設定 (適合腳本化)

  • 查詢目前 DEP 狀態:wmic OS Get DataExecutionPrevention_SupportPolicy, DataExecutionPrevention_Available, DataExecutionPrevention_Drivers, DataExecutionPrevention_32BitApplications
    回傳值:0=永遠關閉, 1=僅啟用核心, 2=全部開啟 (選擇退出), 3=全部開啟 (全域)。
  • 設定為全域保護 (3):bcdedit /set nx AlwaysOn (需重開機)。
  • 設定為選擇退出 (2):bcdedit /set nx OptIn (預設)。

驗證 DEP 生效

  1. 下載 Microsoft 官方測試工具 DepTest.exe (或自行編寫簡單緩衝區溢位測試程式)。
  2. 執行測試程式,觀察是否觸發「為了保護您的電腦,Windows 已關閉此程式」對話框,事件檢視器「系統」記錄來源 Application Error 事件 ID 1000 會記錄 DEP 違規詳細資訊。

正確配置 DEP 是 Windows Server 2008 纵深防禦的關鍵一環,能以近乎零效能成本阻斷大類記憶體損壞漏洞利用,建議對所有面向網路、處理非受信資料的關鍵服務強制啟用硬體 DEP 保護。

copyright © 萬盛學電腦網 all rights reserved