แจ้งเตือนช่องโหว่ระดับวิกฤติ Zerologon (CVE-2020-1472) ยึด Domain controller ได้ มีโค้ดโจมตีแล้ว

เมื่อวันที่ 11 กันยายน 2020 ที่ผ่านมา Tom Tervoort จากบริษัท Secura ได้เผยแพร่ Whitepaper Zerologon: Unauthenticated domain controller compromise by subverting Netlogon cryptography (CVE-2020-1472) ซึ่งเปิดเผยรายละเอียดทางเทคนิค รวมถึงความร้ายแรงของช่องโหว่ดังกล่าวโดยละเอียด หลังจากที่ช่องโหว่ดังกล่าวถูกแพตช์ไปแล้วในแพตช์ประจำเดือนสิงหาคม 2020 โดยจาก Whitepaper นี้ ทำให้เห็นรายละเอียดความร้ายแรงของช่องโหว่มากขึ้น รวมไปถึงทำให้นักวิจัยสามารถจัดทำโค้ดสำหรับโจมตีช่องโหว่นี้เผยแพร่สู่สาธารณะได้

ทีมตอบสนองการโจมตีและภัยคุกคาม (Intelligent Response) จาก บริษัทไอ-ซีเคียว จำกัด ขอแจ้งเตือนและให้รายละเอียดโดยคร่าวเกี่ยวกับช่องโหว่ CVE-2020-1472 ตามหัวข้อต่อไปนี้

รายละเอียดช่องโหว่โดยย่อ

ช่องโหว่ CVE 2020-1472 (Zerologon) เป็นช่องโหว่การเข้ารหัสใน Microsoft Windows Netlogon Remote Protocol (MS-NRPC หรือ NRPC) ซึ่งทำให้เมื่อผู้โจมตีเข้าถึง network ภายในองค์กรได้ ผู้โจมตีจะสามารถปลอมเป็นเครื่องใดๆ ใน domain รวมถึง Domain Controller ได้ และส่งคำขอเพื่อเปลี่ยนรหัสผ่านของ Domain Controller เป็นค่าว่างได้ ซึ่งนำไปสู่การยึดครองเครื่อง Domain Controller หรือทำ DCSync เพื่อ Dump Password Hash ออกมาได้ โดยช่องโหว่นี้ได้คะแนน CVSSv3 แบบ Base Score อยู่ที่ 10 เต็ม 10 มีความรุนแรงระดับวิกฤติ

ในปัจจุบันมีการปล่อยโค้ด Proof of concept ของช่องโหว่ดังกล่าวออกมาแล้ว โดยการที่เปลี่ยนรหัสผ่านของ Domain Controller จากการโจมตีนี้ทำให้รหัสผ่านค่าว่างที่จะถูกบันทึกใน Active Directory นั้นแตกต่างจากรหัสผ่านที่บันทึกไว้ใน registry ทำให้ Domain Controller ทำงานผิดปกติอย่างคาดเดาไม่ได้

โดยการแพตช์ของไมโครซอฟต์เกี่ยวข้องกับช่องโหว่นี้จะแบ่งเป็นสองแพตช์ คือ

  1. แพตช์ประจำเดือนสิงหาคม 2020 (Initial Deployment Phase)
  2. แพตช์ประจำเดือนกุมภาพันธ์ 2021 (Enforcement Phase)

โดยในแพตช์ประจำเดือนสิงหาคม 2020 เป็นอัปเดตเพื่อบังคับใช้ Secure NRPC สำหรับ Windows server และ Client ใน domain ทั้งหมด รวมถึงเพิ่ม Systems Event ID 5827 ถึง 5831 เพื่อช่วยในการตรวจจับช่องโหว่ดังกล่าว แต่ยังยินยอมให้มีการใช้ Netlogon เดิมที่ยังมีช่องโหว่ได้

แต่ในแพตช์ประจำเดือนกุมภาพันธ์ 2021 จะเป็นการบังคับใช้ Secure NRPC เท่านั้น ส่งผลให้อุปกรณ์ที่ไม่รองรับ Secure NRPC จะไม่สามารถใช้งานได้ โดยสามารถอ่านรายละเอียดได้จาก How to manage the changes in Netlogon secure channel connections associated with CVE-2020-1472 ซึ่งผู้ที่อัปเดทแพตช์ประจำเดือนสิงหาคม 2020 แล้วต้องการบังคับใช้ Secure NRPC สามารถอ่านวิธีตั้งค่าได้ในบทความเดียวกันนี้

ข้อเสียของการไม่บังคับใช้ Secure NRPC กับอุปกรณ์อื่นๆ แม้อัปเดตแพตช์แพตช์ประจำเดือนสิงหาคม 2020 คือ ผู้โจมตีจะสามารถปลอมเป็นเครื่องใดๆ ใน domain แล้วเปลี่ยนรหัสผ่านของอุปกรณ์นั้นๆ เป็นค่าว่าง ส่งผลให้อุปกรณ์นั้นๆ ไม่สามารถทำงานได้ (deny of service)

นอกจากระบบปฏิบัติการ windows แล้ว ระบบปฏิบัติการ Linux เป็น Domain Controller ที่มีการใช้ Samba รุ่นต่ำกว่า 4.8 หรือ Samba รุ่น 4.8 เป็นต้นไปที่มีการเปลี่ยนการตั้งค่าไม่ใช้ Secure NRPC จะมีความเสี่ยงต่อช่องโหว่นี้เช่นกัน

ทั้งนี้หน่วยงาน Cybersecurity and Infrastructure Security Agency (CISA) ของสหรัฐอเมริกาออกประกาศ Emergency Directive 20-04 ให้หน่วยงานของรัฐทำการอัปเดตแพตช์ของช่องโหว่นี้ภายในวันที่ 21 กันยายน 2020 หรือถ้าอัปเดตไม่ได้ ให้นำเครื่องออกจาก network โดยระบุว่าช่องโหว่นี้เป็นความเสี่ยงที่ไม่สามารถยอมรับได้ (unacceptable risk) เพราะ

  1. มีโค้ดสำหรับโจมตีแล้ว
  2. มีการใช้งาน Domain Controller ในหน่วยงานรัฐจำนวนมาก
  3. โอกาสถูกโจมตีสูง
  4. ผลกระทบจากการโจมตีร้ายแรงมาก
  5. พบว่ามีเครื่องที่มีช่องโหว่อยู่มากแม้มีแพตช์ออกมาแล้วนานกว่า 30 วัน

การโจมตีช่องโหว่

ในปัจจุบันมีการปล่อยโค้ด Proof of concept ของช่องโหว่ดังกล่าวออกมาแล้ว ซึ่ง mimikatz เองก็มีการอัปเดทเพื่อรองรับการโจมตี Zerologon อีกด้วย

ผลการค้นหา CVE-2020-1472 ใน github.com พบ โค้ดโจมตีหลายรายการ

 

mimikatz รองรับ CVE-2020-1472

นักวิจัยมองว่ามีโอกาสสูงที่ APT และผู้โจมตีที่ใช้ ransomware จะใช้ช่องโหว่นี้เป็นขั้นตอนต่อมาหลังจากการเข้าถึง network ภายในองค์กร

ระบบที่ได้รับผลกระทบ

  • Windows server ทั้งหมดที่ยังได้รับการ support ได้แก่
    • Windows Server 2008 R2 for x64-based Systems Service Pack 1
    • Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
    • Windows Server 2012
    • Windows Server 2012 (Server Core installation)
    • Windows Server 2012 R2
    • Windows Server 2012 R2 (Server Core installation)
    • Windows Server 2016
    • Windows Server 2016 (Server Core installation)
    • Windows Server 2019
    • Windows Server 2019 (Server Core installation)
    • Windows Server, version 1903 (Server Core installation)
    • Windows Server, version 1909 (Server Core installation)
    • Windows Server, version 2004 (Server Core installation)
  • ระบบปฏิบัติการ Linux เป็น Domain Controller ที่มีการใช้ Samba รุ่นต่ำกว่า 4.8
  • ระบบปฏิบัติการ Linux เป็น Domain Controller ที่มีการใช้ Samba รุ่น 4.8 เป็นต้นไปที่มีการเปลี่ยนการตั้งค่าไม่ใช้ Secure NRPC

หมายเหตุ

  • Windows server ที่หมดระยะ support อาจได้รับผลกระทบจากช่องโหว่ แต่เนื่องจากหมดระยะ support แล้วจึงไม่มีการวิเคราะห์จากไมโครซอฟต์ว่ามีช่องโหว่หรือไม่ รวมถึงไม่มีแพตช์จากไมโครซอฟต์ 
  • ระบบปฏิบัติการ Linux ที่มีการใช้ Samba เป็น File servers ไม่ใช่ Domain Controller อาจไม่ได้รับผลกระทบโดยตรงจากช่องโหว่ แต่ควรตรวจสอบว่าใช้ Secure NRPC หรือไม่ เพื่อให้สามารถสื่อสารกับ Windows server ที่จะมีการแพตช์ประจำเดือนกุมภาพันธ์ 2021 (Enforcement Phase) ในอนาคตได้

การตรวจจับและป้องกันการโจมตี

Windows

ปัจจุบันไมโครซอฟต์ไม่มีการแนะนำวิธีป้องกันและลดความเสี่ยงนอกจากการแพตช์ แต่เนื่องจากช่องโหว่นี้มีเงื่่อนไขว่าผู้โจมตีต้องเข้าถึง network ภายในองค์กรได้ก่อน ทำให้ป้องกันได้ทางอ้อมโดยการไม่ให้ผู้โจมตีสามารถเข้าถึง network ภายในองค์กรได้ รวมถึงสามารถตรวจจับการโจมตีได้จากการที่แบ่งโซน network และมีผลิตภัณฑ์ตรวจจับระหว่างโซนภายในกับ Domain Controller โดยผู้ผลิตหลายแห่งได้จัดทำการตรวจจับแล้ว เช่น

  • Trend Micro Deep Security: Rule 1010519 - Microsoft Windows Netlogon Elevation of Privilege Vulnerability (CVE-2020-1472)
  • Trend Micro TippingPoint: Filter 38166: MS-NRPC: Microsoft Windows Netlogon Zerologon Authentication Bypass Attempt
  • Palo Alto Networks Next-Generation Firewalls Threat ID 59336 detecting on the vulnerable Windows API (NetrServerAuthenticate3) with spoofed credentials
  • FortiGuard ID 49499 MS.Windows.Server.Netlogon.Elevation.of.Privilege
  • Check Point CPAI-2020-0872 Microsoft Netlogon Elevation of Privilege (CVE-2020-1472)
  • Cisco Talos Intelligence Group Sid 1-55703 เป็นต้น

NCC Group แนะนำให้ตรวจจับการทำ DCSync จากเครื่องที่ไม่ใช่ Domain Controller ด้วยการตรวจจับ Security log Event ID 4662 ที่มี GUID {1131f6ad-9c07-11d1-f79f-00c04fc2dcd2} จากเครื่องที่ไม่ใช่ Domain Controller

Anton Ovrutsky จาก Lares Consulting ทดลองทำการโจมตีด้วย mimikatz โดยไม่ได้ทำการแพตช์ และพบว่าควรตรวจจับ event id ดังต่อไปนี้ เพื่อตรวจจับการโจมตี

  • System log Event ID 5805 The session setup from the computer <computer name> failed to authenticate. The following error occurred: Access is denied.

    รูปจาก https://twitter.com/SBousseaden/status/1305957119770988547/photo/1

  • Security log Event ID 4624 + 4742 successful anonymous login และ domain controller computer account was changed โดย anonymous login

    รูปจาก https://twitter.com/SBousseaden/status/1305955829301104640/photo/1

    • แต่ Anton Ovrutsky ตั้งหมายเหตุว่าในการทดลองโจมตีบางครั้งไม่พบ Event ID ดังกล่าว
    • รวมถึงมีข้อแย้งจาก Vadim Khrykov ว่าสอง Event ID ต่อกันนี้อาจเป็นพฤติกรรมปกติได้

ในกรณีที่ทำการแพตช์ประจำเดือนสิงหาคม 2020 แล้วจะมีการเพิ่ม Systems Event ID 5827 ถึง 5831 ซึ่ง deepwatch เสนอว่าควรมีการตรวจจับ System log Event ID 5829 The Netlogon service allowed a vulnerable Netlogon secure channel connection ซึ่งจะเกิดขึ้นเมื่อมีอุปกรณ์ที่ไม่ใช้ Secure NRPC เชื่อมต่อกับ Domain Controller แต่ Event ID 5829 นี้จะไม่เกิดขึ้นเมื่อแพตช์ประจำเดือนกุมภาพันธ์ 2021 (Enforcement Phase) มาถึง

Samba

สำหรับผู้ที่ใช้งานระบบปฏิบัติการ Linux เป็น Domain Controller ที่มีการใช้ Samba รุ่นต่ำกว่า 4.8 ควรตั้งค่า server schannel = yes ใน smb.conf เพื่อใช้ Secure NRPC

ระบบปฏิบัติการ Linux เป็น Domain Controller ที่มีการใช้ Samba รุ่น 4.8 เป็นต้นไป จะมีการตั้งค่า server schannel = yes เป็น default ซึ่งควรตรวจสอบการตั้งค่าดังกล่าวใน smb.conf ว่ายังเป็น server schannel = yes หรือไม่

แหล่งอ้างอิง