KB5040268: 如何管理與 CVE-2024-3596 相關聯的 Access-Request 封包攻擊弱點

Applies To
Windows Server 2008 Datacenter ESU Windows Server 2008 Standard ESU Windows Server 2008 Enterprise ESU Windows Server 2008 R2 Enterprise ESU Windows Server 2008 R2 Standard ESU Windows Server 2008 R2 Datacenter ESU Windows Server 2012 ESU Windows Server 2012 R2 ESU Windows 10, version 1607, all editions Windows Server 2016 Windows 10 Home and Pro, version 21H2 Windows 10 Enterprise and Education, version 21H2 Windows 10 IoT Enterprise, version 21H2 Windows 10 Home and Pro, version 22H2 Windows 10 Enterprise Multi-Session, version 22H2 Windows 10 Enterprise and Education, version 22H2 Windows 10 IoT Enterprise, version 22H2 Windows 11 SE, version 21H2 Windows 11 Home and Pro, version 21H2 Windows 11 Enterprise and Education, version 21H2 Windows 11 IoT Enterprise, version 21H2 Windows 11 SE, version 22H2 Windows 11 Home and Pro, version 22H2 Windows 11 Enterprise Multi-Session, version 22H2 Windows 11 Enterprise and Education, version 22H2 Windows 11 IoT Enterprise, version 22H2 Windows Server 2022 Windows 11 Home and Pro, version 23H2 Windows 11 Enterprise and Education, version 23H2 Windows 11 Enterprise Multi-Session, version 23H2 DO_NOT_USE_Windows 11 IoT Enterprise, version 23H2 Windows 11 SE, version 24H2 Windows 11 Enterprise and Education, version 24H2 Windows 11 Enterprise Multi-Session, version 24H2 Windows 11 Home and Pro, version 24H2 Windows 11 IoT Enterprise, version 24H2

注意

重要事項 某些版本的 Microsoft Windows 已經達到支援終止階段。 請注意,延伸安全性更新 (ESU) 可使用時,可能會在最新的作業系統結束日期之後支援某些版本的 Windows。 請參閱生命週期常見問題 - 擴展安全匯報,了解提供 ESU 的產品清單。

變更日誌
變更日期 變更描述
2024 年 8 月 1 日
  • 可讀性的次要格式設定變更
  • 在「用戶端的所有 Access-Request 封包中設定 Message-Authenticator 屬性的驗證」設定中,系統使用了「訊息」一詞,而非「封包」
2024 年 8 月 5 日
  • 已新增使用者資料包通訊協定 (UDP) 的連結
  • 已新增網路原則伺服器 (NPS) 的連結
2024 年 8 月 6 日
  • 更新 [摘要] 區段以指出這些變更已納入在 2024 年 7 月 9 日或之後的 Windows 更新中
  • 更新 [採取動作] 區段中的項目符號,表示我們建議您開啟選項。 這些選項預設為關閉。
  • 在 [此更新新增的事件] 區段中新增備註,指出 Event ID 是透過 2024 年 7 月 9 日或之後的 Windows 更新新增至 NPS 伺服器

內容

摘要

Windows 更新日期為 2024 年 7 月 9 日或之後,針對 RADIUS) 協議 (遠端認證撥入用戶服務(Remote Authentication Dial-In User Service)中與 MD5 碰撞問題相關的安全漏洞進行了修正。 由於 MD5 中的弱式資料完整性檢查功能,攻擊者可能會竄改封包以取得未經授權的存取權。 MD5 漏洞使 得基於 UDP) 的 RADIUS 流量在網際網路上 (無法防範封包偽造或傳輸過程中的修改。

欲了解更多此漏洞資訊,請參閱 CVE-2024-3596 及白皮書《 RADIUS AND MD5 COLLISION ATTACKS》

注意 此漏洞需要對 RADIUS 網路及 網路政策伺服器 (NPS) 進行實體存取。 因此,具有安全 RADIUS 網路的客戶不易受到攻擊。 此外,透過 VPN 進行 RADIUS 通訊時,不存在此弱點。

採取行動

為了協助保護您的環境,建議您啟用下列設定。 如需詳細資訊,請參閱 設定 一節。
  • 設定 Access-Request 封包中的 Message-Authenticator 屬性。 請確定所有 Access-Request 封包都包含 Message-Authenticator 屬性。 根據預設,設定 Message-Authenticator 屬性的選項為關閉。 建議您開啟此選項。
  • 驗證 Access-Request 封包中的 Message-Authenticator 屬性。 考慮在 Access-Request 封包上強制執行 Message-Authenticator 屬性的驗證。 系統不會處理沒有此屬性的 Access-Request 封包。 根據預設,Access-Request 郵件必須包含郵件驗證器屬性 選項已關閉。 建議您開啟此選項。
  • 如果 Proxy-State 屬性存在,請驗證 Access-Request 封包中的 Message-Authenticator 屬性。 選用,如果無法在每一個 Access-Request 封包上執行 Message-Authenticator 屬性的強制驗證,請啟用 limitProxyState 選項。 limitProxyState 會強制丟棄包含 Proxy-state 屬性且不含 Message-Authenticator 屬性的 Access-Request 封包。 根據預設,limitproxystate 選項已關閉。 建議您開啟此選項。
  • 在 RADIUS 回應封包中驗證 Message-Authenticator 屬性: Access-AcceptAccess-RejectAccess-Challenge。 啟用 requireMsgAuth 選項以強制從不包含 Message-Authenticator 屬性的遠端伺服器中丟棄 RADIUS 回應封包。 根據預設,requiremsgauth 選項已關閉。 建議您開啟此選項。

此更新新增的事件

如需詳細資訊,請參閱 設定 一節。

注意

注意 這些事件 ID 是透過 2024 年 7 月 9 日或之後的 Windows 更新加入 NPS 伺服器。

事件編號:4418

Access-Request 封包因為包含 Proxy-State 屬性但缺少 Message-Authenticator 屬性,而遭捨棄。 請考慮將 RADIUS 用戶端變更為包含 Message-Authenticator 屬性。 或者,您也可以使用 limitProxyState 設定,為 RADIUS 用戶端新增例外狀況。

事件記錄檔 系統
事件類型 錯誤
事件來源 NPS
事件識別碼 4418
事件文字 收到一則來自 RADIUS 用戶端< ip/name> 的 Access-Request 訊息,包含 Proxy-State 屬性,但未包含 Message-Authenticator 屬性。 因此,要求已捨棄。 基於安全性目的,訊息-驗證器屬性是必要項目。 請參閱 https://support.microsoft.com/help/5040268 了解更多資訊。
事件編號:4419

這是 Access-Request 封包的稽核事件,其中 Proxy-State 狀態不包含 Message-Authenticator 屬性。 請考慮將 RADIUS 用戶端變更為包含 Message-Authenticator 屬性。 一旦啟用 limitproxystate 設定,系統便會捨棄 RADIUS 封包。

事件記錄檔 系統
事件類型 警告
事件來源 NPS
事件識別碼 4419
事件文字 收到一則來自 RADIUS 用戶端< ip/name> 的 Access-Request 訊息,包含 Proxy-State 屬性,但未包含 Message-Authenticator 屬性。 由於在 [稽核模式] 中設定了 limitProxyState,所以目前允許該要求。 請參閱 https://support.microsoft.com/help/5040268 了解更多資訊。
事件編號:4420

這是在 Proxy 中沒有 Message-Authenticator 屬性的情況下收到的 RADIUS 回應封包稽核事件。 請考慮變更 Message-Authenticator 屬性的指定 RADIUS 伺服器。 一旦啟用 requiremsgauth 設定,系統便會捨棄 RADIUS 封包。

事件記錄檔 系統
事件類型 警告
事件來源 NPS
事件識別碼 4420
事件文字 RADIUS 代理伺服器收到來自伺服器 ip/name> 的回應<,但缺少 Message-Authenticator 屬性。 由於在 [稽核模式] 中設定了 requireMsgAuth,所以目前允許該回應。 請參閱 https://support.microsoft.com/help/5040268 了解更多資訊。
事件編號:4421

當未設定建議的設定時,會在服務啟動期間記錄此事件。 如果 RADIUS 網路不安全,請考慮啟用該設定。 針對安全網路,可以忽略這些事件。

事件記錄檔 系統
事件類型 警告
事件來源 NPS
事件識別碼 4421
事件文字 RequireMsgAuth 和/或 limitProxyState 設定為 <Disable/Audit> 模式。 基於安全性目的,這些設定應該在 [啟用] 模式中進行設定。 請參閱 https://support.microsoft.com/help/5040268 了解更多資訊。

設定

設定在伺服器上所有 Access-Request 封包中傳送 Message-Authenticator 屬性

此設定可讓 NPS Proxy 開始在所有 Access-Request 封包中傳送 Message-Authenticator 屬性。 若要啟動此設定,請使用下列其中一種方法。

方法 1: 使用 NPS Microsoft Management Console(MMC)

如果使用 NPS MMC,請依照下列步驟執行:

  1. 在伺服器上開啟 NPS 使用者介面 (UI)。
  2. 開啟遠端 RADIUS 伺服器群組
  3. 選取 [RADIUS 伺服器]
  4. 移至 [驗證/帳戶處理]
  5. 點擊以選取 [要求必須包含 Message-Authenticator 屬性] 核取方塊。

方法 2: 使用 netsh 命令

若要使用 netsh,請執行下列命令:

注意

netsh nps set remoteserver remoteservergroup = <server group name> address = <server address> requireauthattrib = yes

欲了解更多資訊,請參閱 遠端 RADIUS 伺服器群組指令

在用戶端所有存取請求封包中設定對訊息驗證器屬性的驗證

此設定需要在所有 Access-Request 封包中使用 Message-Authenticator 屬性,如果缺乏該屬性,則會捨棄封包。

方法 1: 使用 NPS Microsoft Management Console(MMC)

如果使用 NPS MMC,請依照下列步驟執行:

  1. 在伺服器上開啟 NPS 使用者介面 (UI)。
  2. 開啟 [RADIUS 用戶端]
  3. 選取 [RADIUS 用戶端]
  4. 移至 [進階設定]
  5. 點擊以選取 Access-Request 訊息必須包含 message-authenticator 屬性 核取方塊。

欲了解更多資訊,請參閱 「配置 RADIUS 用戶端」。

方法 2: 使用 netsh 命令

若要使用 netsh,請執行下列命令:

注意

netsh nps set client name = <client name> requireauthattrib = yes

欲了解更多資訊,請參閱 遠端 RADIUS 伺服器群組指令

為所有用戶端設定 limitproxystate

此設定可讓 NPS 伺服器捨棄包含 Proxy-State 屬性但不包含 Message-Authenticator 屬性的潛在易受攻擊的 Access-Request 封包。 此設定支援三種模式:

  • 稽核
  • [啟用]
  • 停用

[稽核] 模式中,會記錄警告事件 (事件識別碼: 4419),但仍會處理該要求。 使用此模式,可識別傳送要求的不相容實體。

視需要使用 netsh 命令來設定、啟用及新增例外狀況。

  1. 若要在 [稽核] 模式中設定用戶端,請執行下列命令:

    注意

    netsh nps set limitproxystate all = "audit"

  2. 若要在 [啟用] 模式中設定用戶端,請執行下列命令:

    注意

    netsh nps set limitproxystate all = "enable"

  3. 若要新增例外以排除用戶端參與 limitProxystate 驗證,請執行以下指令:

    注意

    Netsh NPS Set limitproxystate Name = <client name> exception = “Yes”

為遠端伺服器設定 requiremsgauth

此設定可讓 NPS Proxy 在不具有 Message-Authenticator 屬性的情況下,捨棄潛在易受攻擊的回應訊息。 此設定支援三種模式:

  • 稽核
  • [啟用]
  • Disable

[稽核] 模式中,會記錄警告事件 (事件識別碼: 4420),但仍會處理該要求。 使用此模式,可識別傳送回應的不相容實體。

視需要使用 netsh 命令來設定、啟用及新增例外狀況。

  1. 若要在 [稽核] 模式中設定伺服器,請執行下列命令:

    注意

    netsh nps set Requiremsgauth all = "audit"

  2. 若要啟用所有伺服器的設定,請執行下列命令:

    注意

    Netsh NPS set requiremsgauth all = "enable"

  3. 若要新增例外狀況,以從 requireauthmsg 驗證排除伺服器,請執行下列命令:

    注意

    Netsh NPS set requiremsgauth remoteservergroup = <遠端伺服器群組名稱> address = <server address> exception = “yes”

常見問題集

如果在設定啟用後因訊息遺失而發現 VPN 請求失敗,該怎麼辦?

檢查相關事件的 NPS 模組事件。 請考慮為受影響的用戶端/伺服器新增例外狀況或設定調整。

如果 RADIUS 網路是安全的,需要做任何設定變更或採取什麼行動嗎?

否,本文中討論的設定建議用於不安全的網路。

參考

描述 Microsoft 軟體更新所使用的標準術語說明

第三方資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。

我們提供協力廠商的連絡資訊,協助您尋找技術支援。 此連絡資訊如有變更,恕不另行通知。 我們不保證此協力廠商連絡資訊的正確性。