AppLocker:在 Windows 中配置應用程序限制策略

Jacki

使用AppLocker 安全策略,管理員可以阻止或允許特定應用程序在 Windows 上運行。使用 Applocker,可以限制特定用戶組的程序執行,同時允許其他用戶(例如管理員)運行它們。本指南介紹如何使用 GPO 創建和部署 AppLocker 應用程序訪問策略。

AppLocker應用程序控制功能最初可用僅適用於企業版Windows 的。但是,從 Windows 10 版本 2004 和所有 Windows 11 版本開始,這些版本限制被刪除,允許將 AppLocker 策略應用於專業版版本也是如此。

以前,可以通過軟件限制策略 (SRP) 在 Windows 中實施應用程序啟動限制。但是,自 Windows 10 版本 1803 和 Windows Server 2019 發布以來,SRP 功能已被棄用。

讓我們使用域組策略管理管理單元創建一個包含 AppLocker 控制設置的新域 GPOgpmc.msc(以同樣的方式,您可以使用本地組策略編輯器在獨立計算機上配置 Applocker 設置),

  1. 創建一個新的 GPO 並切換到編輯模式。
  2. 為了將 AppLocker 策略應用於客戶端,應用程序身份服務必須已啟用並正在運行(AppIDSvcWindows 中默認禁用該服務)。
  3. 導航到計算機配置 -> Windows 設置 -> 安全設置 -> 系統服務。打開應用程序身份服務屬性並啟用自動啟動。
  4. 然後展開計算機配置 -> 策略 -> Windows 設置 -> 安全設置 -> 應用程序控制策略 -> AppLocker。您可以在此處為四個軟件類別創建規則:

    可執行規則– 可執行文件(.EXE 和 .COM)。
    Windows 安裝程序規則– Windows 安裝程序文件(.MSI、.MSP、.MST)。
    腳本規則– 腳本文件(.BAT、.CMD、.JS、.PS1 和 .VBS)。
    打包應用規則– APPX 和 MSIX Microsoft Store 應用程序。

  5. 在此示例中,我們將為可執行文件創建軟件控制規則。所以,右鍵單擊可執行規則並選擇創建默認規則
  6. 將創建多個預定義規則。

    允許所有人(位於 Program Files 文件夾中的所有文件) – 此規則使用戶能夠運行來自Program Files目錄。
    允許所有人(位於 Windows 文件夾中的所有文件) – 它允許用戶運行 Windows 文件夾中的任何文件Windows目錄。
    允許 BUILTINAdministrators(所有文件)- 本地管理員組的成員可以運行任何文件。

  7. 例如,您可能希望允許非管理員用戶運行特定應用程序,無論其版本或位於磁盤上的位置如何。
  8. 創建新的 AppLocker 規則。選擇是允許還是拒絕運行可執行文件。選擇將應用此策略的用戶組(默認為“每個人”)。
  9. 接下來,選擇 AppLocker 規則的條件。提供三個選項:
    出版商– 它允許為簽名文件(來自特定發布者的文件)創建規則。使用此規則,您可以從以下選項中進行選擇:發布者名稱、產品名稱、可執行文件名或文件版本。
    小路– 指定將應用規則的目錄或文件的路徑。您可以指定 EXE 文件的完整路徑或使用通配符 (*)。例如,規則C:MyAppFolder*將應用於指定目錄中的所有可執行文件。
    文件哈希值– 規則可用於根據 SHA-256 哈希值識別未簽名的文件。此規則允許或拒絕執行文件,無論文件的名稱或在磁盤上的位置如何。但是,如果文件版本發生更改(例如,軟件更新後),則必須為新文件哈希重新創建規則。
    在規則中指定路徑時,可以使用以下 AppLocker 特定的環境變量。
    Windows 目錄或驅動器 AppLocker路徑變量
    Windows目錄 %WINDIR%
    System32 和 sysWOW64 %SYSTEM32%
    Windows安裝驅動 %OSDRIVE%
    程序文件 %PROGRAMFILES%
    可移動媒體(CD 或 DVD) %REMOVABLE%
    可移動存儲設備(USB 閃存驅動器) %HOT%
  10. 我們將由其發布者為特定應用程序創建 AppLocker 規則。選擇目標可執行文件。由於創建 AppLocker 規則的域控制器中可能缺少目標文件,因此您可以使用 UNC 路徑通過網絡從客戶端計算機選擇文件(例如,使用 Windows 管理共享路徑格式\computer123c$toolstcpview64.exe
  11. 我想允許該文件根據其名稱運行,無論版本如何。滑塊應移至文件名。或者,使用配置更靈活的條件使用自定義值選項。
  12. 例外情況部分,您可以按路徑、發布者或文件哈希對規則進行例外處理。例如,您可以阻止舊的、易受攻擊的應用程序版本運行或將它們限制在某些文件夾中。
  13. 設置新的 AppLocker 規則名稱。

現在,讓我們創建一條規則來阻止用戶運行 AnyDesk.exe 應用程序。

  1. 添加新的 AppLocker 規則
  2. 該規則應阻止任何人運行該應用程序。選擇操作:否定、用戶或組:每個人
  3. 創建發布者規則並瀏覽查找 AnyDesk 可執行文件。
  4. 無論文件的版本或位置如何,此規則都應適用。您可以完全拒絕發布由發布者簽名的文件 O=ANYDESK SOFTWARE GMBH或通過產品名稱對其進行限制。
  5. 無論可執行文件所在的目錄或實際文件名如何,這樣的規則都會阻止程序啟動。

儘管允許本地管理員運行任何本地可執行文件,但拒絕規則始終優先並阻止執行。

要將您創建的 AppLocker 規則應用到客戶端計算機,請在 GPO 控制台中打開 AppLocker 屬性。這裡有四種類型的規則可用:

  • 可執行規則– 經典 Win32 可執行 (Exe) 文件的規則
  • Windows安裝程序規則 – MSI 安裝程序規則
  • 腳本規則– 腳本執行規則
  • 打包所有規則– Microsoft Store AppX/MSIX 包的規則

默認情況下,不應用 AppLocker 規則。要將規則應用於客戶端,您需要啟用已配置選項並選擇是否要應用規則僅審計或在執行規則模式。

建議首先在審核模式下應用規則,以測試它們對客戶端的影響,而不會實際阻止應用程序執行

將具有 AppLocker 設置的 GPO 鏈接到目標 OU(強烈建議首先在測試計算機/OU 上測試軟件限制規則)。

在客戶端上應用新的組策略設置後,請檢查 AppLocker 規則如何在該客戶端上發揮作用。由於 AppLocker 規則當前在審核模式下應用,因此實際上不會阻止應用程序啟動。

您可以使用事件查看器日誌來確定啟動特定可執行文件時如何觸發 AppLocker 策略。打開事件查看器控制台(eventvwr.msc)並導航至應用程序和服務日誌 -> Microsoft -> Windows -> AppLocker -> EXE 和 DLL。

當 AppLocker 檢測到嘗試運行被阻止的可執行文件時,它會記錄一條帶有事件 ID 的警告8003其中包括被阻止的應用程序的名稱。

%OSDRIVE%TOOLSANYDESK.EXE was allowed to run but would have been prevented from running if the AppLocker policy were enforced.

如果允許應用程序運行,則事件 ID8002將被添加。

在非管理用戶帳戶下測試 AppLocker 規則,因為默認規則允許管理員不受限制地運行所有應用程序。用戶必須在他們的會話中工作,啟動必要的程序並執行他們的標準日常任務。

根據審核事件查看被阻止運行的應用程序。您可以使用 PowerShell 查詢事件查看器日誌並獲取計算機上被 AppLocker 規則阻止的應用程序列表。

$TimeSpan = (Get-Date).AddHours(-24)
Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-AppLocker/EXE and DLL"; Id = 8003; StartTime = $TimeSpan } | Format-Table TimeCreated, Message -AutoSize

如果當前應用程序控制策略阻止所需的可執行文件,請編輯 AppLocker GPO 以添加允許該應用程序運行的規則。

在審核模式下調試 AppLocker 規則後,您可以在強制模式下應用它們。為此,請將 AppLocker 策略中的審核設置更改為執行規則

AppLocker 現在將阻止啟動任何未經授權或明確拒絕的程序。

This app has been blocked by your administrator

ID 為 8004 的事件現在將添加到事件查看器中,其中包含被阻止的可執行文件的名稱。

%OSDRIVE%TOOLSANYDESK.EXE was prevented from running.

為 AppLocker 中每個允許或阻止的應用程序手動創建單獨的規則既耗時又乏味。有多種工具可以加快和改進創建和實施 AppLocker 規則的過程。

GPO 控制台中的 AppLocker 配置編輯器具有自動規則生成功能。管理員可以選擇自動生成規則選項並指定參考計算機上的目標文件夾。然後,AppLocker 將為計算機上找到的所有軟件生成規則列表。

您還可以通過從單台計算機導入 AppLocker 規則來創建它們。例如,您可以使用 PowerShell 從事件查看器日誌中獲取被阻止的可執行文件的列表:

推薦閱讀:如何使用軟件限制策略 GPO 禁用 PowerShell

Get-ApplockerFileinformation -Eventlog -EventType Audited|fl

根據此信息,您可以自動將規則添加到本地 AppLocker 策略。

Get-ApplockerFileinformation -Eventlog -EventType Audited | New-ApplockerPolicy -RuleType Hash, Publisher -User jsmith -RuleNamePrefix AuditBased | Set-ApplockerPolicy –Merge

新規則將添加到計算機的本地 AppLocker 策略中。從那裡,它們可以導出和導入到域 GPO。

僅列出被阻止的可執行文件(包括嘗試運行每個文件的次數):

Get-AppLockerFileInformation -EventLog -EventType Denied -Statistics

創建 AppLocker 規則時請記住以下幾點:

是否可以在計算機上暫時暫停 AppLocker?您可能認為停止應用程序標識服務會阻止應用 AppLocker 規則。然而,事實並非如此。

要在計算機上暫時禁用 AppLocker,請先停止 AppIDSvc 服務,然後刪除應用程序緩存.dat,exe.AppLocker, 和等AppLocker文件來自C:WindowsSystem32AppLocker文件夾。

現代版本的 Windows 包括一種用於控制可執行文件啟動的附加機制,稱為Windows Defender 應用程序控制 (WDAC)。儘管它的配置比 AppLocker 稍微複雜一些,但由於其靈活性、可擴展性和增強的安全性,它是更好的選擇。與僅在用戶模式下運行的AppLocker 不同,WDAC 可以在內核級別(例如驅動程序)和用戶模式下阻止代碼執行。