KB5040268: วิธีจัดการช่องโหว่การโจมตีแพคเก็ต Access-Request ที่เกี่ยวข้องกับ CVE-2024-3596

นำไปใช้กับ
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 บางเวอร์ชันสิ้นสุดการสนับสนุนแล้ว โปรดทราบว่า Windows บางเวอร์ชันอาจได้รับการสนับสนุนหลังจากวันที่สิ้นสุดระบบปฏิบัติการล่าสุดเมื่อ Extended Security Updates (ESU) พร้อมใช้งาน ดู Lifecycle FAQ - Extended Security Updates สําหรับรายการผลิตภัณฑ์ที่เสนอ ESU

บันทึกการเปลี่ยนแปลง
เปลี่ยนวันที่ เปลี่ยนคําอธิบาย
สิงหาคม 1, 2024
  • การเปลี่ยนแปลงการจัดรูปแบบเพื่อให้อ่านได้ง่าย
  • ในการกําหนดค่า "กําหนดค่าการตรวจสอบแอตทริบิวต์ Message-Authenticator ในแพคเก็ตการ ร้องขอการเข้าถึง ทั้งหมดในไคลเอ็นต์" คําว่า "ข้อความ" ถูกใช้แทน "แพคเก็ต"
สิงหาคม 5, 2024
  • เพิ่มลิงก์สําหรับ User Datagram Protocol (UDP) แล้ว
  • เพิ่มลิงก์สําหรับ Network Policy Server (NPS) แล้ว
สิงหาคม 6, 2024
  • อัปเดตส่วน "ข้อมูลสรุป" เพื่อระบุการเปลี่ยนแปลงเหล่านี้รวมอยู่ในการอัปเดต Windows ที่ลงวันที่ 9 กรกฎาคม 2024 หรือหลังจากนั้น
  • อัปเดตสัญลักษณ์แสดงหัวข้อย่อยในส่วน "ดําเนินการ" เพื่อระบุว่าเราขอแนะนําให้เปิดตัวเลือก ตัวเลือกเหล่านี้จะถูกปิดใช้งานตามค่าเริ่มต้น
  • เพิ่มหมายเหตุในส่วน "เหตุการณ์ที่เพิ่มโดยการอัปเดตนี้" เพื่อระบุรหัสเหตุการณ์ถูกเพิ่มลงในเซิร์ฟเวอร์ NPS โดยการอัปเดต Windows ลงวันที่ 9 กรกฎาคม 2024 หรือหลังจากนั้น

เนื้อหา

บทสรุป

การอัปเดต Windows ลงวันที่ 9 กรกฎาคม 2024 หรือหลังจากนั้นจะแก้ไขปัญหาช่องโหว่ด้านความปลอดภัยในโพรโทคอล Remote Authentication Dial-In User Service (RADIUS) ที่เกี่ยวข้องกับปัญหาการชนกันของ MD5 เนื่องจากการตรวจสอบความสมบูรณ์ที่มีจุดอ่อนใน MD5 ผู้โจมตีอาจเปลี่ยนแปลงแพคเก็ตเพื่อรับการเข้าถึงที่ไม่ได้รับอนุญาต ช่องโหว่ MD5 ทําให้การรับส่งข้อมูล RADIUS ที่ใช้ User Datagram Protocol (UDP) บนอินเทอร์เน็ตไม่ปลอดภัยต่อการปลอมแปลงหรือการแก้ไขแพคเก็ตระหว่างการขนส่ง

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับช่องโหว่นี้ โปรดดู CVE-2024-3596 และ whitepaper การโจมตีการชนกันของรัศมีและ MD5

หมายเหตุ ช่องโหว่นี้จําเป็นต้องใช้การเข้าถึงเครือข่าย RADIUS และ Network Policy Server (NPS) ดังนั้น ลูกค้าที่มีเครือข่าย RADIUS ที่ปลอดภัยจะไม่เสี่ยง นอกจากนี้ ช่องโหว่จะไม่นําไปใช้เมื่อการสื่อสาร RADIUS เกิดขึ้นผ่าน VPN

จัดการงาน

เพื่อช่วยปกป้องสภาพแวดล้อมของคุณ เราขอแนะนําให้เปิดใช้งานการกําหนดค่าต่อไปนี้ สําหรับข้อมูลเพิ่มเติม ให้ดูส่วนการกําหนดค่า
  • ตั้งค่าแอตทริบิวต์ Message-Authenticator ในแพคเก็ต Access-Request ตรวจสอบให้แน่ใจว่าแพคเก็ตการร้องขอการเข้าถึงทั้งหมดมีแอตทริบิวต์ Message-Authenticator ตามค่าเริ่มต้น ตัวเลือกในการตั้งค่าแอตทริบิวต์ Message-Authenticator จะปิดใช้งานอยู่ เราขอแนะนําให้เปิดตัวเลือกนี้
  • ตรวจสอบแอตทริบิวต์ Message-Authenticator ในแพคเก็ตการร้องขอการเข้าถึง พิจารณาบังคับให้มีการตรวจสอบความถูกต้องของแอตทริบิวต์ Message-Authenticator ในแพคเก็ตการร้องขอการเข้าถึง แพคเก็ตการร้องขอการเข้าถึงที่ไม่มีแอตทริบิวต์นี้จะไม่ถูกประมวลผล ตามค่าเริ่มต้น ข้อความการร้องขอการเข้าถึงต้องมีตัวเลือกแอตทริบิวต์ message-authenticator ถูกปิดใช้งานอยู่ เราขอแนะนําให้เปิดตัวเลือกนี้
  • ตรวจสอบแอตทริบิวต์ Message-Authenticator ในแพคเก็ต Access-Request ถ้ามีแอตทริบิวต์ Proxy-State แสดงอยู่ อีกทางหนึ่งคือ เปิดใช้งานตัวเลือก limitProxyState ถ้าไม่สามารถบังคับใช้การตรวจสอบความถูกต้องของแอตทริบิวต์ Message-Authenticator ในทุกแพคเก็ตการ ร้องขอการเข้าถึง ได้ limitProxyState บังคับให้ปล่อยแพคเก็ตการร้องขอการเข้าถึงที่มีแอตทริบิวต์สถานะพร็อกซีโดยไม่มีแอตทริบิวต์ Message-Authenticator ตามค่าเริ่มต้น ตัวเลือก limitproxystate จะถูกปิดใช้งาน เราขอแนะนําให้เปิดตัวเลือกนี้
  • ตรวจสอบแอตทริบิวต์ Message-Authenticator ในแพคเก็ตการตอบสนองของ RADIUS: Access-Accept, Access-Reject และ Access-Challenge เปิดใช้งานตัวเลือก requireMsgAuth เพื่อบังคับให้มีการละแพคเก็ตการตอบสนอง RADIUS จากเซิร์ฟเวอร์ระยะไกลโดยไม่มีแอตทริบิวต์ Message-Authenticator ตามค่าเริ่มต้น ตัวเลือก requiremsgauth จะถูกปิดใช้งาน เราขอแนะนําให้เปิดตัวเลือกนี้

เหตุการณ์ที่เพิ่มเข้ามาในการอัปเดตนี้

สําหรับข้อมูลเพิ่มเติม ให้ดูส่วนการกําหนดค่า

หมายเหตุ

หมายเหตุ รหัสเหตุการณ์เหล่านี้จะถูกเพิ่มลงในเซิร์ฟเวอร์ NPS โดยการอัปเดต Windows ลงวันที่ 9 กรกฎาคม 2024 หรือหลังจากนั้น

ID เหตุการณ์: 4418

แพคเก็ต Access-Request ถูกยกเลิกเนื่องจากมีแอตทริบิวต์ Proxy-State แต่ไม่มีแอตทริบิวต์ Message-Authenticator พิจารณาเปลี่ยนไคลเอ็นต์ RADIUS เพื่อรวมแอตทริบิวต์ Message-Authenticator หรืออีกวิธีหนึ่งคือ เพิ่มข้อยกเว้นสําหรับไคลเอ็นต์ RADIUS โดยใช้การกําหนดค่า limitProxyState

บันทึกเหตุการณ์ ระบบ
ชนิดของเหตุการณ์ ข้อผิดพลาด
แหล่งของเหตุการณ์ กรมอุทยานแห่งชาติ
ID เหตุการณ์ 4418
ข้อความเหตุการณ์ ได้รับข้อความ Access-Request จาก IP/ชื่อไ>คลเอ็นต์< RADIUS ที่มีแอตทริบิวต์ Proxy-State แต่ไม่มีแอตทริบิวต์ Message-Authenticator ด้วยเหตุนี้ คําขอจึงถูกยกเลิก แอตทริบิวต์ Message-Authenticator เป็นแอตทริบิวต์ที่จําเป็นต้องมีเพื่อวัตถุประสงค์ด้านความปลอดภัย ดู https://support.microsoft.com/help/5040268 เพื่อเรียนรู้เพิ่มเติม
ID เหตุการณ์: 4419

นี่คือเหตุการณ์การตรวจสอบสําหรับแพคเก็ตการร้องขอการเข้าถึงที่ไม่มีแอตทริบิวต์ Message-Authenticator เมื่อมีสถานะพร็อกซี พิจารณาเปลี่ยนไคลเอ็นต์ RADIUS เพื่อรวมแอตทริบิวต์ Message-Authenticator แพคเก็ต RADIUS จะถูกปล่อยเมื่อเปิดใช้งานการกําหนดค่า limitproxystate

บันทึกเหตุการณ์ ระบบ
ชนิดของเหตุการณ์ คำเตือน
แหล่งของเหตุการณ์ กรมอุทยานแห่งชาติ
ID เหตุการณ์ 4419
ข้อความเหตุการณ์ ได้รับข้อความ Access-Request จาก IP/ชื่อไ>คลเอ็นต์< RADIUS ที่มีแอตทริบิวต์ Proxy-State แต่ไม่มีแอตทริบิวต์ Message-Authenticator ขณะนี้คําขอได้รับอนุญาตเนื่องจาก limitProxyState ได้รับการกําหนดค่าในโหมดตรวจสอบ ดู https://support.microsoft.com/help/5040268 เพื่อเรียนรู้เพิ่มเติม
ID เหตุการณ์: 4420

นี่คือเหตุการณ์การตรวจสอบสําหรับแพคเกจการตอบสนองของ RADIUS ที่ได้รับโดยไม่มีแอตทริบิวต์ Message-Authenticator ที่พร็อกซี พิจารณาเปลี่ยนเซิร์ฟเวอร์ RADIUS ที่ระบุสําหรับแอตทริบิวต์ Message-Authenticator แพคเก็ต RADIUS จะถูกยกเลิกเมื่อเปิดใช้งานการกําหนดค่า requiremsgauth

บันทึกเหตุการณ์ ระบบ
ชนิดของเหตุการณ์ คำเตือน
แหล่งของเหตุการณ์ กรมอุทยานแห่งชาติ
ID เหตุการณ์ 4420
ข้อความเหตุการณ์ พร็อกซี RADIUS ได้รับการตอบสนองจาก IP/ชื่อเซิร์ฟเวอร์<>ที่มีแอตทริบิวต์ Message-Authenticator หายไป ขณะนี้การตอบสนองได้รับอนุญาตเนื่องจาก requireMsgAuth ถูกกําหนดค่าในโหมดตรวจสอบ ดู https://support.microsoft.com/help/5040268 เพื่อเรียนรู้เพิ่มเติม
ID เหตุการณ์: 4421

เหตุการณ์นี้ถูกบันทึกระหว่างการเริ่มบริการ เมื่อไม่ได้กําหนดค่าการตั้งค่าที่แนะนํา พิจารณาเปิดใช้งานการตั้งค่าหากเครือข่าย RADIUS ไม่ปลอดภัย สําหรับเครือข่ายที่ปลอดภัย เหตุการณ์เหล่านี้สามารถถูกละเว้นได้

บันทึกเหตุการณ์ ระบบ
ชนิดของเหตุการณ์ คำเตือน
แหล่งของเหตุการณ์ กรมอุทยานแห่งชาติ
ID เหตุการณ์ 4421
ข้อความเหตุการณ์ การกําหนดค่า RequireMsgAuth และ/หรือ limitProxyState อยู่ใน<โหมด ปิดใช้งาน/ตรวจสอบ> ควรกําหนดค่าการตั้งค่าเหล่านี้ในโหมดเปิดใช้งานเพื่อวัตถุประสงค์ด้านความปลอดภัย ดู https://support.microsoft.com/help/5040268 เพื่อเรียนรู้เพิ่มเติม

การกําหนดค่า

กําหนดค่าการส่งแอตทริบิวต์ Message-Authenticator ในแพคเก็ตการ ร้องขอการเข้าถึง ทั้งหมดบนเซิร์ฟเวอร์

การกําหนดค่านี้ทําให้พร็อกซี NPS เริ่มส่งแอตทริบิวต์ Message-Authenticator ในแพคเก็ตการ ร้องขอการเข้าถึง ทั้งหมด เมื่อต้องการเปิดใช้งานการกําหนดค่านี้ ให้ใช้วิธีการอย่างใดอย่างหนึ่งต่อไปนี้

วิธีที่ 1: ใช้ NPS Microsoft Management Console (MMC)

เมื่อต้องการใช้ NPS MMC ให้ทําตามขั้นตอนเหล่านี้:

  1. เปิดส่วนติดต่อผู้ใช้ (UI) NPS บนเซิร์ฟเวอร์
  2. เปิด กลุ่มเซิร์ฟเวอร์ Radius ระยะไกล
  3. เลือก Radius Server
  4. ไปที่การรับรองความถูกต้อง/บัญชี
  5. คลิกเพื่อเลือกกล่องกาเครื่องหมาย คําขอต้องมีแอตทริบิวต์ Message-Authenticator

วิธีที่ 2: ใช้คําสั่ง netsh

เมื่อต้องการใช้ netsh ให้เรียกใช้คําสั่งต่อไปนี้:

หมายเหตุ

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

สําหรับข้อมูลเพิ่มเติม โปรดดู คําสั่งกลุ่มเซิร์ฟเวอร์ RADIUS ระยะไกล

กําหนดค่าการตรวจสอบแอตทริบิวต์ Message-Authenticator ในแพคเก็ตการ ร้องขอการเข้าถึง ทั้งหมดในไคลเอ็นต์

การกําหนดค่านี้ต้องใช้แอตทริบิวต์ Message-Authenticator ในแพคเก็ตการ ร้องขอการเข้าถึง ทั้งหมด และจะวางแพคเก็ตหากไม่มี

วิธีที่ 1: ใช้ NPS Microsoft Management Console (MMC)

เมื่อต้องการใช้ NPS MMC ให้ทําตามขั้นตอนเหล่านี้:

  1. เปิดส่วนติดต่อผู้ใช้ (UI) NPS บนเซิร์ฟเวอร์
  2. เปิดไคลเอ็นต์ Radius
  3. เลือก Radius Client
  4. ไปที่การตั้งค่าขั้นสูง
  5. คลิกเพื่อเลือกกล่องกาเครื่องหมาย ข้อความร้องขอการเข้าถึงต้องมีกล่องกาเครื่องหมายแอตทริบิวต์ message-authenticator

สําหรับข้อมูลเพิ่มเติม โปรดดู กําหนดค่าไคลเอ็นต์ RADIUS

วิธีที่ 2: ใช้คําสั่ง netsh

เมื่อต้องการใช้ netsh ให้เรียกใช้คําสั่งต่อไปนี้:

หมายเหตุ

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

สําหรับข้อมูลเพิ่มเติม โปรดดู คําสั่งกลุ่มเซิร์ฟเวอร์ RADIUS ระยะไกล

กําหนดค่า limitproxystate สําหรับไคลเอ็นต์ทั้งหมด

การกําหนดค่านี้ช่วยให้เซิร์ฟเวอร์ NPS สามารถปล่อยแพคเก็ตการร้องขอการเข้าถึงที่มีช่องโหว่ที่มีแอตทริบิวต์สถานะพร็อกซี แต่ไม่มีแอตทริบิวต์ตัวรับรองความถูกต้องของข้อความ การกําหนดค่านี้รองรับสามโหมด:

  • การตรวจสอบ
  • เปิดใช้งาน
  • Disable

ในโหมด ตรวจสอบ จะมีการบันทึกเหตุการณ์เตือน (ID เหตุการณ์: 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 ปล่อยข้อความตอบกลับที่อาจมีความเสี่ยงได้โดยไม่มีแอตทริบิวต์ Message-Authenticator การกําหนดค่านี้รองรับสามโหมด:

  • การตรวจสอบ
  • เปิดใช้งาน
  • Disable

ในโหมด ตรวจสอบ จะมีการบันทึกเหตุการณ์เตือน (ID เหตุการณ์: 4420) แต่คําขอยังคงประมวลผลอยู่ ใช้โหมดนี้เพื่อระบุเอนทิตีที่ไม่เป็นไปตามข้อกําหนดที่ส่งการตอบกลับ

ใช้คําสั่ง netsh เพื่อกําหนดค่า เปิดใช้งาน และเพิ่มข้อยกเว้นตามต้องการ

  1. เมื่อต้องการกําหนดค่าเซิร์ฟเวอร์ในโหมด ตรวจสอบ ให้เรียกใช้คําสั่งต่อไปนี้

    หมายเหตุ

    netsh nps set requiremsgauth all = "audit"

  2. เมื่อต้องการเปิดใช้งานการกําหนดค่าสําหรับเซิร์ฟเวอร์ทั้งหมด ให้เรียกใช้คําสั่งต่อไปนี้

    หมายเหตุ

    netsh nps set requiremsgauth all = "enable"

  3. เมื่อต้องการเพิ่มข้อยกเว้นเพื่อแยกเซิร์ฟเวอร์ออกจากการตรวจสอบความถูกต้องของ requireauthmsg ให้เรียกใช้คําสั่งต่อไปนี้

    หมายเหตุ

    netsh nps set requiremsgauth remoteservergroup = <ชื่อกลุ่ม>เซิร์ฟเวอร์ระยะไกล address address = <> server address exception = "yes"

คำถามที่ถามบ่อย

ควรทําอย่างไรหากสังเกตเห็นความล้มเหลวของคําขอ VPN หลังจากการเปิดใช้งานการกําหนดค่าเกิดขึ้นเนื่องจากข้อความล็อป

ตรวจสอบเหตุการณ์มอดูล NPS สําหรับเหตุการณ์ที่เกี่ยวข้อง พิจารณาเพิ่มข้อยกเว้นหรือการปรับเปลี่ยนการกําหนดค่าสําหรับไคลเอ็นต์/เซิร์ฟเวอร์ที่ได้รับผลกระทบ

มีการเปลี่ยนแปลงการกําหนดค่าหรือการดําเนินการใดๆ ที่จําเป็นหรือไม่หากเครือข่าย RADIUS ปลอดภัย

ไม่ การกําหนดค่าที่กล่าวถึงในบทความนี้แนะนําสําหรับเครือข่ายที่ไม่ปลอดภัย

การอ้างอิง

คําอธิบายของคําศัพท์มาตรฐานที่ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์ของ Microsoft

การปฏิเสธความรับผิดชอบข้อมูลของบุคคลที่สาม

ผลิตภัณฑ์ของบริษัทอื่นที่บทความนี้กล่าวถึงผลิตขึ้นโดยบริษัทที่ไม่ได้ขึ้นอยู่กับ Microsoft เราไม่รับประกันทั้งโดยนัยหรือโดยลักษณะอื่นเกี่ยวกับประสิทธิภาพหรือความน่าเชื่อถือของผลิตภัณฑ์ดังกล่าว

เราให้ข้อมูลติดต่อของบริษัทภายนอกเพื่อช่วยให้คุณค้นหาการสนับสนุนทางเทคนิค ข้อมูลที่ติดต่อนี้อาจเปลี่ยนแปลงได้โดยไม่ต้องแจ้งให้ทราบล่วงหน้า เราไม่รับประกันความถูกต้องของข้อมูลที่ติดต่อของบริษัทภายนอกนี้