摘要
如CVE-2023-35348中所述,Microsoft 已發行 Windows 更新以解決 Active Directory 同盟服務 (AD FS) 中的權杖重播攻擊弱點。 此更新是由 2023 年 7 月 11 日或之後發行的 Windows 更新所安裝。 根據預設,此更新已停用安裝。 若要啟用更新,您必須設定 EnforceNonceInJWT 設定。
其他相關資訊
此更新引進了新的設定,可在JWT 使用者驗證期間啟用 JSON Web Token (JWT) 聲明的Nonce驗證。
本文說明如何啟用此設定,並提供 AD FS 伺服器上記錄的事件詳細資料,以取得該設定的支援值。
EnforceNonceInJWT 設定
EnforceNonceInJWT 可由 ADFS 伺服器上的系統管理員設定為以下列其中一種模式執行:
-
) 沒有 (預設值:這是用來追蹤 EnforceNonceInJWT 設定值是否曾經變更過。 系統管理員可能無法設定此值。 只有當 ADFS 伺服器在 JWT 主張中出現時,才會驗證它,但不強制執行其目前狀態。
-
禁用: 如果 [預設] 值發生任何問題,或在啟用後再啟用此值時,可能會設定此值來停用修正程式。
-
已啟用: 啟用 EnforceNonceInJWT 設定。 ADFS 伺服器強制規定 Nonce 存在於 JWT 主張中,而且在符合特定條件時也有效。
Ad FS 伺服器上的系統管理員可能會使用下列 PowerShell 命令來變更EnforceNonceInJWT模式:
-
啟用 EnforceNonceInJWT:
Set-AdfsProperties -EnforceNonceInJWT 啟用 -
停用 EnforceNonceInJWT:
Set-AdfsProperties -EnforceNonceInJWT 停用 -
檢查 EnforceNonceInJWT 設定的狀態:
系統管理員可以執行Get-AdfsProperties來檢查目前的EnforceNonceInJWT設定。 傳回 的 EnforceNonceInJWT值會與設定的模式相符。
已記錄的事件
安裝 2023 年 7 月 11 日或之後發行的 Windows 更新之後,可能會在 AD FS 伺服器上記錄下列事件:
附註: 每當 AD FS 伺服器收到 JWT 聲明中不包含 Nonce 的要求,且 EnforceNonceInJWT 設為 [無 ] 或 [ 停用] 時,就會記錄事件 187。
源: AD FS
水準: 警告
ID: 187
消息: AD FS 伺服器收到 JWT 權杖,且在聲明中沒有含任何批註,而且會根據 EnforceNonceInJWT 目前的組態設定來接受。 不過,它會指出惡意用戶端可能重播 JWT 權杖,或是用戶端沒有使用最新的 Windows 更新修補。 請務必更新 EnforceNonceInJWT 設定,以在使用最新的 Windows 更新修補用戶端之後拒絕所有這類 JWT 權杖。 如需詳細資訊,請參閱 HTTPs://go.microsoft.com/fwlink/?linkid=2238156。
附註: 當EnforceNonceInJWT設定為[無] 或 [停用] 時,會在每個 AD FS 服務啟動時記錄事件 188。
源: AD FS
水準: 錯誤
ID: 188
消息: AD FS 伺服器未設定為拒絕在主張中沒有 nonce 的 JWT 權杖。 在確認所有用戶端都已使用最新的 Windows 更新修補之後,應基於安全性考慮啟用 EnforceNonceInJWT) (對應的設定。 事件 187 會指出 AD FS 收到此類權杖並因 EnforceNonceInJWT 的目前設定而接受的實例。 如需詳細資訊,請參閱 HTTPs://go.microsoft.com/fwlink/?linkid=2238156。
採取行動
安裝 2023 年 7 月 11 日或之後在伺服器陣列的所有 AD FS 伺服器上發行的 Windows 更新。 然後,在伺服器陣列的主要 AD FS 伺服器上執行下列 PowerShell 命令以啟用此設定:
Set-AdfsProperties - 已啟用 EnforceNonceInJWT
重要: 當用戶端尚未更新且將 JWT 驗證要求傳送至 AD FS 伺服器時,在某些情況下,您可能會看到驗證失敗。 在這種情況下,建議您安裝 2023 年 7 月 11 日或之後發行的 Windows 更新來更新所有用戶端。 或者,系統管理員可以停用 EnforceNonceInJWT 設定,並監控 AD FS 伺服器以記錄事件 187,以找出在 EnforceNonceInJWT 設定為 [ 啟用] 時可能會遭到拒絕的潛在要求。 確認 AD FS 伺服器上的 Event 187 在定義期間內沒有出現之後, EnforceNonceInJWT 設定必須更新為 [已啟用]。