使用 AppLocker 規則
本文適用於 IT 專業人員,說明 AppLocker 規則類型,以及如何針對您的應用程控原則使用這些規則類型。
規則集合
AppLocker 原則會組織成規則集合,包括可執行檔、腳本、Windows Installer 檔案、已封裝的應用程式和封裝的應用程式安裝程式,以及 DLL 檔案。 這些集合可讓您輕鬆區分不同類型應用程式的規則。 下表列出每個規則集合中包含的檔案格式。
規則集合 | 相關聯的檔格式 |
---|---|
可執行檔 | .exe .com |
指令碼 | .ps1 .bat .cmd .vbs .js |
Windows Installer 檔案 | .msi .msp .mst |
已封裝的應用程式和已封裝的應用程式安裝程式 | .appx |
DLL 檔案 | .dll .ocx |
注意
可執行檔的 AppLocker 規則實際上會套用至 PE) 檔案 (所有可攜式可執行檔,無論攻擊者可以輕鬆變更的擴展名為何。 上表所列的可執行檔擴展名資訊僅供說明。
預設不會啟用 DLL 規則集合。 若要瞭解如何啟用 DLL 規則集合,請參閱 DLL 規則集合。
重要
如果您使用 DLL 規則,您必須建立允許規則,以涵蓋所有允許應用程式所使用的每個 DLL。
使用 DLL 規則時,AppLocker 必須檢查應用程式載入的每個 DLL。 因此,如果使用 DLL 規則,使用者可能會遇到效能降低的狀況。 不過,除非裝置已經受到資源限制,否則此效能影響通常無法察覺。
強制模式
AppLocker 原則會為原則中包含的每個規則集合設定 強制模式 。 下表說明這些強制模式。
強制模式 | 描述 |
---|---|
未設定 | 儘管名稱為何,但此強制模式 並不 表示會忽略規則。 相反地,如果任何規則存在於「未設定」的規則集合中,則除非優先順序較高的原則將強制執行模式變更為僅稽核,否則 會強制執行 規則。 由於此強制模式可能會讓原則作者感到混淆,因此您應該避免在 AppLocker 原則中使用此值。 相反地,您應該在其餘兩個選項之間明確選擇。 |
強制執行規則 | 系統會強制執行規則。 當使用者執行受AppLocker規則影響的應用程式時,會封鎖應用程式二進位檔。 二進位檔的相關信息會新增至 AppLocker 事件記錄檔。 |
僅稽核 | 系統會稽核規則,但不會強制執行規則。 當使用者執行受 AppLocker 規則影響的應用程式時,允許執行應用程式二進位檔。 不過,二進位檔的相關信息會新增至 AppLocker 事件記錄檔。 僅稽核強制模式可協助您在強制執行原則之前識別受原則影響的應用程式。 |
合併 AppLocker 原則時,所有原則的規則都會新增至有效原則,並針對每個規則集合選取單一強制模式。 如果透過 群組原則 將多個 AppLocker 原則套用至裝置,則會根據 群組原則 優先順序選取套用的強制模式設定。 如果您在本機使用 Set-AppLockerPolicy PowerShell Cmdlet 搭配 -merge 選項來套用 AppLocker 原則,則會在現有本機原則與要合併的原則之間選擇更嚴格的強制執行模式。
規則條件
規則條件是可協助AppLocker識別套用規則之應用程式的準則。 三個主要規則條件為發行者、路徑和檔案哈希。
發行者
此條件會在可用時,根據其數位簽名和擴充屬性來識別應用程式。 數位簽名包含在發行者) (建立應用程式的公司相關信息。 可執行檔、dll、Windows 安裝程式、已封裝的應用程式和已封裝的應用程式安裝程式也包含從二進位資源取得的擴充屬性。 這些屬性通常包括產品名稱、原始檔名,以及發行者所定義的檔案版本號碼。 如果有已封裝的應用程式和已封裝的應用程式安裝程式,這些擴充屬性會包含應用程式套件的名稱和版本。
注意
在封裝的應用程式和已封裝的應用程式安裝程式規則集合中建立的規則只能有發行者條件,因為 Windows 不支援未簽署的封裝應用程式和已封裝的應用程式安裝程式。
盡可能使用發行者規則條件,因為它們對應用程式更新以及檔案位置的變更更有彈性。
當您選取發行者條件的參考檔案時,精靈會建立規則來指定發行者、產品、檔名和版本號碼。 您可以藉由上移滑桿,或在產品、檔名或版本號碼欄位中使用通配符 (*) ,讓規則更為一般。
注意
若要在 [建立規則精靈] 中輸入發行者規則條件之任何欄位的自訂值,您必須選取 [ 使用自定義值 ] 複選框。 選取此複選框時,您無法使用滑桿。
[檔案版本] 和 [套件版本] 控制使用者是否可以執行特定版本、舊版或更新版本的應用程式。 您可以選擇版本號碼,然後設定下列選項:
- 完全。 此規則僅適用於此版本的應用程式
- 和更新版本。 此規則適用於此版本和所有更新版本。
- 以及以下內容。 此規則適用於此版本和所有舊版。
下表描述如何套用發行者條件。
選項 | 發行者條件允許或拒絕... |
---|---|
所有已簽署的檔案 | 發行者簽署的所有檔案。 |
僅發行者 | 由具名發行者簽署的所有檔案。 |
發行者和產品名稱 | 由具名發行者簽署的指定產品的所有檔案。 |
發行者和產品名稱,以及檔名 | 發行者所簽署之具名產品的任何具名檔案或套件版本。 |
發行者、產品名稱、檔名和檔案版本 |
完全 發行者所簽署的具名產品之具名檔案或套件的指定版本。 |
發行者、產品名稱、檔名和檔案版本 |
和更新版本 指定版本的具名檔案或套件,以及發行者所簽署產品的任何新版本。 |
發行者、產品名稱、檔名和檔案版本 |
以及下列內容 指定版本的具名檔案或套件,以及發行者所簽署產品的任何舊版。 |
自訂 | 您可以編輯 [ 發行者]、[ 產品名稱]、[ 檔名]、[ 版本套件名稱] 和 [ 套件版本] 字 段,以建立自定義規則。 |
路徑
此規則條件會依應用程式在計算機的檔案系統或網路上的位置來識別應用程式。
AppLocker 會針對已知路徑使用自定義路徑變數,例如 Program Files 和 Windows。
下表詳細說明這些路徑變數。
Windows 目錄或磁碟 | AppLocker 路徑變數 | Windows 環境變數 |
---|---|---|
Windows | %WINDIR% | %SystemRoot% |
System32 和 SysWOW64 | %SYSTEM32% | %SystemDirectory% |
Windows 安裝目錄 | %OSDRIVE% | %SystemDrive% |
程序檔 | %PROGRAMFILES% | %ProgramFiles% 和 %ProgramFiles (x86) % |
卸除式媒體 (例如 CD 或 DVD) | %REMOVABLE% | |
卸除式記憶體裝置 (例如USB快閃磁碟驅動器) | %HOT% |
重要
因為路徑規則條件可以設定為包含大量的資料夾和檔案,所以應謹慎規劃路徑條件。 例如,如果路徑規則包含可讓非系統管理員寫入數據的資料夾位置,則以標準使用者身分執行的使用者 (或惡意代碼) 可以將未經核准的檔案複製到該位置並執行檔案。 因此,您應該避免建立標準使用者可寫入位置的路徑條件,例如使用者配置檔。
檔案哈希
當您選擇檔案哈希規則條件時,系統會計算所識別檔案的 Authenticode 密碼編譯哈希。 此規則條件的優點是,因為每個檔案都有唯一的哈希,所以檔案哈希規則條件只適用於一個檔案。 缺點是每次更新檔案 (例如安全性更新或升級) 檔案的哈希變更。 因此,您必須手動更新檔案哈希規則。
AppLocker 預設規則
使用 AppLocker 群組原則 編輯器建立的 AppLocker 原則可以包含預設規則。 默認規則旨在協助確保 AppLocker 規則集合中允許 Windows 正常運作所需的檔案。 如需背景資訊,請 參閱瞭解 AppLocker 預設規則,如需步驟,請參閱 建立 AppLocker 默認規則。
可執行的預設規則類型包括:
- 允許本機 Administrators 群組的成員執行所有應用程式。
- 允許 Everyone 群組的成員執行位於 Windows 資料夾中的應用程式。
- 允許 Everyone 群組的成員執行位於 Program Files 資料夾中的應用程式。
文稿預設規則類型包括:
- 允許本機 Administrators 群組的成員執行所有腳本。
- 允許 Everyone 群組的成員執行位於 Program Files 資料夾中的腳本。
- 允許 Everyone 群組的成員執行位於 Windows 資料夾中的腳本。
Windows Installer 預設規則類型包括:
- 允許本機 Administrators 群組的成員執行所有 Windows Installer 檔案。
- 允許 Everyone 群組的成員執行所有數位簽署的 Windows Installer 檔案。
- 允許 Everyone 群組的成員執行位於 Windows\Installer 資料夾中的所有 Windows Installer 檔案。
DLL 預設規則類型:
- 允許本機 Administrators 群組的成員執行所有 DLL。
- 允許 Everyone 群組的成員執行位於 Program Files 資料夾中的 DLL。
- 允許 Everyone 群組的成員執行位於 Windows 資料夾中的 DLL。
已封裝的應用程式預設規則類型:
- 允許 Everyone 群組的成員安裝並執行所有已簽署的已封裝應用程式和已封裝的應用程式安裝程式。
AppLocker 規則行為
如果未為特定規則集合定義任何 AppLocker 規則,則允許執行該規則集合涵蓋的所有檔案。 不過,如果特定規則集合有任何規則存在,則 只會 執行符合至少一個允許規則且不符合任何拒絕規則的檔案。 例如,如果您建立允許 在 %SystemDrive%\FilePath 中 .exe 檔案執行的可執行文件規則,則只允許執行位於該路徑中的可執行檔。
規則可以設定為使用允許或拒絕動作:
- 允許。 您可以指定哪些檔案可以在您的環境中執行,以及哪些使用者或使用者群組。 您也可以設定例外狀況,以識別從規則中排除的檔案。
- 否認。 您可以指定 哪些檔案不允許 在您的環境中執行,以及哪些使用者或使用者群組。 您也可以設定例外狀況,以識別從規則中排除的檔案。
如需最佳做法,請使用允許例外狀況的動作。 雖然您可以使用允許和拒絕動作的組合,但拒絕動作一律會獲勝。 您無法使用任何其他規則來允許符合拒絕規則的檔案。
規則例外狀況
您可以將 AppLocker 規則套用至個別使用者或使用者群組。 如果您將規則套用至使用者群組,此規則會影響該群組中的所有使用者。 如果您需要允許使用者群組的子集使用應用程式,您可以為該子集建立特殊規則。 例如,「允許所有人執行 Windows,但登錄 編輯器 除外」規則可讓組織中的每個人執行 Windows 操作系統,但不允許任何人執行登錄 編輯器。
此規則的效果會防止技術支援中心人員等使用者執行支援工作所需的程式。 若要解決此問題,請建立適用於技術支援中心使用者群組的第二個規則:「允許技術支援中心執行登錄 編輯器」。如果您改用拒絕規則來封鎖所有使用者執行登錄 編輯器,則第二個規則實際上不會讓技術支援中心使用者執行登錄 編輯器。
DLL 規則集合
因為預設不會啟用 DLL 規則集合,所以您必須先執行下列程式,才能建立和強制執行 DLL 規則。
完成此程式所需的最小需求是本機 Administrators 群組的成員資格或對等專案。
啟用 DLL 規則集合
- 選 取 [開始],輸入 secpol.msc,然後選取 ENTER。
- 如果 [ 用戶帳戶控制] 對話框出現,請確認其顯示的動作是您想要的動作,然後選取 [ 是]。
- 在主控台樹中,按兩下 [ 應用程控原則],以滑鼠右鍵按兩下 [AppLocker],然後選取 [ 屬性]。
- 選取 [ 進階 ] 索引標籤,選取 [ 啟用 DLL 規則集合 ] 複選框,然後選取 [ 確定]。
重要
強制執行 DLL 規則之前,請確定所有允許的應用程式都需要每個 DLL 的允許規則。
AppLocker 精靈
您可以使用兩個 AppLocker 精靈來建立規則:
- [建立規則精靈] 可讓您一次建立一個規則。
- [自動產生規則精靈] 可讓您一次建立多個規則。 您可以選取資料夾,並讓精靈為找到的任何相關檔案建立規則。 或者,針對已封裝的應用程式,讓精靈為計算機上安裝的所有已封裝應用程式建立規則。 您也可以指定要套用規則的使用者或群組。 此精靈只會自動產生允許規則。
其他考量
- 根據預設,AppLocker 規則不允許用戶開啟或執行任何不允許的檔案。 系統管理員應維護最新允許的應用程式清單。
- 在應用程式更新之後,有兩種類型的AppLocker條件不會持續存在:
- 檔案哈希條件 檔案哈希規則條件可以與任何應用程式搭配使用,因為在建立規則時會產生應用程式檔案的密碼編譯哈希值。 不過,哈希值是該檔案確切版本的特定值。 如果您需要允許多個版本的檔案,則每個檔案版本都需要個別的檔案哈希條件。
- 具有特定產品版本集的發行者條件 如果您建立使用 [完全 版本] 選項的發行者規則條件,則如果已安裝新版本的應用程式,規則將無法保存。 必須建立新的發行者條件,否則必須在規則中編輯版本,才能變得較不明確。
- 如果應用程式未經過數字簽署,您就無法針對該應用程式使用發行者規則條件。
- 如果針對 EXE 規則集合強制執行任何規則,您必須在封裝的應用程式和已封裝的應用程式安裝程式規則集合中建立規則。 否則,會封鎖所有已封裝的應用程式和已封裝的應用程式安裝程式。
- 自訂設定的 URL 可以包含在封鎖應用程式時顯示的訊息中。
- 當使用者遇到不允許的應用程式時,預期技術支援中心通話數目會增加。
本節內容
文章 | 描述 |
---|---|
建立使用檔案雜湊條件的規則 | 本文適用於 IT 專業人員,說明如何使用檔案哈希條件建立 AppLocker 規則。 |
建立使用路徑條件的規則 | 本文適用於 IT 專業人員,說明如何建立具有路徑條件的 AppLocker 規則。 |
建立使用發行者條件的規則 | 本文適用於 IT 專業人員,說明如何使用發行者條件建立 AppLocker 規則。 |
建立 AppLocker 預設規則 | 本文適用於 IT 專業人員,說明建立一組標準 AppLocker 規則以允許 Windows 系統檔案執行的步驟。 |
新增 AppLocker 規則的例外 | 本文適用於 IT 專業人員,說明指定哪些應用程式可以或無法作為 AppLocker 規則例外狀況執行的步驟。 |
建立已封裝應用程式的規則 | 本文適用於 IT 專業人員,說明如何為具有發行者條件的已封裝應用程式建立 AppLocker 規則。 |
刪除 AppLocker 規則 | 本文適用於 IT 專業人員,說明刪除 AppLocker 規則的步驟。 |
編輯 AppLocker 規則 | 本文適用於 IT 專業人員,說明在 AppLocker 中編輯發行者規則、路徑規則和檔案哈希規則的步驟。 |
啟用 DLL 規則集合 | 本文適用於 IT 專業人員,說明為 AppLocker 啟用 DLL 規則集合功能的步驟。 |
強制執行 AppLocker 規則 | 本文適用於 IT 專業人員,說明如何使用 AppLocker 強制執行應用程控規則。 |
執行自動產生規則精靈 | 本文適用於 IT 專業人員,說明在參考裝置上執行精靈以建立 AppLocker 規則的步驟。 |