軟體限制原則技術概觀

適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012

本主題描述軟體限制原則、使用功能的時機和方式、過去版本中已實作的變更,並提供其他資源的連結,以協助您從 Windows Server 2008 和 Windows Vista 開始建立及部署軟體限制原則。

簡介

軟體限制原則為系統管理員提供群組原則驅動機制,以識別軟體並控制其在本機電腦上執行的能力。 這些原則可用來保護執行 Microsoft Windows 作業系統的電腦 (從 Windows Server 2003 和 Windows XP 專業版開始) 以防止已知衝突,並保護電腦免遭受惡意病毒和特洛伊木馬程式等安全性威脅。 您也可以使用軟體限制原則,來建立高限制性的電腦設定,您可以只允許執行特別識別出的應用程式。 軟體限制原則已與 Microsoft Active Directory 和群組原則整合。 您也可以在獨立電腦上建立軟體限制原則。

軟體限制原則是信任原則,這些原則是由系統管理員設定的規範,可以限制未受到完全信任的指令碼和其他程式碼的執行。 本機群組原則編輯器的軟體限制原則延伸模組提供單一使用者介面,您可以透過此介面,限制在本機電腦或整個網域中管理應用程式使用方式的設定。

程序

軟體限制原則使用案例

商務使用者會使用電子郵件、立即訊息和點對點應用程式來共同作業。 隨著這些共同作業的增加,特別是在商務運算中使用網際網路,來自惡意程式碼的威脅也是如此,例如蠕蟲、病毒和惡意使用者或攻擊者威脅。

使用者可能會收到許多形式的惡意程式碼,範圍從原生 Windows 可執行檔 (.exe 檔案),到文件內的巨集 (例如 .doc 檔案),以至於指令碼 (例如 .vbs 檔案)。 惡意使用者或攻擊者通常會使用社交工程方法來讓使用者執行包含病毒和蠕蟲的程式碼。 (社交工程是欺騙人們揭露其密碼或某種形式安全資訊的術語。)如果啟用此類程式碼,它可以在網路上產生阻斷服務攻擊、將機密或私人資料傳送至網際網路、使電腦的安全性處於風險中,或損壞硬碟的內容。

IT 組織和使用者必須能夠判斷哪些軟體是可以安全執行,而哪些軟體不是。 由於惡意程式碼可能的數量和形式眾多,這會成為一項艱巨的任務。

為了協助保護其網路電腦免於惡意程式碼和未知或不支援軟體的危害,組織可以在整體安全性策略中實作軟體限制原則。

系統管理員可以針對下列工作使用軟體限制原則:

  • 定義什麼是受信任的程式碼

  • 針對規範指令碼、可執行檔,以及 ActiveX 控制項設計彈性的群組原則。

軟體限制原則是透過遵循軟體限制原則的作業系統和應用程式 (例如,指令碼應用程式) 強制執行的。

具體而言,系統管理員可以基於下列目的使用軟體限制原則:

  • 指定要在用戶端電腦上執行哪一個軟體 (可執行檔)

  • 防止使用者在共用電腦上執行特定的程式

  • 指定誰可以將受信任的發行者新增至用戶端電腦

  • 設定軟體限制原則的範圍 (指定原則是否會影響用戶端電腦上的所有使用者或使用者子集)

  • 防止可執行檔在本機電腦、組織單位 (OU)、站台或網域上執行。 當您未使用軟體限制原則來處理惡意使用者的潛在問題時,這個狀況便適用此做法。

功能的差異和變更

Windows Server 2012 和 Windows 8 的 SRP 功能沒有變更。

支援的版本

軟體限制原則只能在至少執行 Windows Server 2003 的電腦上設定及套用,包括 Windows Server 2012 和至少 Windows XP,包括 Windows 8。

注意

從 Windows Vista 開始的特定 Windows 用戶端作業系統版本沒有軟體限制原則。 未由群組原則在網域中管理的電腦可能不會收到分散式原則。

比較軟體限制原則和 AppLocker 中的應用程式控制功能

下表比較軟體限制原則 (SRP) 功能和 AppLocker 的功能。

應用程式控制函式 SRP AppLocker
範圍 SRP 原則可以套用到從 Windows XP 和 Windows Server 2003 開始的所有 Windows 作業系統。 AppLocker 原則僅適用於 Windows Server 2008 R2、Windows Server 2012、Windows 7 和 Windows 8。
原則建立 SRP 原則是透過群組原則維護,且只有 GPO 的系統管理員可以更新 SRP 原則。 本機電腦上的系統管理員可以修改本機 GPO 中定義的 SRP 原則。 AppLocker 原則會透過群組原則進行維護,而且只有 GPO 的系統管理員才可以更新該原則。 本機電腦上的系統管理員可以修改本機 GPO 中定義的 AppLocker 原則。

AppLocker 允許自訂錯誤訊息,將使用者導向至網頁尋求協助。

原則維護 SRP 原則必須使用本機安全性原則嵌入式管理單元 (如果原則是在本機建立) 或群組原則管理主控台 (GPMC) 進行更新。 您可以使用本機安全性原則嵌入式管理單元 (如果原則是在本機建立)、GPMC 或 Windows PowerShell AppLocker Cmdlet 來更新 AppLocker 原則。
原則套用 SRP 原則會透過群組原則散發。 AppLocker 原則會透過群組原則散發。
強制模式 SRP 適用於「拒絕清單模式」,系統管理員可以建立他們不想在此企業中允許的檔案規則,而其餘的檔案預設允許執行。

SRP 也可以在「允許清單模式」中設定,因此預設會封鎖所有檔案,而系統管理員必須針對想要允許的檔案建立允許規則。

AppLocker 預設可在「允許清單模式」中運作,其中僅具有相符允許規則的檔案允許執行。
可控制的檔案類型 SRP 可以控制下列檔案類型:

- 可執行檔
- Dll
- 指令碼
- Windows 安裝程式

SRP 無法個別控制每個檔案類型。 所有 SRP 規則都在單一規則集合中。

AppLocker 可以控制下列檔案類型:

- 可執行檔
- Dll
- 指令碼
- Windows 安裝程式
- 封裝的應用程式和安裝程式 (Windows Server 2012 和 Windows 8)

AppLocker 會針對五種檔案類型維護個別的規則集合。

指定的檔案類型 SRP 支援檔案類型被視為可執行檔的可延伸檔案類型清單。 系統管理員可以為應視為可執行檔的檔案新增延伸模組。 AppLocker 不支援此專案。 AppLocker 目前支援下列副檔名:

- 可執行檔 (.exe、.com)
- Dll (.ocx、.dll)
- 指令碼 (.vbs、.js、.ps1、.cmd、.bat)
- Windows 安裝程式 (.msi、.mst、.msp)
- 已封裝應用程式安裝程式 (.appx)

規則類型 SRP 支援四種類型的規則:

- 雜湊
- 路徑
- 簽章
- 網際網路區域

AppLocker 支援三種類型的規則:

- 雜湊
- 路徑
- 發行者

編輯雜湊值 SRP 可讓系統管理員提供自訂雜湊值。 AppLocker 會計算雜湊值本身。 在內部,其會針對可攜式可執行檔 (Exe 和 Dll) 和 Windows 安裝程式 使用 SHA1 Authenticode 雜湊,並針對其餘部分使用 SHA1 一般檔案雜湊。
支援不同的安全性層級 使用 SRP 系統管理員,可以指定應用程式以哪種權限來執行。 因此,系統管理員可以設定規則,讓記事本一律以受限制的權限執行,且永遠不會具有系統管理權限。

Windows Vista 和更早版本上的 SRP 支援多個安全性層級。 在 Windows 7 上,該清單僅限於兩個層級:[不允許] 和 [不受限制] (基本使用者轉譯為 [不允許])。

AppLocker 不支援安全性層級。
管理已封裝應用程式與已封裝應用程式安裝程式 無法 .appx 是 AppLocker 可以管理的有效檔案類型。
將規則設為以使用者或使用者群組為目標 SRP 規則會套用至特定電腦上的所有使用者。 AppLocker 規則可以設為以特定使用者或使用者群組為目標。
支援規則例外狀況 SRP 不支援規則例外狀況 AppLocker 規則可以有例外狀況,以允許系統管理員建立規則,例如「允許來自 Windows 的所有內容,但 Regedit.exe 除外」。
支援稽核模式 SRP 不支援稽核模式。 測試 SRP 原則的唯一方法是設定測試環境並執行一些實驗。 AppLocker 支援稽核模式,可讓系統管理員在實際生產環境中測試其原則的效果,而不會影響使用者體驗。 一旦您滿意結果,您就可以開始強制執行原則。
支援匯出和匯入原則 SRP 不支援原則匯入/匯出。 AppLocker 支援匯入和匯出原則。 這可讓您在範例電腦上建立 AppLocker 原則、測試該原則,然後匯出該原則,並將其匯回所需的 GPO。
規則強制執行 在內部,SRP 規則強制執行會在較不安全的使用者模式中發生。 在內部,Exes 和 Dll 的 AppLocker 規則會在核心模式中強制執行,這比在使用者模式中強制執行更為安全。

系統需求

軟體限制原則只能在至少執行 Windows Server 2003 和 Windows XP 的電腦上設定及套用。 需要群組原則才能發佈包含軟體限制原則的群組原則物件。

軟體限制原則元件和架構

軟體限制原則為符合軟體限制原則的作業系統和應用程式提供機制,以限制軟體程式的執行階段執行。

概括而言,軟體限制原則包含下列元件:

  • 軟體限制原則 API。 應用程式開發介面 (API) 可用來建立和設定構成軟體限制原則的規則。 另有軟體限制原則 API,可用於查詢、處理及強制執行軟體限制原則。

  • 軟體限制原則管理工具。 這包括本機群組原則物件編輯器嵌入式管理單元的軟體限制原則延伸模組,系統管理員會用來建立和編輯軟體限制原則。

  • 呼叫軟體限制原則 API 的一組作業系統 API 和應用程式,可在執行階段提供軟體限制原則的強制執行。

  • Active Directory 和群組原則。 軟體限制原則取決於群組原則基礎結構,將軟體限制原則從 Active Directory 傳播至適當的用戶端,以及將這些原則的應用程式範圍界定並篩選至適當的目標電腦。

  • Authenticode 和 WinVerify 信任用來處理已簽署可執行檔的 API。

  • 事件檢視器。 軟體限制原則所使用的函式會將事件記錄至事件檢視器記錄。

  • 原則結果組 (RSoP),可協助診斷將套用至用戶端的有效原則。

如需 SRP 架構的詳細資訊、SRP 如何管理規則、程序和互動,請參閱 Windows Server 2003 技術程式庫中的軟體限制原則運作方式

最佳作法

請勿修改預設網域原則。

  • 如果您未編輯預設網域原則,當您的自訂網域原則發生問題時,一律可以選擇重新套用預設網域原則。

為軟體限制原則建立個別的群組原則物件。

  • 如果您為軟體限制原則建立個別的群組原則物件 (GPO),您可以在緊急情況下停用軟體限制原則,而不需停用網域原則的其餘部分。

如果您在套用的原則設定時遇到問題,請以安全模式重新啟動 Windows。

  • 當 Windows 以安全模式啟動時,不會套用軟體限制原則。 如果您意外鎖定具有軟體限制原則的工作站,請以安全模式重新啟動電腦、以本機系統管理員身分登入、修改原則、執行 gpupdate、重新啟動電腦,然後正常登入。

定義 [不允許] 的預設設定時請特別注意。

  • 當您定義 [不允許] 的預設設定時,除了明確允許的軟體之外,不允許所有軟體。 您想要開啟的任何檔案都必須有允許其開啟的軟體限制原則規則。

  • 若要保護系統管理員避免將自己鎖定在系統之外,當預設安全性層級設定為 [不允許] 時,系統會自動建立四個登錄路徑規則。 您可以刪除或修改這些登錄路徑規則;不過,並不建議這麼做。

為了獲得最佳安全性,請使用存取控制清單搭配軟體限制原則。

  • 使用者可能會嘗試藉由重新命名或移動不允許的檔案,或覆寫不受限制的檔案,來規避軟體限制原則。 因此,建議您使用存取控制清單 (ACL) 來拒絕使用者執行這些工作所需的存取權。

在測試環境中徹底測試新的原則設定,再將原則設定套用至您的網域。

  • 新的原則設定可能會與原先預期的行為不同。 當您跨網路部署原則設定時,測試會降低遇到問題的機會。

  • 您可以設定與組織網域不同的測試網域,以在其中測試新的原則設定。 您也可以建立測試 GPO 並將其連結至測試組織單位,以測試原則設定。 當您與測試使用者徹底測試原則設定時,您可以將測試 GPO 連結至您的網域。

  • 請勿在沒有測試的情況下將程式或檔案設定為 [不允許],以查看效果可能是什麼。 特定檔案的限制可能會嚴重影響電腦或網路的作業。

  • 輸入不正確或輸入錯誤的資訊可能會導致未如預期執行的原則設定。 在套用新原則設定之前測試新的原則設定,可以防止非預期的行為。

根據安全性群組中的成員資格篩選使用者原則設定。

  • 您可以清除 [套用群組原則] 和 [讀取] 核取方塊,以指定不想套用原則設定的使用者或群組,這些核取方塊位於 GPO 屬性對話方塊的 [安全性] 索引標籤上。

  • 拒絕讀取權限時,電腦不會下載原則設定。 因此,下載不必要的原則設定會耗用較少的頻寬,這可讓網路更快速地運作。 若要拒絕讀取權限,請針對 [讀取] 核取方塊選取 [拒絕],其位於 GPO 屬性對話方塊的 [安全性] 索引標籤上。

  • 連結到另一個網域或網站中的 GPO 可能會導致效能不佳。

其他資源

Content type 參考資料
規劃 軟體限制原則技術參考
Operations 管理軟體限制原則
疑難排解 軟體限制原則疑難排解 (2003)
安全性 軟體限制原則的威脅和對策 (2008)

軟體限制原則的威脅和對策 (2008 R2)

工具及設定 軟體限制原則工具和設定 (2003)
社群資源 使用軟體限制原則鎖定應用程式