คิดว่ามีผู้ใช้ Windows หลายคนพบปัญหาการใช้งานรีโมทเดสก์ท็อป (Remote Desktop) ไม่ได้หลังทำการติดตั้ง Windows Updates เดือนพฤษภาคม 2561 ซึ่งผมเองก็พบปัญหานี้ 55 โพสต์นี้จึงขอนำวิธีการแก้ไขปัญหาดังกล่าวมาฝากครับ
หลังจากทำการอัปเดต Windows โดยการติดตั้ง Windows Updates เดือนพฤษภาคม 2561 จากนั้นเมื่อทำการรีโมทเดสก์ท็อปไปยังเครื่องพีซีหรือเซิร์ฟเวอร์ เช่น Windows 10 หรือ Windows Server 2012 R2 ที่ยังไม่ได้ทำการติดตั้ง Windows Updates เดือนพฤษภาคม 2561 จะไม่สามารถเชื่อมต่อได้โดยได้รับข้อความ ดังต่อไปนี้
An authentication error has occurred.
The function requested is not supported.Remote computer: Hostname
This could be due to CredSSP encryption oracle remediation.
For more information, see http://go.microsoft.com/fwlink/?linkid=866660
โดยหน้าจอ Remote Desktop Connection ของการเชื่อมต่อที่มีปัญหามีลักษณะดังรูปด้านล่าง
โดยปัญหาดังกล่าวนี้จะมีผลกระทบกับ Windows ทุกเวอร์ชันทั้งฝั่งลูกข่าย เช่น Windows 7, 8/8.1 และ 10 และฝั่งเซิร์ฟเวอร์ เช่น Windows Server 2012 R2, Windows Server 2016
สำหรับ Windows Updates เดือนพฤษภาคม 2561 สำหรับ Windows 10 เวอร์ชัน 1803 คือ อัปเดต KB4103721 โดยหลังติดตั้งอัปเดตหมายเลขบิลด์จจะเปลี่ยนเป็น 17134.48 ส่วนของ Windows 10 เวอร์ชัน 1709 คือ อัปเดต KB4103727 โดยหลังติดตั้งอัปเดตหมายเลขบิลด์จจะเปลี่ยนเป็นบิลด์ 16299.431
สาเหตุ
สาเหตุเริ่มต้นงจากมีการพบช่องโหว่ความปลอดภัย CVE-2018-0886 ในโปรโตคอล Credential Security Support Provider protocol (CredSSP) ซึ่งเป็น Authentication Provider ที่ทำหน้าที่ประมวลผลคำขอการรับรองตัวตนสำหรับแอ็พพลิเคชันต่าง ๆ โดยช่องโหว่ดังกล่าวนี้สามารถใช้รันโปรแกรมจากระยะไกลโดยไม่ได้รับอนุญาตได้ ในกรณีที่การโจมตีสำเร็จผู้โจมตีสามารถทำการรันโปรแกรมภายใต้ผู้ใช้ที่กำลังล็อกอินได้ โดยช่องโหว่นี้จะมีผลกระทบกับแอ็พพลิเคชันที่ใช้โปรโตคอล CredSSP ในการรับรองตัวตน เช่น Remote Desktop Connection เป็นด้น
ต่อมา ไมโครซอฟท์ได้ออกการอัปเดตความปลอดภัยเดือนพฤษภาคม 2561 เมื่อวันที่ 8 พฤษภาคมที่ผ่านมา เพื่อปิดช่องโหว่ต่าง ๆ รวมถึงช่องโหว่ความปลอดภัย CVE-2018-0886 ในโปรโตคอล CredSSP ด้วยการปรับปรุงแก้ไขวิธีการตรวจสอบการร้องขอในกระบวนการรับรองตัวตนให้ถูกต้อง
อย่างไรก็ตาม การติดตั้งการอัปเดตความปลอดภัยเดือนพฤษภาคมจะทำให่ค่าเริ่มต้นของ Encryption oracle remediation ใน Group Policy เปลี่ยนจาก Vulnerable เป็น Mitigated ซึ่งส่งผลให้เครื่องพีซีที่ติดตั้งอัปเดตความปลอดภัยเดือนพฤษภาคม 2561 ไม่สามารถรีโมทเดสก์ไปยังเครื่องพีซีหรือเซิร์ฟเวอร์ที่ไม่ได้ติดตั้งการอัปเดตความปลอดภัยเดือนพฤษภาคม 2561
รายละเอียดเพิ่มเติมอ่านได้จาก CredSSP updates for CVE-2018-0886
วิธีการแก้ไขปัญหาใช้ Remote Desktop ไม่ได้หลังติดตั้ง Windows Updates เดือนพฤษภาคม 2561
การแก้ปัญหารีโมทเดสก์ท็อปกับเซิร์ฟเวอร์ไม่ได้ตามรายละเอียดด้านบน สามารถทำได้ 2 วิธี คือ
วิธีที่ 1 เป็นวิธีการที่แนะนำและนะนำให้ทำโดยในทันทีที่ทำได้ คือ ให้ทำการอัปเดตเครื่องพีซีหรือเซิร์ฟเวอร์ปลายทางให้เป็นปัจจุบัน ซึ่งสามารถทำได้จาก Windows Updates ตามขั้นตอนการอัปเดตปกติ
วิธีที่ 2ทำการเซ็ตค่า Encryption oracle remediation เป็น Vulnerable ด้วย Group Policy
การตั้งค่า Encryption oracle remediation ด้วย Group Policy
ย้ำ! วิธีทีนี่ควรใช้ในกรณีที่ไม่สามารถทำตามวิธีที่ 1 ได้เท่านั้น
การตั้งค่า Encryption oracle remediation ด้วย Group Policy ทำโดยใช้โปรแกรม Group Policy Editor โดยมีขั้นตอนดังนี้
1. เปิดโปรแกรม Group Policy Editor (ต้องใช้สิทธิ์ผู้ดูแลระบบ) โดยกดปุ่ม Windows + R แล้วป้อน gpedit.msc (ป้อนตัวใหญ่หรือตัวเล็กก็ได้ครับ) ในช่อง Open เสร็จแล้วคลิก OK
2. ในหน้าต่าง Local Group Policy Editor ให้เข้าไปยังโฟลเดอร์ Computer Configuration>Administrative Templates>System>Credentials Delegation
3. (ดูรูปด้านบนประกอบ) ดับเบิลคลิก Encryption oracle remediation ในบานหน้าต่างด้านขวา
4. บนหน้า Encryption oracle remediation ให้ตั้งค่าเป็น Enabled
4. (ดูรูปด้านบนประกอบ) ในหัวข้อ Options ให้ตั้งค่า Protection Level เป็น Vulnerable เสร็จแล้วคลิก OK
5. ปิดโปรแกรม Group Policy Editor แล้วรีสตาร์ทระบบเพื่อให้การตั้งค่ามีผล
การตั้งค่า Encryption oracle remediation ด้วย Registry
สามารถทำการตั้งค่า Encryption oracle remediation เป็น Vulnerable ด้วยรีจีสทรีได้โดยเปิดโปรแกรม Registry Editor แล้วเข้าไปที่ตำแหน่ง
Computer\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters จากนั้นสร้างรีจีสทรีคีย์ใหม่ เลือกเป็นประเภท DWORD 32-bit value โดยให้ตั้งชื่อ AllowEncryptionOracle แล้วทำการตั้งค่าเป็น 2 เสร็จแล้วรีสตาร์ทระบบเพื่อให้การตั้งค่ามีผล
ผลการทำงาน
หลังจากเครื่องพีซีพร้อมใช้งาน ให้เปิดโปรแกรม Remote Desktop Connection แล้วทำการเชื่อมต่อไปยังพีซีหรือเซิร์ฟเวอร์ตัวที่มีปัญหาอีกครั้ง ถ้าไม่มีอะไรผิดพลาดจะสามารถรีโมทเดสก์ท็อปได้โดยไม่มีปัญหา
การตั้งค่า Encryption oracle remediation ใน Group Policy
การตั้งค่า Encryption oracle remediation ใน Group Policy มีรายละเอียดดังนี้
Force Updated Clients = แอ็พพลิเคชันลูกข่ายที่ใช้โปรโตคอล CredSSP จะไม่สามารถเชื่อมต่อกับแอ็พพลิเคชันแม่ข่ายที่ยังไม่ได้ติดตั้งอัปเดต
หมายเหตุ: ไม่แนะนำให้ตั้งค่าเป็น Force Updated Clients จนกว่าจะแน่ใจว่าโฮสต์ปลายทางได้ติดตั้งอัปเดตความปลอดภัยเดือนพฤษภาคม 2561 ครบทุกตัว
Mitigated = แอ็พพลิเคชันลูกข่ายที่ใช้โปรโตคอล CredSSP จะไม่สามารถเชื่อมต่อกับแอ็พพลิเคชันแม่ข่ายที่ยังไม่ได้ติดตั้งอัปเดต แต่บริการที่ใช้โปรโตคอล CredSSP สามารถรับการเชื่อมต่อจากลูกข่ายที่ยังไม่ยังไม่ได้ติดตั้งอัปเดต
Vulnerable = แอ็พพลิเคชันลูกข่ายที่ใช้โปรโตคอล CredSSP สามารถเชื่อมต่อกับแอ็พพลิเคชันแม่ข่ายที่ยังไม่ได้ติดตั้งอัปเดตได้ และบริการที่ใช้โปรโตคอล CredSSP สามารถรับการเชื่อมต่อจากลูกข่ายที่ยังไม่ยังไม่ได้ติดตั้งอัปเดต (ทำให้เสี่ยงต่อการถูกโจมตี)
แหล่งอ้างอิง
Microsoft