共用方式為


Windows 更新為 CVE-2022-21857 新增 NTLM 傳遞驗證保護

原始 KB 編號: 5010576

安裝 2022 年 1 月 11 日 Windows 更新或更新版本的 Windows 更新之後,包含 CVE-2022-21857 的保護之後,域控制器會針對信任網域透過網域或樹系信任所傳送的 NTLM 傳遞驗證要求強制執行新的安全性檢查,或透過安全通道信任由只讀域控制器 (RODC) 傳送。 新的安全性檢查要求要驗證的網域或客戶端適合使用的信任。 具體來說,如果不符合下列需求,適用於所使用之信任類型的安全性檢查將會拒絕 NTLM 傳遞驗證要求:

  • 網域信任的要求必須使用與信任網域相同的功能變數名稱。
  • 透過樹系信任的要求必須使用屬於信任樹系成員的功能變數名稱,而且不會與其他樹系發生名稱衝突。
  • RODC 轉送的要求必須使用 RODC 先前已獲授權快取秘密的用戶端名稱。

為了支援網域和樹系信任驗證,會更新每個樹系中根域的主要域控制器 (PDC),以定期發出輕量型目錄存取通訊協定 (LDAP) 查詢。 每個信任樹系中所有功能變數名稱每隔八小時發出一次查詢,稱為「信任掃描」。 這些功能變數名稱會儲存在 msDS-TrustForestTrustInfo 對應受信任網域物件的屬性中(TDO)。

必要條件

隨著更新新增新的信任掃描行為,封鎖來自受信任樹系 PDC 的LDAP活動流量、驗證和授權到信任樹系的任何項目都會造成問題:

  • 如果使用防火牆,必須在受信任的 PDC 和信任網域 DC 之間允許 TCP 和 UDP 連接埠 389,以及用來操作信任的通訊(名稱解析、NTLM 的 RPC 和 Kerberos 的埠 88)。
  • 信任樹系的 PDC 也需要 從網路 用戶權力存取這部計算機,才能向信任網域 DC 進行驗證。 根據預設,「已驗證的使用者」具有包含受信任網域 PDC 的用戶權力。
  • 受信任網域中的 PDC 必須有足夠的讀取許可權,才能在組態 NC 和子物件中信任樹系分割區容器。 根據預設,「已驗證的使用者」具有存取權,這會套用至呼叫信任的網域 PDC。
  • 啟用選擇性驗證時,信任樹系中的 PDC 必須被 授與 [允許] 以驗證 信任樹系DC計算機帳戶的許可權,以保護信任樹系。

如果信任樹系不允許信任的樹系查詢信任資訊,信任樹系可能會面臨NTLM轉送攻擊的風險。

例如,樹系 A 信任樹系 B 和樹系 C 信任樹系 B。如果樹系 A 拒絕允許來自樹系 B 中根域的驗證或 LDAP 活動,則樹系 A 會面臨來自惡意或遭入侵樹系 C 的 NTLM 轉送攻擊的風險。

新事件

下列事件會新增為 CVE-2022-21857 保護的一部分,並記錄在系統事件記錄檔中。

根據預設,Netlogon 服務會針對警告和錯誤狀況節流事件,這表示不會記錄每個要求警告或失敗事件。 相反地,摘要事件(Netlogon 事件標識碼 5832 和 Netlogon 事件標識碼 5833)會每天記錄一次 NTLM 傳遞驗證,這些驗證要麼被此更新中引進的新安全性檢查封鎖,要麼因為系統管理設定豁免旗標的存在而允許。

如果已記錄 Netlogon 事件識別碼 5832 或 Netlogon 事件識別碼 5833,而且您需要更多資訊,請建立並將下列登錄路徑中的 REG_DWORD 值設定 ThrottleNTLMPassThroughAuthEvents 為零,以停用事件節流:

HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

注意

此設定會在系統或服務重新啟動的情況下立即生效,而且它不受組策略物件 (GPO) 的控制。

Netlogon 事件標識碼 事件訊息文字 備註
5832 Netlogon 服務允許在最近的事件節流期間,允許來自受信任網域和/或樹系的一或多個不安全傳遞 NTLM 驗證要求。 這些不安全的要求通常會遭到封鎖,但因為目前的信任設定而允許繼續。
警告:允許不安全的傳遞驗證要求會公開您的 Active Directory 樹系受到攻擊。
如需此問題的詳細資訊,請造訪 https://go.microsoft.com/fwlink/?linkid=276811
由於系統管理覆寫而允許的不安全要求計數: <計數號碼>
此警告事件會記錄由於系統管理設定豁免旗標存在而允許的不安全傳遞驗證數目。
5833 Netlogon 服務在最近的事件節流期間封鎖了來自受信任用戶端、網域和/或樹系的一或多個不安全傳遞 NTLM 驗證要求。 如需此問題的詳細資訊,包括如何啟用更詳細的記錄,請造訪 https://go.microsoft.com/fwlink/?linkid=276811
封鎖不安全的要求計數: <計數>
此警告事件會記錄封鎖的不安全傳遞驗證數目。
5834 Netlogon 服務允許來自受信任用戶端、網域或樹系的不安全傳遞 NTLM 驗證要求。 此不安全的要求通常會遭到封鎖,但因為目前的信任設定而允許繼續。
警告:允許不安全的傳遞驗證要求會公開您的 Active Directory 樹系受到攻擊。 如需此問題的詳細資訊,請造訪 https://go.microsoft.com/fwlink/?linkid=276811
帳戶名稱: <帳戶名稱>
信任名稱: <信任名稱>
信任類型: <信任類型>
用戶端 IP 位址: <用戶端 IP 位址>
封鎖原因: <封鎖原因>
資源伺服器 Netbios 名稱: <資源伺服器 Netbios 名稱>
資源伺服器 DNS 名稱: <資源伺服器 DNS 名稱>
資源網域 Netbios 名稱: <資源網域 Netbios 名稱>
資源域 DNS 名稱: <資源域 DNS 名稱>
只有在 Netlogon 事件節流已停用時,才會記錄此警告事件。 它會記錄因為系統管理員設定的豁免旗標而允許的特定傳遞驗證要求。
5835 Netlogon 服務封鎖了來自受信任用戶端、網域或樹系的不安全傳遞 NTLM 驗證要求。 如需詳細資訊,請造訪 https://go.microsoft.com/fwlink/?linkid=276811
帳戶名稱: <帳戶名稱>
信任名稱: <信任名稱>
信任類型: <信任類型>
用戶端 IP 位址: <用戶端 IP 位址>
封鎖原因: <封鎖原因>
資源伺服器 Netbios 名稱: <資源伺服器 Netbios 名稱>
資源伺服器 DNS 名稱: <資源伺服器 DNS 名稱>
資源網域 Netbios 名稱: <資源網域 Netbios 名稱>
資源域 DNS 名稱: <資源域 DNS 名稱>
只有在 Netlogon 事件節流已停用時,才會記錄此警告事件。 它會記錄封鎖的特定傳遞驗證要求。

注意

這些事件不會受到節流。

LSA 事件標識碼 事件訊息文字 備註
6148 PDC 已完成所有信任的自動信任掃描作業,且沒有任何錯誤。 如需詳細資訊,請參閱 https://go.microsoft.com/fwlink/?linkid=2162089 此參考事件預期會每隔八小時定期顯示一次。
6149 PDC 已完成所有信任的自動信任掃描作業,並遇到至少一個錯誤。 如需詳細資訊,請參閱 https://go.microsoft.com/fwlink/?linkid=2162089 應該調查此警告事件,特別是如果每8小時顯示一次。
6150 PDC 已完成信任 『<Trust Name>』 的系統管理員要求信任掃描作業,且沒有任何錯誤。 如需詳細資訊,請參閱 https://go.microsoft.com/fwlink/?linkid=2162089. 此參考事件可用來追蹤系統管理員使用 Cmdlet 手動叫用 netdom trust <Local Forest> /Domain:* /InvokeTrustScanner PDC 信任掃描器的時機。
6151 PDC 找不到要掃描的指定信任 『<Trust Name>』。 信任不存在,或不是輸入或雙向信任。 如需詳細資訊,請參閱 https://go.microsoft.com/fwlink/?linkid=2162089 此警告事件會追蹤系統管理員使用不正確的樹系名稱手動叫用 PDC 信任掃描器時。
6152 PDC 已完成信任 「<信任名稱>」的系統管理員要求信任掃描作業,併發生錯誤。 如需詳細資訊,請參閱 https://go.microsoft.com/fwlink/?linkid=2162089 此警告事件會追蹤系統管理員執行 Cmdlet 手動叫用 PDC 信任掃描器時 netdom trust <Local Forest> /Domain:* /InvokeTrustScanner ,且作業失敗。
6153 PDC 嘗試掃描具名信任時發生錯誤。 信任:信任名稱>錯誤:<<錯誤訊息>如需詳細資訊,請參閱 https://go.microsoft.com/fwlink/?linkid=2162089 這個警告事件是前一個事件的補充,並包含錯誤碼。 它會在排程的信任掃描期間每隔 8 小時記錄一次。

當某些失敗相關事件中包含錯誤碼時,您必須啟用追蹤以進一步調查。

Netlogon 記錄和 LSA 記錄的改善

Netlogon 記錄 (%windir%\debug\netlogon.log) 和 LSA 記錄 (lsp.log) 已更新,以支援更新中的改善。

開啟和停用 Netlogon 紀錄 (netlogon.log)

  • 若要啟用 Netlogon 記錄,請執行下列命令:

    nltest /dbflag:2080ffff
    
  • 若要在調查之後停用 Netlogon 記錄,請執行下列命令:

    nltest /dbflag:0
    

使用 PowerShell 啟用和停用 LSA 記錄 (lsp.log)

  • 若要啟用 LSA 記錄,請執行下列 Cmdlet:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgInfoLevel -Value 0x1820000 -Type dword -Force 
    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgTraceOptions -Value 0x1 -Type dword -Force
    
    
  • 若要停用 LSA 記錄,請執行下列 Cmdlet:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgInfoLevel -Value 0x0 -Type dword -Force 
    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgTraceOptions -Value 0x0 -Type dword -Force
    
    

使用 reg.exe 啟用和停用 LSA 記錄 (lsp.log)(針對沒有 PowerShell 的舊版作業系統)

  • 若要啟用 LSA 記錄,請執行下列 reg 命令:

    reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /V LspDbgTraceOptions /t REG_DWORD /d 1 /f 
    reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /V LspDbgInfoLevel /t REG_DWORD /d 0x1820000 /f
    
  • 若要停用 LSA 記錄,請執行下列 reg 命令:

    reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /V LspDbgTraceOptions /t REG_DWORD /d 0 /f 
    reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /V LspDbgInfoLevel /t REG_DWORD /d 0x0 /f
    

nltest.exe和netdom.exe工具的改善

nltest.exe和netdom.exe工具會更新,以支援此更新中的改善。

Nltest.exe改善

nltest.exe工具可以使用下列命令,查詢並顯示受信任網域物件屬性中的所有msDS-TrustForestTrustInfo記錄:

nltest.exe /lsaqueryfti:<Trusting Forest Name>

以下是輸出的範例:

C:\Windows\System32>nltest.exe /lsaqueryfti:contoso.com 
TLN: contoso.com 
Dom: contoso.com 
Scan: contoso.com Sid:(null) Flags:0x0 
The command completed successfully

注意

輸出中的「掃描」一詞是指 PDC 信任掃描器作業期間保存的新「掃描器」記錄類型。

Netdom.exe改善

netdom.exe工具可以起始新的 PDC 信任掃描儀作業,並為信任樹系中的特定信任網域或特定子域設定安全性檢查豁免旗標。

  • 起始 PDC 信任掃描器作業。

    • 針對所有信任的樹系,執行下列命令:

      netdom trust <Local Forest> /Domain:* /InvokeTrustScanner
      
    • 針對特定的信任樹系,執行下列命令:

      netdom trust <Local Forest> /Domain:<Trusting Forest> /InvokeTrustScanner
      

      注意

      此命令必須在本機樹系的 PDC 本機上執行。

    此命令只能起始作業。 若要找出結果,請查看系統事件記錄檔中是否有新的 LSA 事件,並視需要啟用 LSA 追蹤。

調查失敗的 NTLM 傳遞驗證

注意

遵循這些步驟之前,請確定您的設定符合必要條件一節中所述的需求。

以下是基本步驟:

  1. 在所有相關的DC上啟用 Netlogon 和 LSA 記錄。

  2. 重現問題。

  3. 停用 Netlogon 和 LSA 記錄。

  4. 在netlogon.log檔案中搜尋下列字詞,並檢閱描述失敗的任何記錄專案:

    • “LsaIFilterInboundNamespace”
    • “NlpValidateNTLMTargetInfo”
    • “NlpVerifyTargetServerRODCCachability”
    • “ResourceDomainNameCollidesWithLocalForest”
  5. 在lsp.log檔案中搜尋 「LsaDbpFilterInboundNamespace」 一詞,並檢閱描述失敗的任何記錄專案。

注意

針對透過樹系信任的故障轉移驗證,請使用新的 nltest.exe 選項來傾印 PDC 信任掃描器所保存的所有新記錄。

調查失敗的 PDC 信任掃描器作業

注意

遵循這些步驟之前,請確定您的設定符合必要條件一節中所述的需求。

以下是基本步驟:

  1. 在 PDC 上啟用 LSA 記錄。

    針對特定信任掃描儀作業,此追蹤可能會限製為 TRACE_LEVEL_LSP_FOREST_SCANNER 旗標。

  2. 使用新的netdom.exe/InvokeTrustScanner功能重現問題。

  3. 停用 LSA 記錄。

  4. 搜尋lsp.log檔案中的「失敗」或「失敗」一詞,並檢閱記錄專案。

信任掃描器可能會失敗,原因如下:

  • 分割區容器上缺少許可權。

  • DC 與成員與 DC 之間所需的防火牆埠不會開啟。 以下是防火牆埠:

    • UDP+TCP/389
    • TCP/88
    • UDP+TCP/53

問題緩和措施

如果驗證因域名衝突、設定錯誤或未預期的情況而失敗,請重新命名碰撞網域(s),以避免衝突以減輕問題。

如果透過 RODC 安全通道信任的驗證失敗,請連絡Microsoft支援此問題,因為沒有任何風險降低方法。

如果 PDC 信任掃描器失敗,風險降低會取決於特定內容。 例如,信任樹系中的DC不會將LDAP查詢許可權授與信任樹系的組態命名內容 (NC)。 緩和措施是授與許可權。

常見問題集 (FAQ)

  • 問1:PDC 信任掃描器的頻率是否可設定?

    A1:否。

  • 問2:建立新的樹系信任時,是否會自動叫用 PDC 信任掃描器?

    A2:否。 系統管理員可以視需要手動叫用它,否則新樹系將會在下一個定期掃描。

  • 問3:網域系統管理員是否可以修改新的掃描儀記錄?

    A3:是,但不建議或支援。 如果掃描儀記錄未預期地建立、修改或刪除,PDC 信任掃描器會在下次執行時還原變更。

  • 問 4:我確定我的環境中未使用 NTLM。 如何關閉此行為?

    A4:一般而言,無法關閉新的行為。 無法停用 RODC 特定的安全性驗證。 您可以設定網域信任案例或樹系信任案例的安全性檢查豁免旗標。

  • 問 5:安裝此更新之前,是否需要進行任何設定變更?

    A5:也許。 請確定您的設定符合必要條件一節中所述的需求。

  • 問 6:我需要以任何特定順序修補 DC,此更新才會生效嗎?

    A6:支援修補順序的所有變化。 新的 PDC 信任掃描器作業只有在修補 PDC 之後才會生效。 所有修補的 DC 都會立即開始強制執行 RODC 限制。 修補的非 PDC 在修補 PDC 並開始在 msDS-TrustForestTrustInfo 屬性中建立新的掃描儀記錄之前,不會強制執行 NTLM 傳遞限制。 未修補的 DC (非 PDC) 會在出現時忽略新的掃描器記錄。

  • 問 7:我的樹系何時會安全?

    A7:一旦所有網域中的所有 DC 都安裝此更新,您的樹系就會受到保護。 一旦 PDC 信任掃描器完成至少一個成功的作業,且復寫成功,信任樹系就會受到保護。

  • 問8:我不控制信任的網域或樹系。 如何確保我的樹系安全?

    A8:請參閱先前的問題。 樹系的安全性不取決於任何信任網域或樹系的修補狀態。 我們建議所有客戶修補其 DC。 此外,請變更必要條件一節中所述 組態。

參考資料

如需特定技術詳細數據的詳細資訊,請參閱: