共用方式為


設定新增的 LSA 保護

本文說明如何設定本機安全性授權單位 (LSA) 程式的新增保護,以防止程式代碼插入會危害認證。

LSA 包含本機安全性授權單位伺服器服務(LSASS)程序,負責驗證本機和遠端登入的使用者,並強制執行本機安全性政策。 在 Windows 8.1 和更新版本上,會提供 LSA 的新增保護,以防止未受保護的進程讀取記憶體和插入程序代碼。 這項功能為 LSA 儲存和管理的認證提供了額外的安全性。 當您使用整合可擴展韌體介面 (UEFI) 鎖定和安全開機時,可以達到進一步的保護。 啟用這些設定時,停用 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 登錄機碼沒有任何作用。

外掛程式或驅動程式的受保護進程需求

若要讓 LSA 外掛程式或驅動程式成功載入為受保護的進程,它必須符合下列兩節中的準則。

簽章驗證

受保護模式要求載入到 LSA 的任何外掛程式必須使用 Microsoft 簽章進行數位簽署。 任何未簽署或未使用Microsoft簽章簽署的外掛程式,都無法在 LSA 中載入。 外掛程式的範例包括智慧卡驅動程式、密碼編譯外掛程式和密碼篩選器。

  • LSA 外掛程式是驅動程式,例如智慧卡驅動程式,必須使用 Windows 硬體質量實驗室 (WHQL) 認證進行簽署。 如需詳細資訊,請參閱 WHQL 發行簽章
  • 沒有 WHQL 認證程式的 LSA 外掛程式必須使用 LSA 的檔案簽署服務進行簽署

遵循 Microsoft 安全性開發生命週期 (SDL) 的流程指南

在廣泛部署功能之前,請使用下列清單徹底測試啟用 LSA 保護:

  • 識別組織使用的所有 LSA 外掛程式和驅動程式。 包含非Microsoft驅動程式或外掛程式,例如智慧卡驅動程式和密碼編譯外掛程式,以及用來強制執行密碼篩選或密碼變更通知的任何內部開發軟體。
  • 請確定所有 LSA 外掛程式都已使用 Microsoft 憑證進行數位簽署,以避免它們無法在 LSA 保護下載入。
  • 請確定所有已正確簽署的外掛程式都可以順利載入 LSA,並如預期般執行。
  • 使用稽核記錄來識別無法以受保護進程身分執行的任何 LSA 外掛程式和驅動程式。

啟用 LSA 保護的限制

如果已啟用新增的 LSA 保護,您就無法對自定義 LSA 外掛程式進行偵錯。 當調試程式是受保護的進程時,您無法將調試程式附加至 LSASS。 一般而言,沒有支援偵錯正在執行的受保護程序的方法。

稽核未以受保護過程載入的 LSA 外掛模組和驅動程式

啟用 LSA 保護之前,請使用稽核模式來識別無法在 LSA 保護模式中載入的 LSA 外掛程式和驅動程式。 在稽核模式中時,系統會產生事件記錄檔,以識別啟用 LSA 保護時,無法載入 LSA 的所有外掛程式和驅動程式。 訊息會記錄,而不會實際封鎖外掛程式或驅動程式。

本節所述的事件會記錄在事件查看器中的作業記錄檔下的應用程式與服務記錄檔>Microsoft>Windows>CodeIntegrity。 這些事件可協助您識別由於簽署原因而無法載入的 LSA 外掛程式和驅動程式。 若要管理這些事件,您可以使用 wevtutil 命令行工具。 如需此工具的相關信息,請參閱 Wevtutil

這很重要

如果裝置上啟用了 智慧應用程控,則不會產生稽核事件。 若要檢查或變更智慧應用程控的狀態,請開啟 Windows 安全性應用程式,然後移至 [應用程式與瀏覽器控制項 ] 頁面。 選取 [智慧應用程控] 設定 ,檢查智慧型手機應用程控是否已啟用。 如果您想要稽核新增的 LSA 保護,請將組態變更為 [關閉]。

備註

在執行 Windows 11 版本 22H2 和更新版本的裝置上,預設會啟用新增 LSA 保護的稽核模式。 如果您的裝置正在執行此組建或更新版本,則不需要其他動作來稽核新增的 LSA 保護。

在單一計算機上啟用 LSASS.exe 的稽核模式

  1. 開啟註冊表編輯器,或在 [執行] 對話框中輸入 RegEdit.exe,然後移至HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\LSASS.exe登錄機碼。
  2. 開啟 AuditLevel 值。 將其數據類型設定為 dword ,並將其數據值設定為 00000008
  3. 重新啟動電腦。

執行這些步驟之後,請尋找具有下列標識符的事件:3065 和 3066。 若要檢查這些事件,請開啟 [事件查看器],然後展開 [ 應用程式和服務記錄>] Microsoft>Windows>CodeIntegrity>Operational

  • 程式代碼完整性檢查判斷某個程序(通常是 LSASS.exe)嘗試載入不符合共用區段安全性需求的驅動程式時,就會發生事件 3065。 不過,由於系統原則目前已設定,因此允許載入映像。
  • 當程式代碼完整性檢查判斷進程通常 LSASS.exe時,就會嘗試載入不符合Microsoft簽署層級需求的驅動程式時,就會發生事件 3066。 不過,由於系統原則目前已設定,因此允許載入映像。

如果外掛程式或驅動程式包含共用區段,事件 3066 會記錄事件 3065。 拿掉共用區段應該防止這兩個事件發生,除非外掛程式不符合Microsoft簽署層級需求。

這很重要

在系統上附加並啟用核心調試程式時,不會產生這些作事件。

在多部計算機上啟用 LSASS.exe 的稽核模式

若要啟用網域中多部計算機的稽核模式,您可以使用組策略的登錄用戶端延伸模組來部署 LSASS.exe 稽核層級登錄值。 您必須修改 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\LSASS.exe 登錄機碼。

  1. 在 [執行] 對話框中輸入 gpmc.msc,或從 [開始] 功能選取 [組策略管理控制台],以開啟組策略管理控制台。
  2. 建立新的組策略物件 (GPO),該物件會在網域層級連結,或連結到包含計算機帳戶的組織單位。 或選取已部署的 GPO。
  3. 以滑鼠右鍵點擊 GPO,然後選取 [編輯] 以開啟 [組策略管理編輯器]。
  4. 展開 [電腦設定]>[偏好設定]>[Windows 設定]
  5. 用滑鼠右鍵點擊 [註冊表],指向 [新增],然後選取 [註冊表項目]。 [ 新增登錄屬性] 對話框隨即出現。
  6. 在 [ 新增登錄屬性] 對話框中,選取或輸入下列值:
    • 針對 [Hive],選取 [HKEY_LOCAL_MACHINE]。
    • 針對 [金鑰路徑],選取 [軟體]\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\LSASS.exe
    • 對於 值名稱,輸入 AuditLevel
    • 針對 [值類型],選 取 [REG_DWORD]。
    • 針對 [ 值數據],輸入 00000008
  7. 請選擇 [確定]

備註

若要讓 GPO 生效,GPO 變更必須復寫到網域中的所有域控制器。

若要選擇在多部電腦上加入新增的 LSA 保護,您可以使用組策略的登錄用戶端延伸模組來修改 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa。 如需指示,請參閱本文稍後 的啟用和設定新增的 LSA 認證保護

識別 LSASS.exe 無法載入的外掛程式和驅動程式

啟用 LSA 保護時,系統會產生事件記錄檔,以識別在 LSA 下無法載入的所有外掛程式和驅動程式。 加入加入 LSA 保護之後,您可以使用事件記錄檔來識別 LSA 外掛程式和無法在 LSA 保護模式中載入的驅動程式。

展開 應用程式和服務記錄檔>Microsoft>Windows>CodeIntegrity>作業,以檢查事件查看器中的下列事件:

  • 當程式代碼完整性檢查判斷某個程序(通常是 LSASS.exe)嘗試載入不符合 Microsoft 簽署層級要求的驅動程式時,將會發生事件 3033
  • 當程式代碼完整性檢查判斷進程通常 LSASS.exe時,就會嘗試載入不符合共用區段安全性需求的驅動程式時,就會發生事件 3063

共用區段通常會在程式設計技術允許實例數據與使用相同安全性內容的其他進程互動時產生。 共用區段可能會建立安全性弱點。

啟用和設定新增的 LSA 認證保護

您可以使用本節中的程式,為執行 Windows 8.1 或更新版本或 Windows Server 2012 R2 或更新版本的裝置設定新增 LSA 保護。

使用安全開機和 UEFI 的裝置

當您在使用安全開機或 UEFI 的 x86 型或 x64 型裝置上啟用 LSA 保護時,您可以使用登錄機碼或原則,將 UEFI 變數儲存在 UEFI 韌體中。 使用 UEFI 鎖定啟用時,LSASS 會以受保護的進程的形式執行,而且此設定會儲存在韌體中的 UEFI 變數中。

當設定儲存在韌體中時,就無法刪除或變更 UEFI 變數,藉由修改登錄或原則來設定新增的 LSA 保護。 您必須使用 移除 LSA 保護 UEFI 變數中的指示來重設 UEFI 變數

在沒有 UEFI 鎖定的情況下啟用時,LSASS 會以受保護的進程執行,而且此設定不會儲存在 UEFI 變數中。 預設會在安裝 Windows 11 版本 22H2 或更新版本的裝置上套用此設定。

在不支援 UEFI 或已停用安全開機的 x86 型或 x64 型裝置上,您無法將 LSA 保護的設定儲存在韌體中。 這些裝置完全依賴登錄機碼的存在。 在此案例中,您可以使用對裝置的遠端訪問來停用 LSA 保護。 停用 LSA 保護在裝置重新啟動之前不會生效。

自動啟用

針對執行 Windows 11 版本 22H2 和更新版本的用戶端裝置,如果符合下列準則,預設會啟用新增的 LSA 保護:

  • 裝置是 Windows 11 版本 22H2 或更新版本的新安裝,而不是從舊版升級。
  • 裝置已加入企業網域(已加入 Active Directory 網域、已加入 Microsoft Entra 網域,或已加入混合式 Microsoft Entra 網域)。
  • 裝置具備虛擬機管理程式保護的程式碼完整性(HVCI)

在 Windows 11 版本 22H2 和更新版本上自動啟用新增的 LSA 保護,不會為此功能設定 UEFI 變數。 如果您想要設定 UEFI 變數,您可以使用登錄組態或原則。

在單一電腦上啟用 LSA 保護

您可以透過使用登錄編輯器或本機群組原則,在單一計算機上啟用 LSA 保護。

透過使用登錄檔啟用

  1. 開啟註冊表編輯器,或在 [執行] 對話框中輸入 RegEdit.exe,然後移至 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 登錄機碼。
  2. 開啟 RunAsPPL 值,並編輯其數據:
    • 若要使用 UEFI 變數來設定功能,請使用 dword 的類型和數據值 00000001
    • 若要設定不含 UEFI 變數的功能,請使用 dword 的類型和數據值 00000002。 此值只會在 Windows 11 組建 22H2 和更新版本上強制執行。
  3. 重新啟動電腦。

在 Windows 11 版本 22H2 及之後的版本上使用本機群組原則來啟用

  1. 在 [執行] 對話框中輸入 gpedit.msc,以開啟本地組原則編輯器。
  2. 展開 [電腦設定]>[系統管理範本]>[系統]>[本機安全性授權單位]
  3. 開啟 將 LSASS 設定為以受保護的進程執行 原則。
  4. 將原則設定為 [已啟用]
  5. [選項] 底下,選取下列其中一個選項:
    • 若要使用 UEFI 變數設定功能,請選取 [ 使用 UEFI 鎖定啟用]。
    • 若要設定沒有 UEFI 變數的功能,請選取 [已啟用但不鎖定 UEFI]。
  6. 請選擇 [確定]
  7. 重新啟動電腦。

使用組策略啟用 LSA 保護

  1. 在 [執行] 對話框中輸入 gpmc.msc,或從 [開始] 功能選取 [組策略管理控制台],以開啟組策略管理控制台。
  2. 建立新的 GPO,並在網域層級進行連結,或者連結到包含電腦帳戶的組織單位。 或選取已部署的 GPO。
  3. 以滑鼠右鍵點擊 GPO,然後選取 [編輯] 以開啟 [組策略管理編輯器]。
  4. 展開 [電腦設定]>[偏好設定]>[Windows 設定]
  5. 用滑鼠右鍵點擊 [註冊表],指向 [新增],然後選取 [註冊表項目]。 [ 新增登錄屬性] 對話框隨即出現。
  6. 在 [ 新增登錄屬性] 對話框中,選取或輸入下列值:
    • 針對 Hive,選取 HKEY_LOCAL_MACHINE。
    • 針對 [密鑰路徑],選取 [SYSTEM\CurrentControlSet\Control\Lsa]。
    • 針對 值名稱,輸入 RunAsPPL
    • 針對 [值類型],選取 [REG_DWORD]。
    • 針對 [值數據],輸入下列其中一個值:
      • 若要使用 UEFI 變數啟用 LSA 保護,請輸入 00000001
      • 若要在沒有 UEFI 變數的情況下啟用 LSA 保護,請輸入 00000002。 此設定只會在 Windows 11 版本 22H2 和更新版本上強制執行。
  7. 請選擇 [確定]

藉由建立自定義裝置組態配置檔來啟用 LSA 保護

針對執行 Windows 11 版本 22H2 和更新版本的裝置,您可以採取下列各節中的步驟來啟用和設定 LSA 保護。 此程式會使用 Microsoft Intune 系統管理中心 來建立自定義裝置組態配置檔。

建立個人檔案

  1. 在 Intune 系統管理中心,移至 [裝置>] [Windows>組態配置檔],然後選取 [ 建立配置檔]。
  2. 在[建立配置檔]畫面上,選取下列選項:
    • [平臺] 下,選取 [Windows 10 及更新版本]
    • [配置檔類型] 底下,選取 [ 範本],然後選取 [ 自定義]。
  3. 選取 ,創建
  4. 在 [ 基本] 畫面上,輸入配置檔的名稱和選擇性描述,然後選取 [ 下一步]。

新增初始組態設定

  1. 在 [組態設定] 畫面上,選取 [[新增]。
  2. 在 [ 新增數據列 ] 畫面上,輸入下列資訊:
    • 針對 [名稱],輸入 Open Mobile Alliance – Uniform Resource (OMA-URI) 設定的名稱。
    • 針對 OMA-URI,輸入 ./Device/Vendor/MSFT/Policy/Config/LocalSecurityAuthority/ConfigureLsaProtectedProcess
    • 針對 [數據類型],選取 [ 整數]。
    • 針對 [值],輸入下列其中一個值:
      • 若要設定 LSASS 以使用 UEFI 鎖定作為受保護的進程執行,請輸入 1
      • 若要設定 LSASS 以沒有 UEFI 鎖定的受保護進程執行,請輸入 2
  3. 選取 儲存,然後選取 下一步

完成設定檔的設定

  1. 在 [工作分派] 頁面上,設定工作分派,然後選取 [[下一步]
  2. 在 [適用性規則] 頁面上,設定任何適用性規則,然後選取 [[下一步]
  3. 檢閱與建立 頁面上,確認設定,然後選取 建立
  4. 重新啟動電腦。

如需此原則設定服務提供者 (CSP) 的詳細資訊,請參閱 LocalSecurityAuthority - ConfigureLsaProtectedProcess

停用 LSA 保護

您可以使用登錄或使用本地組原則來停用 LSA 保護。 如果裝置使用安全開機,而且您在韌體中設定 LSA 保護 UEFI 變數,您可以使用工具來移除 UEFI 變數。

透過使用註冊表停用

  1. 開啟註冊表編輯器,或在 [執行] 對話框中輸入 RegEdit.exe,然後移至 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 登錄機碼。
  2. 開啟 RunAsPPL 值,並將其數據值設定為 00000000。 或刪除 RunAsPPL 值。
  3. 如果使用 UEFI 變數啟用受保護過程輕型 (PPL) 功能,請使用 Local Security Authority Protected Process Opt-out 工具 來移除 UEFI 變數。
  4. 重新啟動電腦。

在 Windows 11 版本 22H2 和更新版本上使用本地政策停用

  1. 在 [執行] 對話框中輸入 gpedit.msc,以開啟本地組原則編輯器。
  2. 展開 [電腦設定]>[系統管理範本]>[系統]>[本機安全性授權單位]
  3. 開啟 將 LSASS 設定為以受保護進程身份運行的策略
  4. 將原則設定為 [已啟用]
  5. 在 [選項]下,選取 [停用]。
  6. 請選擇 [確定]
  7. 重新啟動電腦。

備註

如果您將此原則設定為 [未設定] 且先前已啟用該原則,則先前的設定不會清除並繼續強制執行。 您必須在 [ 選項] 下拉式清單中,將原則設定為 [停用],才能停用此功能。

拿掉 LSA 保護 UEFI 變數

如果裝置使用安全開機,您可以使用 Microsoft 下載中心的 本機安全性授權單位 (LSA) 受保護的進程退出宣告工具 ,刪除 UEFI 變數。

備註

下載中心提供兩個名為 LsaPplConfig.efi的檔案。 較小的檔案適用於 x86 型系統,而較大的檔案則適用於 x64 型系統。

如需管理安全開機的詳細資訊,請參閱 UEFI 韌體

謹慎

當安全開機關閉時,會重設所有安全開機和 UEFI 相關組態。 只有在停用 LSA 保護的所有其他方法失敗時,才應該關閉安全開機。

確認 LSA 保護

若要判斷 LSA 是否在 Windows 啟動時以受保護模式啟動,請採取下列步驟:

  1. 開啟 [事件檢視器]。
  2. 展開 Windows 日誌>系統
  3. 尋找下列 WinInit 事件: 12:LSASS.exe 是以層級為 4 的受保護進程啟動

LSA 和 Credential Guard

LSA 保護是一項安全性功能,可藉由封鎖不受信任的 LSA 程式代碼插入和處理記憶體傾印,保護認證等機密資訊免於竊取。 LSA 保護會在背景執行,方法是隔離容器中的 LSA 進程,並防止其他進程,例如惡意執行者或應用程式存取此功能。 此隔離可讓 LSA 保護成為重要的安全性功能,這也是 Windows 11 預設啟用的原因。

從 Windows 10 開始,Credential Guard 也可藉由保護 NTLM 密碼哈希、Kerberos 票證授票以及應用程式中儲存的網域認證來防止認證竊取攻擊。 Kerberos、NTLM 和認證管理員會使用虛擬化式安全性 (VBS) 隔離秘密。

啟用 Credential Guard 時,LSA 進程會與稱為隔離 LSA 進程的元件通訊,或 LSAIso.exe,以儲存及保護秘密。 隔離 LSA 程式所儲存的數據會使用 VBS 來保護,且無法供作業系統的其他部分存取。 LSA 使用遠端程序呼叫,與隔離的 LSA 程序進行通訊。

從 Windows 11 版本 22H2 開始,VBS 和 Credential Guard 預設會在符合系統需求的所有裝置上啟用。 只有64位安全開機裝置才支援 Credential Guard。 LSA 保護和 Credential Guard 是互補的,而且支援 Credential Guard 或預設啟用它的系統也可以啟用 LSA 保護並從中受益。 如需 Credential Guard 的詳細資訊,請參閱 Credential Guard 概觀。

更多資源