本文針對 IT 專業人士介紹 AppLocker 規則類型,以及如何運用它們來執行應用程式控制政策。
規則集合
AppLocker 政策組織為規則集合,包括可執行檔、腳本、Windows 安裝程式檔案、封裝應用程式與套件安裝程式,以及 DLL 檔案。 這些集合讓你能輕鬆區分不同類型的應用程式規則。 下表列出每個規則集合中包含的檔案格式。
| 規則彙編 | 相關檔案格式 |
|---|---|
| 可執行檔案 | .exe .com |
| 指令碼 | .ps1 .bat .cmd .vbs .js |
| Windows 安裝程式檔案 | .msi .msp .mst |
| 打包式應用程式與打包式應用程式安裝程式 | .appx .msix |
| 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 指令檔並設定 -merge 選項套用 AppLocker 政策,則會在現有本地政策與被合併政策之間選擇較嚴格的強制模式。
規則條件
規則條件是幫助 AppLocker 識別該規則適用的應用程式的標準。 三個主要規則條件是發佈者、路徑和檔案雜湊。
發行者
此條件根據應用程式的數位簽名及擴展屬性(若有)來識別。 數位簽名包含了開發該應用程式的公司資訊 (出版商) 。 可執行檔、DLLS、Windows 安裝程式、套件應用程式及套件應用程式安裝程式也包含擴充屬性,這些屬性來自二進位資源。 這些屬性通常包括產品名稱、原始檔案名稱,以及由發行商定義的檔案版本號。 如果有已封裝的應用程式和已封裝的應用程式安裝程式,這些擴展屬性會包含應用程式套件的名稱和版本。
注意
在封裝應用程式和封裝應用程式安裝程式規則集合中建立的規則只能有發佈者條件,因為 Windows 不支援未簽名的封裝應用程式和已打包的應用程式安裝程式。
如果可能,請使用發佈者規則條件,因為這對應用程式更新以及檔案位置變更更具彈性。
當你為發佈者條件選擇參考檔案時,精靈會建立一條規則,指定發佈者、產品、檔名和版本號。 你可以透過往上移動滑桿,或在產品、檔名或版本號欄位中使用萬用字元 (*) ,讓規則更通用。
注意
要在建立規則精靈中為出版商規則條件的任何欄位輸入自訂值,必須選擇 「使用自訂值 」的勾選框。 勾選此勾選框後,無法使用滑桿。
檔案版本與套件版本控制使用者是否能執行特定版本、早期版本或更新版本的應用程式。 你可以選擇版本號,然後設定以下選項:
- 沒錯。 此規則僅適用於此版本的應用程式
- 甚至更高。 此規則適用於此版本及所有後續版本。
- 還有下面。 此規則適用於此版本及所有早期版本。
下表說明了出版商條件的應用方式。
| 選項 | 出版商條件允許或拒絕...... |
|---|---|
| 所有已簽署的檔案 | 發行者簽署的所有檔案。 |
| 僅發行者 | 由具名發行者簽署的所有檔案。 |
| 出版社與產品名稱 | 所有指定產品的檔案均由指定出版商簽署。 |
| 發行商與產品名稱,以及檔案名稱 | 由出版商簽署的指定產品所屬檔案或套件的任何版本。 |
| 發行商、產品名稱、檔案名稱及檔案版本 |
沒錯 由出版商簽署的指定版本。 |
| 發行商、產品名稱、檔案名稱及檔案版本 |
還有更高 指定版本的命名檔案或套件,以及發行商簽署的產品新版本。 |
| 發行商、產品名稱、檔案名稱及檔案版本 |
下方 指定版本的命名檔案或套件,以及由發行商簽署的產品早期版本。 |
| 自訂 | 你可以編輯 出版商、 產品名稱、 檔案名稱、 版本套件名稱和 套件版本欄位 ,來建立自訂規則。 |
路徑
此規則條件透過應用程式在電腦檔案系統或網路中的位置來識別。
AppLocker 使用自訂路徑變數來處理已知路徑,例如 Program Files 和 Windows。
下表詳細說明這些路徑變數。
| Windows 目錄或磁碟 | AppLocker 路徑變數 | Windows 環境變數 |
|---|---|---|
| Windows | %WINDIR% | %SystemRoot% |
| System32 與 SysWOW64 | %SYSTEM32% | %SystemDirectory% |
| Windows 安裝目錄 | %OSDRIVE% | %SystemDrive% |
| 程式檔案 | %程式檔案% | %ProgramFiles% 與 %ProgramFiles (x86) % |
| 可拆卸媒體 (例如CD或DVD) | %可移除% | |
| 例如,可移動式儲存裝置 (USB 隨身碟) | %熱辣辣的% |
重要
由於路徑規則條件可設定為包含大量資料夾與檔案,路徑條件應謹慎規劃。 例如,若路徑規則包含允許非管理員撰寫資料的資料夾位置,則以標準使用者) 執行的使用者 (或惡意軟體可將未經批准的檔案複製到該位置並執行檔案。 因此,你應該避免為標準的使用者可寫入位置(例如使用者設定檔)建立路徑條件。
檔案雜湊
當你選擇檔案雜湊規則條件時,系統會計算出已識別檔案的 Authenticode 密碼雜湊值。 此規則條件的優點在於,由於每個檔案都有唯一的雜湊值,檔案雜湊規則條件只適用於一個檔案。 缺點是每次檔案更新時都會 (安全更新或檔案雜湊值) 升級。 因此,您必須手動更新檔案雜湊規則。
AppLocker 預設規則
使用 AppLocker 群組原則編輯器建立的 AppLocker 政策可包含預設規則。 預設規則旨在確保 Windows 正常運作所需的檔案被允許出現在 AppLocker 規則集合中。 背景請參見 《了解 AppLocker 預設規則》,步驟請參見 《建立 AppLocker 預設規則》。
可執行的預設規則類型包括:
- 允許本地 管理員 群組的成員執行所有應用程式。
- 允許 Everyone 群組的成員執行位於 Windows 資料夾中的應用程式。
- 允許 Everyone 群組的成員執行位於 Program Files 資料夾中的應用程式。
腳本預設規則類型包括:
- 允許本地 管理員 群組的成員執行所有腳本。
- 允許 Everyone 群組的成員執行位於 Program Files 資料夾中的腳本。
- 允許 Everyone 群組的成員執行位於 Windows 資料夾中的腳本。
Windows 安裝程式的預設規則類型包括:
- 允許本地 管理員 群組的成員執行所有 Windows 安裝程式檔案。
- 允許 Everyone 群組的成員執行所有數位簽名的 Windows 安裝程式檔案。
- 允許 Everyone 群組的成員執行位於 Windows\Installer 資料夾中的所有 Windows 安裝程式檔案。
DLL 預設規則類型:
- 允許本地 管理員 群組成員執行所有 DLL。
- 允許 Everyone 群組的成員執行位於 Program Files 資料夾中的 DLL。
- 允許 Everyone 群組的成員執行位於 Windows 資料夾中的 DLL。
打包應用程式的預設規則類型:
- 允許 Everyone 群組成員安裝並執行所有已簽署的套件應用程式與套件安裝程式。
AppLocker 規則行為
如果沒有針對特定規則集合定義 AppLocker 規則,則該規則集合涵蓋的所有檔案都被允許執行。 然而,如果存在針對特定規則集合的規則, 則只有 那些至少符合一個允許規則且不符合任何拒絕規則的檔案才會執行。 舉例來說,如果你建立了一個可執行規則,允許 %SystemDrive%\FilePath 中的 .exe 檔案執行,那麼只有位於該路徑上的可執行檔案才被允許執行。
規則可以設定為允許或拒絕操作:
- 允許。 你可以指定哪些檔案可以在你的環境中執行,以及哪些使用者或使用者群組。 你也可以設定例外來識別被排除在規則之外的檔案。
- 否認。 你可以指定哪些檔案不能在您的環境中執行,以及 哪些 使用者或使用者群組。 你也可以設定例外來識別被排除在規則之外的檔案。
最佳實務是使用帶有例外的允許動作。 雖然你可以結合允許和拒絕行動,但拒絕行動總是贏。 你不能用其他規則來允許符合拒絕規則的檔案。
規則例外
你可以對個別使用者或一群使用者套用 AppLocker 規則。 如果你對一組使用者套用規則,該規則會影響該群組中的所有使用者。 如果你需要允許某個使用者群組的子集使用應用程式,你可以為該子集建立特殊規則。 例如,規則「允許所有人執行 Windows 除了登錄檔編輯器」允許組織內所有人執行 Windows 作業系統,但不允許任何人執行登錄檔編輯器。
此規則的效果將阻止使用者如客服台人員執行支援任務所需的程式。 為了解決這個問題,請建立一條適用於客服台使用者群組的第二條規則:「允許客服台執行登錄檔編輯器。」如果你改用一個拒絕規則,阻止所有使用者執行登錄檔編輯器,第二條規則其實不會讓客服台用戶執行登錄檔編輯器。
DLL 規則收集
由於 DLL 規則收集預設未啟用,您必須先執行以下程序,才能建立並執行 DLL 規則。
完成此程序的最低要求為當地 管理員 團體或同等會員資格。
啟用 DLL 規則集合
- 選擇 開始,輸入 secpol.msc,然後選擇 ENTER。
- 如果出現 使用者帳號控制 對話框,確認顯示的動作是否符合你的需求,然後選擇 「是」。
- 在主控台樹中,雙擊 Application Control Policies,右鍵 AppLocker,然後選擇 屬性。
- 選擇 「進階 」標籤,勾選 「啟用 DLL 規則集合 」勾選框,然後選擇 確定。
重要
在執行 DLL 規則之前,請確保每個 DLL 都有允許規則,且所有允許的應用程式都需要這些規則。
AppLocker 向導
你可以使用兩個 AppLocker 精靈來建立規則:
- 「建立規則」精靈讓你一次建立一條規則。
- 自動生成規則精靈允許你同時建立多條規則。 你可以選擇資料夾,讓精靈為找到的相關檔案建立規則。 或者,對於已封裝的應用程式,讓精靈為電腦上所有已封裝的應用程式建立規則。 你也可以指定要套用規則的使用者或群組。 此精靈會自動產生只允許規則。
其他考量
- 預設情況下,AppLocker 規則不允許使用者開啟或執行任何不被允許的檔案。 管理員應維護最新的允許應用程式清單。
- AppLocker 有兩種狀況在應用程式更新後不會持續存在:
- 檔案雜湊條件 檔案雜湊規則條件可用於任何應用程式,因為規則建立時會產生應用程式檔案的密碼學雜湊值。 然而,雜湊值是針對該檔案版本的專屬。 如果你需要允許多個版本的檔案,你需要為每個版本設定獨立的檔案雜湊條件。
- 具有特定產品版本集的出版商條件 如果你建立一個使用 Exactly version 選項的發佈者規則條件,當應用程式安裝新版本時,該規則無法持續存在。 必須建立新的發佈者條件,或在規則中編輯版本以降低具體性。
- 如果應用程式沒有數位簽名,你就不能對該應用程式使用發佈者規則條件。
- 如果 EXE 規則集合被強制執行任何規則,你必須在打包的應用程式和打包的應用程式安裝器規則集合中建立規則。 否則,所有已封裝的應用程式和已封裝的安裝程式都會被封鎖。
- 當應用程式被封鎖時,可以在訊息中包含自訂設定的網址。
- 當使用者遇到不允許使用的應用程式時,客服台電話數量預計會增加。
本節內容
| 文章 | 描述 |
|---|---|
| 建立使用檔案雜湊條件的規則 | 這篇文章針對 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 規則的步驟。 |