Windows XP 用戶端的軟體限制原則

Overview

發佈日期: 2003 年 5 月 22 日 | 更新日期: 2006 年 4 月 13 日

本頁內容

本單元內容
目標
適用於
如何使用本單元
軟體限制原則
軟體限制原則結構
軟體限制原則選項
軟體限制原則的設計與部署
總結

本單元內容

Microsoft® Windows® XP Professional 以及 Microsoft Windows Server™ 2003 提供稱為「軟體限制原則」的功能,讓系統管理員可以控制軟體在本機電腦上執行的能力。如此便能讓系統管理員阻止使用者執行未獲得授權的軟體,並進一步防範病毒與特洛伊木馬程式。「軟體限制原則」整合在「群組原則」中,所以可以在 Microsoft Active Directory® 目錄服務網域中部署。軟體限制原則也可以部署在獨立的電腦上。

回到頁首

目標

透過此單元即可:

  • 設計與部屬軟體限制原則。

  • 選取適用的規則類型並用來識別軟體。

  • 控制軟體限制原則所使用的檢查層級。

  • 設定軟體限制原則,讓系統管理員永遠可以執行軟體。

回到頁首

適用於

本單元適用於下列產品及技術:

  • 在 Windows Server 2003 網域中的 Windows XP Professional Service Pack (SP) 1 用戶端

  • 獨立 Windows XP Professional SP1 用戶端

回到頁首

如何使用本單元

本單元將詳細描述「軟體限制原則」,以及如何運用此原則來控制在本端電腦上執行軟體的能力。

若要充分瞭解此單元:

回到頁首

軟體限制原則

軟體限制原則提供系統管理員一個原則導向的機制,用以識別軟體並控制其在本機電腦上執行的能力。這些原則可以保護在您環境中執行 Windows XP Professional 的電腦,針對已知的惡意病毒和特洛伊木馬程式採取防範措施。軟體限制原則可以與 Active Directory 和群組原則完全地整合。您也可以在獨立電腦上使用。

本單元的結構與本指南的其他單元不同,因為軟體限制原則的性質較為特殊。先前的單元採用建議的「群組原則」設定選項,但本單元則需要系統管理員先定義可以在環境中之用戶端上執行的應用程式,然後再決定要套用到用戶端的限制原則。

軟體限制原則一開始會針對群組原則物件 (GPO) 採用沒有限制或不允許之設定與規則的預設安全性層級。您可以將原則套用到整個網域,或僅套用到您環境中的本機電腦或使用者。軟體限制原則提供各種識別軟體的方法,和以原則為主的基礎結構,以管理識別的軟體之執行規則。使用者執行軟體程式時,他們必須遵守系統管理員在軟體限制原則中所訂定的指引。

您可以使用軟體限制原則,來執行下列事項:

  • 控制哪些軟體可以在環境中的用戶端上執行。

  • 限制使用者針對多重使用者電腦上之特定檔案的存取。

  • 決定誰可以在用戶端上新增受信任的發行者。

  • 定義原則是否套用到所有的使用者,或僅適用於用戶端上的部份使用者。

  • 避免可執行檔案在本機電腦、組織單位 (OU)、站台或網域上執行。

回到頁首

軟體限制原則結構

軟體限制原則的結構提供下列進階功能:

  • 原則的強制能夠以網域或本機電腦為基礎。系統管理員可以建立原則,然後定義哪些應用程式屬於受信任的。原則會在執行時期強制實行,且使用者並不會接收到任何可讓他們選擇是否要執行可執行檔的提示。

  • 不僅套用到可執行檔的原則。軟體的定義其實並不明確。原則所提供的是對 Microsoft Visual Basic® Scripting Edition (VBScript)、Microsoft JScript® 以及其他指令碼語言的控制。其中也整合 Windows Installer 的功能,以控制可以在用戶端上安裝的軟體封裝。此功能包括一則應用程式介面 (API),可以用來協調原則執行時期和其他執行時期。

  • 可擴充的原則。在大型企業環境中,原則必須具可管理性,以因應各種機器類型與應用程式;但同時也需要能夠在獨立環境中執行。軟體限制原則可以運用 Active Directory 和群組原則,以提高可管理性。原則會儲存在 GPO 中。您也可以在獨立、非網域環境中使用此原則功能,方法是將 GPO 儲存為本機電腦原則物件。

  • 具彈性的原則。系統管理員可以彈性地禁止未授權指令檔的執行、管理 Microsoft ActiveX 控制項,或鎖定用戶端。

  • 可以啟用嚴格密碼編譯法的原則,以識別軟體。原則可以透過雜湊、憑證或簽章來識別軟體。

執行軟體限制原則結構的方法,分為三個階段:

  1. 系統管理員或受委派的單位使用群組原則 Microsoft Management Console (MMC) 嵌入式管理單元,為 Active Directory 容器站台、網域或 OU 建立原則。Microsoft 建議為軟體限制原則建立獨立的 GPO。

    注意:若要為本機獨立電腦建立新的軟體限制原則,您就必須屬於本機電腦上的系統管理員 群組成員。若要組態這些設定,請按一下 [Windows 設定]、[安全性設定],然後 [軟體限制原則]。

  2. 電腦層級的原則就會下載,並在啟動時生效。使用者原則會在使用者登入系統或網域之後生效。若要更新原則,可以使用「gpupdate.exe /force」指令進行存取。

  3. 使用者啟動程式或指令檔、作業系統或 Scripting Host 時,原則就會根據相關的優先權規則,判斷是否可以執行。

沒有限制或不允許之設定

軟體限制原則分為兩個部份:

  • 針對可以執行之程式的預設規則

  • 預設規則的例外。

您可以將識別軟體的預設規則設定為 [沒有限制] 或 [不允許] - 亦等於可執行或不可執行。

將預設規則設定為 [沒有限制],即可讓系統管理員定義例外,或定義不允許執行的程式。在較為鬆懈的環境中,可以讓用戶端使用 [沒有限制] 預設設定。例如,只要建立阻擋規則,就可以避免使用者安裝會與現有程式發生衝突的程式。

較安全的方法,是將預設規則設定為 [不允許],然後僅允許執行特定的程式集。使用 [不允許] 預設設定時,系統管理員就必須定義各個應用程式的規則,並確保使用者電腦上的安全性設定均為正確,才能存取他們可以執行的應用程式。[不允許] 是建議的預設設定,以保障 Windows XP 用戶端的安全。

四項識別軟體的規則

軟體限制原則中的規則,會識別一或多項應用程式,並指定是否允許它們執行。規則的建立主要包括應用程式的識別,然後將它們識別為 [不允許] 預設設定的例外。每一個規則都可以包含註解,以說明其用途。Windows XP 的內建強制引擎會先查詢軟體限制原則中的規則,才決定是否允許程式執行。

軟體限制原則會使用下列四項規則,來識別軟體:

  • 雜湊規則 - 使用可執行檔的密碼編譯指紋。

  • 憑證規則 - 使用 .exe 檔案的軟體發行者數位簽章憑證。

  • 路徑規則 - 使用本機的通用命名慣例 (Universal Naming Convention,UNC) 或 .exe 檔案位置的登錄路徑。

  • 區域規則 - 使用可執行檔起始的網際網路區域 (如果是透過 Microsoft Internet Explorer 下載)。

雜湊規則

雜湊有如指紋,可以唯一識別軟體程式或可執行檔,既使該程式或可執行檔被移動或重新命名。如此一來,系統管理員就可以使用雜湊來追蹤可執行檔或程式的特定版本,以控制使用者是否能夠執行。當程式有安全性或隱私方面的漏洞,或可能造成系統不穩定時,此功能就很重要。

雜湊規則會保持程式的唯一識別性,因為雜湊規則的比對方式,是採用基於檔案內容的密碼編譯計算法。會受雜湊規則影響的檔案類型列於<軟體限制原則>之詳細資料窗格的「指定的檔案類型」區段中。

雜湊規則在靜態環境中的效果很好。如果用戶端的軟體經常升級,就需要在更新之後,重新套用雜湊到每一個程式的可執行檔。雜湊規則非常適用於變更或升級動作不會套用到程式之可執行檔的環境。

雜湊規則包含下列三項資料,以冒號分隔:

  • MD5 或安全雜湊演算法 (Secure Hash Algorithm,SHA-1) 雜湊值

  • 檔案長度

  • 雜湊演算法 ID 號碼

數位簽章檔案會在簽章中使用雜湊值,其中可以是 MD5 或 SHA-1。非數位簽章的可執行檔採用 MD5 雜湊值。

雜湊規則的格式如下:

[MD5 或 SHA1 雜湊值]:[檔案長度]:[雜湊演算法 ID]

下列雜湊規則範例是一個長度為 126 位元、內容符合 MD5 雜湊值 (由雜湊演算法識別碼 32771 判斷) 的檔案,且雜奏演算法如下 7bc04acc0d6480af862d22d724c3b049:

7bc04acc0d6480af862d22d724c3b049:126:32771

系統管理員要限制或允許的每一個檔案中,都需要包含雜湊規則。軟體更新之後,系統管理員就必須為每一個應用程式建立新的雜湊規則,因為原始可執行檔的雜湊值通常都會被覆寫。使用下列步驟,即可將雜湊規則套用到現存的可執行檔。

  • 若要將雜湊規則套用到現存的可執行檔

    1. 在 [群組原則物件編輯器] 的工具列上,按一下 [Windows 設定]、[安全性設定]、[軟體限制原則],然後在 [其他原則] 上按一下滑鼠右鍵。

    2. 按一下捷徑功能表上的 [新增雜湊規則]。

      [圖 1] [新增雜湊規則] 對話方塊

    3. 按一下 [瀏覽] 以選取您要進行雜湊的檔案。此範例中的可執行檔是 Excel.exe。新的檔案雜湊值會顯示在 [檔案雜湊:]方塊中。應用程式的版本資訊則會顯示在 [檔案資訊:]方塊中。

    4. 選取此規則的預設安全性層級設定。其中的選項包括:

      • 不允許

      • 沒有限制

憑證規則

憑證規則會指定以程式碼簽章的軟體發行者憑證。例如,系統管理員可以要求所有指令檔和 ActiveX 控制項,都需要有簽署的憑證。符合憑證規則、被允許的來源包括:

  • 商業憑證授權單位 (CA),例如 VeriSign。

  • Microsoft Windows 2000 或 Windows Server 2003 公開金鑰基礎架構 (Public Key Infrastructure,PKI)。

  • 自動簽署的憑證。

憑證規則是較強的軟體識別方法,因為它使用簽署檔案中之簽章的簽署雜湊,來比對檔案,所以不受檔案名稱或位置的影響。您可以使用雜湊規則來設定憑證規則的例外。

啟用憑證規則

憑證規則在預設的狀態下不會啟用。若要啟用規則,請執行下列步驟。

  • 若要啟用憑證規則

    1. 在 [群組原則物件編輯器] 中開啟 GPO。

    2. 在主控台樹狀目錄中,按一下 [安全性選項]。

    3. 在詳細資料窗格中,連按兩下 [系統設定:於軟體限制原則對 Windows 可執行檔使用憑證規則]。

    4. 按一下 [啟用],即可使用憑證規則。

大多數的商業網站都透過商業 CA 進行軟體的程式碼簽章。這些憑證的有效期限通常為一年或數年。使用憑證規則時,要注意憑證的到期日。您可能可以聯絡軟體發行者,以瞭解所發行之憑證的到期日資訊。接收到商業 CA 的憑證時,您可以將其匯出到檔案,以建立憑證規則。若要匯出憑證,請執行下列步驟。

  • 若要匯出憑證

    1. 選取發行憑證之受信任的發行者。在此範例中,憑證發行者是 Microsoft MSN®。

      [圖 2] 顯示受信任之發行者的安全性警告對話方塊

    2. 按一下 [詳細資料] 索引標籤。

      **注意:**將此憑證複製到檔案,然後用來建立「憑證規則」。

      [圖 3] [憑證] 對話方塊中的 [詳細資料] 索引標籤

    3. 出現 [憑證匯出精靈] 歡迎畫面。按 [下一步] 繼續。

      [圖 4] [憑證匯出精靈] 歡迎畫面

    4. 在 [匯出檔案格式] 頁面上,選取 [DER 編碼二位元 X.509 (.CER)],然後按一下[下一步],即可建立副檔名為 .cer 的憑證檔案。

      [圖 5] [憑證匯出精靈] 的 [匯出檔案格式] 畫面,顯示選取的編碼方法

    5. 在 [要匯出的檔案] 頁面上,指定憑證規則的描述性檔案名稱。憑證就會匯出到 Windows XP 的「憑證目錄」中。

      [圖 6] [憑證匯出精靈] 的 [要匯出的檔案] 畫面,顯示一個範例檔案名稱

    6. [完成憑證匯出精靈] 頁面就會出現,其中的清單會顯示憑證檔案所指定的設定。檢閱設定,然後按一下 [完成] 即可匯出檔案。

      [圖 7] [完成憑證匯出精靈] 畫面,顯示指定的設定

      您現在就可以使用此檔案來建立憑證規則。

      [圖 8] [新增憑證規則] 對話方塊,顯示指定的設定

路徑規則

路徑規則會指定資料夾或程式的完整路徑。路徑規則指定資料夾時,就會比對該資料夾和相關子資料夾內的程式。路徑規則支援本機以及 UNC 路徑。

系統管理員必須在路徑規則中,針對啟動某應用程式所涉及的相關目錄進行定義。例如,如果系統管理員在桌面上建立了啟動某應用程式的捷徑,則在路徑規則中,使用者就必須同時具備可執行檔以及捷徑路徑的存取權限,才能執行該應用程式。如果使用者僅具備其中一個路徑的存取權限,就會觸發 [軟體受限] 的警告。

許多應用程式會在執行 Windows XP Professional 的電腦,使用 %ProgramFiles% 變數來安裝檔案到硬碟上。如果此變數設定為不同磁碟機的另一個目錄,某些應用程式仍然會將檔案複製到原始的 C:\Program Files 子目錄中。因此,最佳準則是將路徑規則定義為預設的目錄位置。

在路徑規則中使用環境變數

您可以定義使用環境變數的路徑規則。由於路徑規則都是在用戶端環境中進行評估,環境變數的使用可以讓系統管理員根據特定使用者的環境進行調適。下列兩個範例顯示如何在路徑規則中套用環境變數。

  • "%UserProfile%" 符合「C:\Documents and Settings\User」以及此目錄中的所有子資料夾。

  • "%ProgramFiles%\Application" 符合「C:\Program Files\Application」以及此目錄中的所有子資料夾。

注意: 環境變數並不受存取控制清單 (ACL) 保護。環境變數有兩種類型,「使用者」以及「系統」。能夠開啟命令提示字元的使用者,就可以重新定義「使用者」環境變數,將其指定為另一個路徑。只有屬於「系統管理員」群組的使用者,才可以變更「系統」環境變數。

[表 1] 包含 Windows XP Professional 中、最新的預設環境變數清單:

[表 1] Windows XP Professional 的預設環境變數

變數名稱 說明
ALLUSERSPROFILE 本機變數,會傳回 [All Users] 設定檔的位置。
APPDATA 本機變數,會傳回應用程式儲存資料的預設位置。
CD 本機變數,會傳回目前的目錄字串。
CMDCMDLINE 本機變數,會傳回啟動 Cmd.exe 程式的精確命令列。
CMDEXTVERSION 系統變數,會傳回命令處理擴充功能的版本號碼。
COMPUTERNAME 系統變數,會傳回電腦的名稱。
COMSPEC 系統變數,會傳回命令殼層可執行檔的精確路徑。
DATE 系統變數,會傳回目前的日期。此變數的格式與「date /t」命令相同。Cmd.exe 程式會產生此變數。有關其他詳細資訊,請參閱「Date」命令。
ERRORLEVEL 系統變數,會傳回最近使用過之命令的錯誤碼。非零值通常表示有錯誤。
HOMEDRIVE 系統變數,會傳回使用者在本機工作站上之主目錄的磁碟機代號。此變數的設定,會基於「本機使用者」群組和「群組」中所指定的主目錄值。
HOMEPATH 系統變數,會傳回使用者的主目錄之完整路徑。此變數的設定,會基於「本機使用者」群組和「群組」中所指定的主目錄值。
HOMESHARE 系統變數,會傳回使用者的共用主目錄之網路路徑。此變數的設定,會基於「本機使用者」群組和「群組」中所指定的主目錄值。
LOGONSEVER 本機變數,會傳回驗證目前的登入工作階段之網域控制站。
NUMBER_OF_PROCESSORS 系統變數,指定電腦上所安裝的處理器數目。
OS 系統變數,會傳回作業系統的名稱。Windows XP Professional 會將作業系統顯示為 Microsoft Windows NT®。
PATH 系統變數,指定可執行檔的搜尋路徑。
PATHEXT 系統變數,會傳回作業系統認定為可以執行的副檔名。
PROCESSOR_ARCHITECTURE 系統變數,會傳回處理器的晶片結構。值:x86、IA64。
PROCESSOR_IDENTFIER 系統變數,會傳回處理器的描述。
PROCESSOR_LEVEL 系統變數,會傳回電腦處理器的型號。
PROCESSOR_REVISION 系統變數,會傳回處理器的修訂版編號。
PROMPT 本機變數,會傳回目前直譯器的命令提示字元設定。由 Cmd.exe 產生。
RANDOM 系統變數,會傳回介於 0 和 32767 的隨機十進位數字。由 Cmd.exe 程式產生。
SYSTEMDRIVE 系統變數,會傳回含有 Windows 根目錄的磁碟機 (例如,系統根)。
SYSTEMROOT 系統變數,會傳回 Windows 根目錄的位置。
TEMP 或 TMP 系統與使用者變數,會傳回目前已登入使用者可用之應用程式的預設暫存目錄。某些應用程式需要使用 TEMP,有些則需要使用 TMP
TIME 系統變數,會傳回目前的時間。此變數的格式與「time /t」命令相同。由 Cmd.exe 產生。有關其他詳細資訊,請參閱「Time」命令。
USERDOMAIN 本機變數,會傳回含有使用者帳戶的網域名稱。
USERNAME 本機變數,會傳回目前已登入使用者的姓名。
USERPROFILE 本機變數,會傳回目前使用者的設定檔位置。
WINDIR 系統變數,會傳回作業系統目錄的位置。
**在路徑規則中使用萬用字元** 路徑規則可以使用「?」和「\*」萬用字元。下列範例顯示如何在不同的路徑規則中套用萬用字元。 - "\\\\DC -??\\login$" 符合 \\\\DC - 01\\login$、\\\\DC - 02\\login$ 等等。 - 「\*\\Windows」符合「C:\\Windows」、「D:\\Windows」、「E:\\Windows」,以及各個目錄中的子資料夾。 - 「C:\\win\*」符合「C:\\winnt」、「C:\\windows」、「C:\\windir」,以及各個目錄中的子資料夾。 - 「\*.vbs」符合任何 Windows XP Professional 中、具此副檔名的應用程式。 - 「C:\\Application Files\\\*.\*」符合指定子目錄中的所有應用程式檔案。 **登錄路徑規則** 許多應用程式會將安裝資料夾或應用程式目錄的路徑,儲存在 Windows 登錄中。有些應用程式可以安裝在檔案系統的任何位置。若要找到它們,您可以建立路徑規則,以查詢這些登錄機碼。 這些位置可能無法單純地透過特定資料夾路徑 (例如 C:\\Program Files\\Microsoft Platform SDK) 或環境變數 (例如 %*ProgramFiles*%\\Microsoft Platform SDK) 進行識別。然而,如果程式有將應用程式目錄儲存在登錄中,您就可以建立路徑規則,以使用儲存在登錄中的值,例如: **%HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Microsoft\\PlatformSDK\\Directories\\Install Dir%** 此類型的路徑規則稱為「登錄路徑規則」,格式如下: **%***<Registry Hive>***\\***<Registry Key Name>***\\***<Value Name>***%** **注意:**登錄路徑規則的尾碼,在規則的最後一個「%」符號後面,不能含有「\\」字元。登錄群組 (Registry Hive) 的名稱必須完全寫出;不能使用縮寫。 預設規則設定為 \[不允許\] 時,就會有四個登錄路徑,讓作業系統可以存取系統檔案,以利正常作業。這些登錄路徑規則的建立,是要避免您自己和其他使用者被鎖定而無法使用系統。這些登錄規則均設定為 \[沒有限制\]。僅有進階使用者才能考慮修改或刪除這些規則。登錄路徑規則的設定如下: - **%HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SystemRoot%** - **%HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SystemRoot%\\\*.exe** - **%HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SystemRoot%\\System32\\\*.exe** - **%HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ProgramFilesDir%** **路徑規則的優先權** 有多個符合的路徑規則時,符合度最高的規則會享有優先權。下列路徑的排序方法,就是以最高優先權 (符合度最高) 到最低優先權 (符合度較低) 的順序: - Drive:\\Folder1\\Folder2\\FileName.Extension - Drive:\\Folder1\\Folder2\\\*.Extension - \*.Extension - Drive:\\Folder1\\Folder2\\ - Drive:\\Folder1\\ ##### 區域規則 您可以使用區域規則,來識別透過下列 Internet Explorer 所定義之區域下載的軟體: - 網際網路 - 內部網路 - 受限制的網站 - 信任的網站 - 我的電腦 目前的網際網路區域規則版本僅適用於 Windows Installer (\*.msi) 封裝。此規則並不適用於透過 Internet Explorer 下載的軟體。所有其他受區域則影響的檔案類型,均列於本單元後續部分,關於指定的檔案類型之表格中。其中有一個指定的檔案類型清單,是由所有區域規則共用的。 ##### 路徑規則的建議 使用下列表格,以判斷哪一種路徑規則較適用於應用程式的使用者和環境。 **\[表 2\] 針對某應用程式判斷最適合的路徑規則**
工作 建議規則
允許或不允許特定的程式版本。 雜湊規則
瀏覽至檔案,以建立雜湊。
識別永遠安裝在相同位置的程式。 使用環境變數的路徑規則
%ProgramFiles%\Internet Explorer\iexplore.exe
識別可以在用戶端上安裝於任何位置的程式。 登錄路徑規則
%HKEY_LOCAL_MACHINE\SOFTWARE\ ComputerAssociates\InoculateIT\6.0\Path\HOME%
識別位於中央伺服器上的指令檔集合。 路徑規則
\\SERVER_NAME\Share
識別位於伺服器集合上的指令檔集合。例如,DC01、DC02 以及 DC03。 使用萬用字元的路徑規則
\\DC??\Share
不允許所有 .vbs 檔案,除了登入指令檔目錄中的檔案。 使用萬用字元的路徑規則
*.VBS 設定為 [不允許]
\\LOGIN_SRV\Share\*.VBS 設定為 [沒有限制]
不允許由病毒安裝、名稱為 flcss.exe 的檔案。 路徑規則
flcss.exe,設定為 [不允許]
識別可以在任何位置執行的指令檔集合。 憑證規則
使用憑證,數位簽署指令檔。
允許從信任的網際網路區域站台安裝軟體。 區域規則
將 [信任的網站] 設定為 [沒有限制]。
軟體限制原則優先權規則

規則會以特定順序進行評估。符合度較高的規則會比符合度較低的規則具有更高的優先權。如果有內容一模一樣,但安全性層級不同的規則,具較高安全性層級的規則就會享有優先權。例如,如果有兩個雜湊規則 - 其中之一的安全性層級為 [不允許],而另一個的安全性層級為 [沒有限制] - 且套用到同一個軟體程式上,則安全性層級為 [不允許] 的規則就會有優先權,因而導致程式不會被執行。以下清單定義規則的優先權,其中採用符合度最高至符合度較低的順序列出:

  1. 雜湊規則

  2. 憑證規則

  3. 路徑規則

  4. 區域規則

  5. 預設規則

回到頁首

軟體限制原則選項

此部份將討論各種強制選項,以及它們對於軟體限制原則的影響。這些選項會影響 Microsoft Authenticode® 對於數位簽章檔案之信任設定的強制行為範圍。一共有兩種強制選項:動態連結程式庫 (DLL) 檢查以及跳過系統管理員。

DLL 檢查

大部份的程式,都是由一個可執行檔以及多個支援的 DLL 所組成。在預設的狀態下,軟體限制原則規則並不會針對 DLL 進行強制。這是建議大多數客戶使用的選項,主要有三個原因:

  • 不允許主要的可執行檔,就已經可以阻止該程式的執行,所以不需要再針對所屬 DLL 進行限制。

  • DLL 檢查會降低系統效能,因為系統需要檢查所有與應用程式連結的程式庫。例如,如果使用者在一個登入工作階段中執行 10 個程式,軟體限制原則就需要評估每一個程式。開啟 DLL 檢查功能時,軟體限制原則就需要評估每一個程式所載入的 DLL。如果每一個程式使用 20 個 DLL,就需要檢查 10 個可執行檔加上 200 個 DLL,亦即軟體限制原則必須要執行 210 個評估作業。

    舉例而言,Internet Explorer 程式是由一個可執行檔 (iexplore.exe) 以及多個支援的 DLL 所組成。

  • 如果將預設安全性層級設為 [不允許],就會強迫系統在允許其執行之前,先識別主要的可執行檔,加上屬於該 .exe 檔案的 DLL,如此會增加系統的負載。

如果您的程式執行環境需要有最安全的防護,才建議您使用 [DLL 檢查] 選項。這是因為有些病毒會特別針對 DLL 下毒手,雖然大部分的病毒僅會影響可執行檔。

若要確保程式沒有病毒,您可以使用一系列雜湊規則來識別可執行檔以及所屬的 DLL。

  • 若要關閉 [DLL 檢查] 選項

在 [強制內容] 對話方塊中,選取 [所有軟體檔案。不包含程式庫 (例如 DLL)]。

[圖 9] [強制內容] 對話方塊,顯示檔案和使用者強制選項

跳過系統管理員

系統管理員通常會不允許大部分使用者執行程式,但是允許系統管理員可以執行所有程式。例如,系統管理員可能會有讓多位使用者透過 [終端機伺服器] 連接的共用電腦。系統管理員可能會要求使用者僅能在該電腦上執行特定的應用程式,但是允許本機的 [系統管理員] 群組執行任何程式。使用 [跳過系統管理員] 強制選項,即可達到此目的。

如果軟體限制原則是在連結至 Active Directory 物件的 GPO 中建立的,則 Microsoft 建議您在 GPO 中拒絕 [系統管理員] 群組 [套用群組原則] 權限,而不要使用 [跳過系統管理員] 選項。如此即可降低網路流量,因為不適用於系統管理員的 GPO 設定並不會被下載。

**注意:**定義於本機安全性原則中的軟體限制原則,無法篩選使用者群組。在此情況下,請使用 [跳過系統管理員] 選項。

  • 若要開啟 [跳過系統管理員] 選項

在 [強制內容] 對話方塊中 (如 [圖 9] 所示),選取 [所有使用者,除了本機系統管理員]。

定義可執行檔

[指定的檔案類型內容] 對話方塊 (如 [圖 10] 所示) 中,會列出軟體限制原則所掌控的檔案類型。所指定的檔案類型均視為可執行檔。例如,螢幕保護裝置檔案 (.scr) 就會被視為可執行檔,因為當您從 [Windows 檔案總管] 中連按兩下該檔案時,它就會如程式一般地載入。

軟體限制原則規則僅適用於 [指定的檔案類型內容] 對話方塊中所列出的檔案類型。如果您要套用規則到環境中所使用的其他檔案類型,就需要將該檔案類型加入到清單中。例如,針對 Perl 指令檔,您可以選擇將 .pl 和其他與 Perl 引擎相關的檔案類型加入到 [指定的檔案類型:]清單上 (位於 [指定的檔案類型內容] 對話方塊的 [一般] 索引標籤中)。

[圖 10] [指定的檔案類型內容] 對話方塊

就此範例而言,移除的檔案類型為 .mdb,加入的檔案類型為 .ocx。[表 3] 列出指定的檔案類型。

[表 3] 指定的檔案類型

副檔名 檔案的說明
.ade Microsoft Access 專案副檔名
.adp Microsoft Access 專案
.bas Visual Basic 類別模組
.bat 批次檔
.chm 已編譯 HTML 說明檔
.cmd Windows NT 指令檔
.com Microsoft MS-DOS® 應用程式
.cpl 控制台副檔名
.crt 安全性憑證
.exe 應用程式
.hlp Windows 說明檔
.hta HTML 應用程式
.inf 安裝資訊檔案
.ins 網際網路通訊設定
.isp 網際網路通訊設定
.js JScript 檔案
.jse JScript Encoded 指令檔
.lnk 捷徑
.mde Microsoft Access MDE 資料庫
.msc Microsoft Common Console 文件
.msi Windows Installer 封裝
.msp Windows Installer 修補封裝
.mst Visual Test 來源檔
.ocx Microsoft ActiveX® 控制項
.pcd Photo CD 影像檔
.pif MS-DOS 程式的捷徑
.reg 登錄項目
.scr 螢幕保護裝置
.sct Windows Script 元件
.shs Shell Scrap 物件
.url 網際網路捷徑 (Uniform Resource Locator)
.vb VB 檔案
.vbe VBScript Encoded 指令檔
.vbs VBScript 指令檔
.wsc Windows Script 元件
.wsf Windows Script 檔案
.wsh Windows Scripting Host 設定檔
##### 已知問題 既使軟體限制原則的設定有限制 16 位元程式 (例如 command.com 或 edit.com) 的執行,使用者仍然可以啟動程式,雖然他們沒有執行權限。此問題的解決之道,是在環境中的用戶端上安裝 Windows XP Professional Service Pack 1。 軟體限制原則並不能阻止在 Microsoft Win32® 應用程式介面以外之程式碼的執行。例如,使用者可以從 Portable Operating System Interface (POSIX) 子系統執行相同的指令。 若要避免此問題,請將 POSIX 子系統關閉,方法是將下列 POSIX 值刪除: **HKLM\\System\\CurrentControlSet\\Control\\SessionManager\\Subsystems** ##### 受信任的發行者 您可以使用 \[受信任的發行者內容\] 對話方塊,來設定哪些使用者可以選取受信任的發行者。您也可以決定在信任發行者之前,要執行哪些 (如果有的話) 憑證撤銷檢查。啟用憑證規則之後,軟體限制原則就會檢查憑證撤銷清單 (CRL),以確保軟體的憑證和簽章有效。如此一來,啟動已簽署程式時,效能可能會降低。\[受信任的發行者內容\] 對話方塊之 \[一般\] 索引標籤中的選項 (如 \[圖 11\] 所示),可以讓您針對與 ActiveX 控制項和其他已簽署內容相關的設定進行組態。 ![](images/Dd548232.SGFG6511(zh-tw,TechNet.10).jpg) \[圖 11\] *\[受信任的發行者內容\]* *對話方塊* 下列表格顯示與 ActiveX 控制項和其他已簽署內容相關的受信任發行者選項。 **\[表 4\] 受信任的發行者之工作和設定**
設定名稱 工作
企業系統管理員 此選項僅允許企業系統管理員決定已簽署主動式內容的處理方式。
本機電腦系統管理員 此選項允許本機電腦系統管理員決定已簽署主動式內容的處理方式。
一般使用者 此選項允許使用者決定已簽署主動式內容的處理方式。
發行者 此選項會驗證軟體發行者所使用的憑證尚未被撤銷。
時間戳記 此選項會驗證組織用來針對主動式內容做時間戳記的憑證尚未被撤銷。
[](#mainsection)[回到頁首](#mainsection) ### 軟體限制原則的設計與部署 此段落將討論如何使用「群組原則」嵌入式管理單元來管理軟體限制原則、首次編輯原則時需要注意的事項、以及如何針對一群使用者套用軟體限制原則。其中還包括套用軟體限制原則時,需要注意的事項。 #### 與群組原則的整合 您可以使用「群組原則」嵌入式管理單元,來管理多個用戶端的軟體限制原則,以及管理登入到該些用戶端之所有使用者的軟體限制原則。原則會套用到本指南所定義的桌上型電腦和膝上型電腦 OU。 ##### 網域 系統管理員需要為軟體限制原則建立獨立的 GPO。如此才能夠在不影響套用至物件的其他原則之下,將「群組原則」移除。 ##### 本機 環境中的獨立用戶端,必須要設定本機原則。請注意:設定並複寫本機原則之後,可能會產生衝突。 #### 設計原則 此段落描述在設計和部署軟體限制原則時,需要遵循的步驟。設計原則時,需要考慮各種事項,如下列表格所示。 **\[表 5\] 設計原則時,需要注意的重要事項**
需要決定的事項 需要注意的事項
膝上型電腦或工作站 調查環境中筆記型電腦使用者的需求,以判斷筆記型電腦是否需要採用與桌上型電腦不同的原則。一般而言,筆記型電腦會需要比桌上型電腦更大的彈性。
伺服器共用、登入指令檔以及主目錄磁碟 您需要為所有從伺服器共用或主目錄啟動的應用程式,定義路徑規則。您可以在路徑規則中,加入登入指令檔。如果指令檔中會呼叫其他的指令檔,就需要將執行位置加入到路徑規則中。
GPO 或本機安全性原則 在本指南中,會使用 GPO,但是您需要考慮本機原則對於您的設計可能會造成的影響。
使用者或用戶端原則 此設計會將所有設定套用到用戶端層級。
預設安全性層級 建議將預設組態設定為 [不允許],然後再適當地設定其餘的原則。您也可以選擇使用預設的 [沒有限制] 設定。
其他原則 使用 [不允許] 預設原則時,您就必須視需要套用其他的作業系統路徑規則。在 [不允許] 設定狀態下,四種規則都會自動被建立。
原則選項 如果您使用本機安全性原則,且不要將原則套用到環境中之用戶端上的系統管理員,則請選取 [跳過系統管理員] 原則強制選項。
如果除了可執行檔和指令檔以外,您還要檢查 DLL,則請選取 [DLL 檢查] 原則強制選項。
如果您要套用規則的檔案類型並不在指定的檔案類型之預設清單中,就需要視需求將它們加入到 [指定的檔案類型內容] 對話方塊中。
如果您要變更誰可以決定是否下載 ActiveX 控制項以及其他已簽署內容,則請勾選 [受信任的發行者內容] 對話方塊的 [一般] 索引標籤中的 [發行者] 核取方塊。
將原則套用到站台、網域或 OU。 原則會存在於桌上型電腦或膝上型電腦所在位置的 OU 之下。
##### 最佳作法 建議您為軟體限制原則建立獨立的 GPO,因為如果您需要在緊急狀況下停用原則,如此才不會影響其餘的網域或本機原則。 另外,如果您在 OU 的設計階段不小心鎖定了工作站,才能以 \[安全模式\] 重新開機、以本機系統管理員的身份登入並修改原則,來排解問題。當 Windows 是以 \[安全模式\] 開機時,就不會套用軟體限制原則。以 \[安全模式\] 啟動電腦之後,執行「**gpupdate.exe**」,然後再重新啟動即可。 若要最佳化安全性,請在軟體限制原則中搭配使用 ACL。使用者可能會嘗試重新命名或移動不允許執行的檔案,或藉由覆蓋不受限制之檔案,來規避軟體限制原則。若要阻止如此的行為,請使用 ACL,以拒絕使用者存取權或相關的執行權。 登入指令檔通常位於網域控制站或中央伺服器的 Sysvol 之下。網域控制站可能會因不同的登入而變更。如果您的預設規則設定為 \[不允許\],請務必建立可以識別您登入指令檔位置的規則。如果登入伺服器使用相似的名稱,可以考慮使用萬用字元來找它們,或以不受限制設定使用登入指令檔名稱。 **注意:** 請先在測試環境中,徹底地測試新軟體限制原則設定,再將它們套用到您的網域。新的原則設定可能會產生無法預期的行為。藉由進行完整的測試,可以在部署軟體限制原則到網路上之後,避免問題的產生。 #### 步驟流程 請讓下列步驟指引您進行軟體限制原則的設計,然後將其套用到環境中膝上型電腦與桌上型電腦的 GPO。 ##### 步驟 1:為 OU 建立 GPO 找出為環境中的桌上型電腦或膝上型電腦建立的 OU。如果您使用的是獨立用戶端,則設定位於「本機電腦原則」中。在此原則中,按一下 \[內容\],然後建立新的 GPO。根據貴組織的命名慣例,為該原則命名。請記住,此原則僅適用於軟體限制的強制。 ##### 步驟 2:設定軟體限制原則 反白 GPO 然後按一下 \[編輯\]。瀏覽樹狀目錄,直到您找到 Windows Settings\\Security Settings\\Software Restriction Policy 為止。第一次編輯原則時,您會看到下列訊息: 沒有定義軟體安全性原則。 此訊息是要警告您:原則的建立會定義新的預設值。這些預設值可能會覆蓋來自其他軟體限制原則的設定。由於尚未設定軟體限制設定,所以請先使用預設的設定。在 \[動作\] 功能表上按一下滑鼠右鍵,然後選取 \[新軟體限制原則\]。 ##### 步驟 3:設定路徑規則 決定工作站會有哪些應用程式和指令檔之後,就可以設定路徑規則。某些程式會啟動其他程式,來執行工作。您環境中的軟體應用程式可能需要仰賴一或多個支援程式。記錄目前已經安裝的軟體,並記載安裝細節,對於追蹤路徑規則時非常有幫助。工作站的設計範例可能包括下列指引: - 應用程式 = \*\\Program Files - 共用群組應用程式= g:\\Group Applications - 登入指令檔 = Logon.bat - 桌面捷徑 = \*.lnk - 惡意 VB Script =\*.vbs ##### 步驟 4:設定原則選項 以下為此設計的建議設定。這些選項會影響 Authenticode 對於數位簽章檔案之信任設定的強制行為範圍。 **強制** - 如果電腦屬於網域的一部份,請確定 \[Domain Admins\] 群組已經自動加入到 \[系統管理員\] 群組。 **套用到使用者** - 這包括所有使用者,除了本機系統管理員之外。使用此設定會延遲每一個應用程式的啟動速度。為了要減輕這個問題所造成的影響,此設計會將原則設定為不檢查 DLL。 **套用到檔案** - 這包括所有軟體檔案,除了程式庫 (例如 DLLs) 以外。使用此設定會延遲每一個應用程式的啟動速度。為了要減輕這個問題所造成的影響,此設計會將原則設定為不檢查 DLL。 **指定的檔案類型** - 就本指南所定義的 GPO 設計,清單中沒有新增其他檔案類型。實際操作時,您應該根據需要,加入自訂應用程式檔案類型的副檔名,才能確保它們也遵循相同的規則。 **受信任的發行者** - 就本指南所定義的 GPO 設計,\[系統管理員\] 群組已經啟用,也已經選取 \[受信任的發行者內容:本機電腦系統管理員\]。 信任發行者之前,在建立 GPO 的設計階段,請選取 \[檢查:發行者\] 選項,以確保原則會驗證憑證。 ##### 步驟 5:套用預設設定 最佳作法,是將預設原則設定為 \[沒有限制\]。如此才能確保套用軟體限制之前,原則就已經完全設定。檢閱原則設定之後,再將預設設定重設為 \[不允許\]。 ##### 步驟 6:測試原則 如果電腦屬於網域的一部份,請將電腦移動到有套用原則的 OU 容器內。重新啟動測試電腦並登入。測試計畫應該要有相關的指示,說明各個應用程式在套用原則之後應有的行為。執行應用程式,以確保它們的操作順暢,且您可以存取所有的功能。驗證應用程式的功能之後,模擬攻擊應用程式看看,確保原則並沒有安全性的漏洞。 如果電腦屬於獨立用戶端,請登入測試電腦,然後根據測試計畫進行。驗證應用程式的功能之後,模擬攻擊應用程式看看,確保原則並沒有安全性的漏洞。 #### 部署軟體限制原則 完成原則的完整測試之後,將其套用到組織中的桌上型電腦或膝上型電腦 OU。如果是獨立用戶端,請套用到用戶端的本機電腦設定。開啟 \[電腦和使用者\] MMC 嵌入式管理單元,並瀏覽樹狀目錄,直到您找到桌上型電腦或膝上型電腦的 OU 容器。然後使用 \[群組原則物件編輯器\] 建立新的 GPO。編輯內容,並且在 Windows Settings\\Security Settings 下的 \[軟體限制原則\] 中,根據下列表格套用適用的設定。 **\[表 6\] 安全性等級**
UI 中的預設規則 說明 設定
不允許 軟體無法執行,無論使用者的存取權限為何。 使用此預設規則
**\[表 7\] 其他原則**
路徑規則 設定
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\SystemRoot% 沒有限制
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\SystemRoot%\*.exe 沒有限制
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\SystemRoot%\System32\*.exe 沒有限制
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\ProgramFilesDir% 沒有限制
*.lnk 沒有限制
*.vbs 不允許
G:\Group Applications 沒有限制
Logon.bat 或登入指令檔 沒有限制
*\Program Files 沒有限制
**\[表 8\] 檔案和使用者的強制**
強制選項 建議
套用軟體限制原則到下列各項: 所有軟體檔案,除了 DLL。
套用軟體限制原則到下列使用者: 所有的使用者,除了本機系統管理員。
**\[表 9\] 指定的檔案類型**
指定的檔案類型 建議
指定的檔案類型內容 移除 .mdb 並加入 .ocx。
**\[表 10\] 受信任的發行者**
受信任的發行者 建議
允許下列使用者群組選取受信任的發行者: 本機電腦系統管理員
判斷憑證是否已撤銷。 選取 [發行者] 選項。
[](#mainsection)[回到頁首](#mainsection) ### 總結 軟體限制原則提供系統管理員一個原則導向的機制,用以識別並控制在網域中、執行 Windows XP Professional 之電腦上的軟體。您可以建立原則來阻擋惡意的指令碼,甚至鎖定環境中的電腦,或阻止應用程式的執行。在企業中,管理軟體限制原則的最佳作法是使用「群組原則物件」,然後根據組織中不同使用者群組和電腦的需求,建立量身訂做的原則。建議您不要嘗試在獨立環境中管理使用者群組。只要正確地運用,軟體限制原則可以增強整合性、管理能力,並降低組織中之電腦與作業系統的使用與維護成本。 #### 其他資訊 下列資訊來源是 Windows Server 2003 公開發行當時,與 Windows XP Professional 和 Windows Server 2003 之軟體限制原則相關的最新主題。 有關軟體限制原則的其他資訊,請參閱<使用軟體限制原則以避免未授權軟體 (Using Software Restriction Policies to Protect Against Unauthorized Software)>,網址為: