Security

Least-Privilege BUILTINAdministrator 失敗使用 AppLocker 配置應用程序控制策略

  • October 25, 2014

不久前我在SuperUser上問過這個問題無濟於事,然後才意識到serverfault可能是一個更好的選擇。

我正在執行 Windows 7 SP1 Ultimate 的電腦上配置執行控制,該電腦具有一個帶有單個分區的硬碟驅動器。AppLocker 提供了創建“預設規則”的選項。對於 Executable Rules 組,它們如下所示:

  • 允許所有人路徑 %PROGRAMFILES%*
  • 允許所有人路徑 %WINDIR%*
  • 允許 BUILTIN\Administrators 路徑 *

(沒有例外。)

有了所有這些,“一切都按預期工作”。但是,如果刪除適用於“所有人”的前兩條規則,事情就會出錯。

現在,無法再使用 BUILTIN\Administrators 安全組中的帳戶登錄。(如果該帳戶之前已經登錄,您可能需要重新啟動電腦才能看到此失敗。此外,這不適用於 BUILTIN\Administrator 帳戶,它仍然有效)。當您嘗試時會發生以下情況:

有一個延遲,當應該呈現桌面時,螢幕變為空白。然後,僅此而已。電腦不會無響應,例如 Ctrl + Alt + Delete 仍然有效。

(如果我重新配置 AppLocker 以明確允許 %WINDIR%* 的 BUILTIN\Administrators 執行權限,或者為“所有人”恢復該規則,這些帳戶可以再次登錄。)

根據MSDN

星號 () 萬用字元可在路徑欄位中使用。本身使用的星號 () 字元代表任何路徑。與任何字元串值組合時,規則僅限於文件的路徑以及該路徑下的所有文件。例如,%ProgramFiles%\Internet Explorer* 表示 Internet Explorer 文件夾中的所有文件和子文件夾都將受到該規則的影響。

這對我來說意味著 BUILTIN\Administrators 的預設規則應該與為“Everyone”創建的預設規則完全重疊,在屬於 BUILTIN\Administrators 組的帳戶的情況下使它們變得多餘。如您所見,情況似乎並非如此。

所以,我對此有兩個問題:

  1. 為什麼 BUILTIN\Administrators 的預設規則本身不足以讓屬於該組的帳戶正常工作(即它有什麼問題,以及它是什麼原因導致失敗),以及;
  2. 對於 AppLocker 配置,工作管理帳戶(不是 BUILTIN\Administrator)的真正最低權限配置是什麼?

據我了解,您的問題與 Windows 如何處理管理帳戶有關。

開箱即用,因為在 Windows Vista 中,管理帳戶實際上並沒有立即啟用它們的管理權限,您需要使用使用者訪問控制 UAC 提升到管理員權限(例如,如果您嘗試更改系統設置,您會收到 UAC 提示,詢問您是否知道自己在做什麼)。在您這樣做之前,使用者帳戶基本上只具有與普通使用者相同的權限級別。

因此,當您以 Administrators 組的成員身份登錄時,您的使用者帳戶在技術上不具有管理員權限(因為您沒有使用 UAC 提升權限),因此不符合您的“允許*“ 規則。然後,您的 Windows 會話繼續內爆,因為您的使用者帳戶無權執行登錄期間所需的任何 Windows 系統文件。

我在我的一個 AppLocker 環境中遇到了類似的問題,我沒有像您那樣鎖定 Programs Files 和 Windows 目錄(通過刪除預設規則),但我確實有一條規則基本上是說“BUILTIN 的成員\管理員,允許 *"。但是,當您以管理員身份登錄並嘗試點兩下 Windows/Program Files 外部的隨機執行檔時,您會遇到 AppLocker 違規並阻止您執行它。相反,您必須右鍵點擊它並轉到“以管理員身份執行”;只有到那時 AppLocker 才會明白您確實是 BUILTIN\Administrators 的成員。

可能的解決方法是:

  1. 禁用 UAC(我從未對此進行過測試,不確定它是否會起作用——在我們的環境中,我們將 UAC 保持打開狀態)
  2. 創建一個名為“系統管理員”或其他名稱的新 Windows 本地組,並將個人 Windows 使用者帳戶添加到其中應該能夠訪問它的人(但不要簡單地將 BUILTIN\Administrators 添加到其中);然後創建一個 AppLocker 規則,說允許“系統管理員”組的成員執行任何東西。
  3. 保留 Windows 生成的預設允許規則,然後添加一些適用於最終使用者的“拒絕”規則,防止他們訪問您擔心的 Windows 和 Program Files 目錄中的特定文件。這就是我們在我們的環境中所做的(例如,允許 C:\Windows*,但阻止對 cmd.exe、PowerShell.exe、regedit.exe 等的訪問)請記住,拒絕規則總是覆蓋允許規則.

如果您還沒有,請務必打開 AppLocker 日誌記錄並查看 Windows 事件查看器,因為它應該提供有關為什麼不允許特定使用者執行某些東西的資訊。另請查看Test-AppLockerPolicyPowerShell 命令以模擬特定使用者和執行檔允許和不允許的內容(儘管我不確定它是否在 Windows 7 中可用,您可能需要升級您的 PowerShell 版本)。

引用自:https://serverfault.com/questions/639318