แนะนำ
- มีการเก็บบั๊กที่ค้นพบระหว่างกระบวนการข้ามการตรวจสอบไลเซนส์ของ Windows ไว้เป็นความลับ เพื่อเก็บรักษาวิธีการเปิดใช้งานในอนาคตและใช้เป็นเครื่องมือทดสอบ
- พบวิธีข้าม DRM ที่ชื่อว่า "Keyhole" ซึ่งทำให้สามารถสร้างไลเซนส์ให้แอป Microsoft Store หรือ Windows รุ่นใหม่ ๆ ได้อย่างง่ายดาย
- หลังจากที่ Cisco TALOS เปิดเผย CVE-2024-38184 จึงตัดสินใจแบ่งปันสิ่งที่ค้นพบเกี่ยวกับ Keyhole
CLiP
- CLiP(Client Licensing Platform) เป็นระบบ DRM ที่เปิดตัวใน Windows 10 เพื่อจัดการแอป Microsoft Store และการเปิดใช้งาน Windows
- ไบนารีหลัก:
clipup.exe: แปลงไลเซนส์สโตร์ของ Windows 8 เป็นไลเซนส์ดิจิทัล
clipsvc.dll: บริการโหมดผู้ใช้ที่จัดการไลเซนส์แอป
clipc.dll: API ที่ทำให้แอปพลิเคชันโต้ตอบกับ CLiP ได้
clipwinrt.dll: API สำหรับแอปพลิเคชัน UWP
clipsp.sys: ไดรเวอร์โหมดเคอร์เนลที่ตรวจสอบไลเซนส์
- เมื่อติดตั้งแอปที่มีไลเซนส์แบบ CLiP ไฟล์ XML ที่มีลายเซ็นจะถูกส่งไปยัง
clipsvc.dll และหลังตรวจสอบแล้วจะถูกส่งต่อไปยัง clipsp.sys เพื่อจัดเก็บไว้ในคลังไลเซนส์
แกล้งกันเล็กน้อย
- ใน
clipup.exe มีการเก็บคีย์ ECDSA ที่ใช้งานได้แบบข้อความล้วนไว้ ทำให้ใครก็สามารถเซ็นไลเซนส์ XML ได้อย่างง่ายดาย
- สามารถใช้คีย์นี้ข้ามการตรวจสอบของ ClipSvc และส่งบล็อกไลเซนส์ที่ต้องการไปยัง ClipSp ได้โดยตรง
การแกะ ClipSp
- ClipSp เป็นไดรเวอร์ที่เขียนได้ไม่ดีนัก และมีโค้ดจำนวนมากที่คัดลอกแล้ววางซ้ำ
- โค้ดถูกซ่อนไว้ด้วยเครื่องมือ obfuscation ของ Microsoft ที่ชื่อ Warbird
- การแกะ obfuscation ทำให้สามารถวิเคราะห์โค้ดที่ซ่อนอยู่และค้นหาบั๊กได้
บล็อกไลเซนส์
- บล็อกไลเซนส์เก็บข้อมูลสำคัญเกี่ยวกับไลเซนส์ และมีบล็อกข้อมูลหลายชุดในรูปแบบ TLV(แท็ก-ความยาว-ค่า)
- บล็อกลายเซ็นจะลงลายเซ็นข้อมูลทั้งหมด แต่ข้อมูลที่ถูกเพิ่มเข้ามาหลังการลงลายเซ็นจะไม่ถูกตรวจสอบ
- จึงสามารถเพิ่มข้อมูลหลังบล็อกลายเซ็นเพื่อเขียนทับข้อมูลเดิมได้
แกล้งกันหนักขึ้น
- การเพิ่มข้อมูลหลังบล็อกลายเซ็นทำให้สามารถสร้างไลเซนส์สำหรับผลิตภัณฑ์ทั้งหมดใน Microsoft Store ได้
- อย่างไรก็ตาม ไลเซนส์ที่ล็อกกับอุปกรณ์จะสร้างได้จากไลเซนส์แอปที่ล็อกกับอุปกรณ์เท่านั้น
บทสอนแกล้งกัน
- ติดตั้งแอปที่ล็อกกับอุปกรณ์ (เช่น Roblox) แล้วดักจับไลเซนส์ด้วยเครื่องมือจับทราฟฟิก HTTPS
- ถอดรหัสบล็อกไลเซนส์ เพิ่มข้อมูลที่จำเป็น แล้วแพ็กเป็นไฟล์ XML ใหม่
- คัดลอกไฟล์ XML ไปยังโฟลเดอร์
C:\ProgramData\Microsoft\Windows\ClipSVC\Install\Migration แล้วรีสตาร์ต ClipSvc หรือติดตั้งด้วยคำสั่ง clipup -p
- Windows จะถูกเปิดใช้งานแบบถาวร
หมดสนุก
- Cisco TALOS รายงานบั๊กเดียวกัน ทำให้ Microsoft ออกแพตช์แก้ไข
- มีการแก้ไขไม่ให้ประมวลผลข้อมูลที่อยู่หลังบล็อกลายเซ็น
ฤดูกาลแห่งการบริจาค
- มีการเผยแพร่โค้ดสำหรับสร้างไลเซนส์ Keyhole และไบนารีของ CLiP เพื่อกระตุ้นให้มีการค้นพบบั๊กเพิ่มเติม
และอีกเรื่องหนึ่ง
- โค้ดของ ClipSp ถูกคัดลอกมาจากระบบ DRM ของ Xbox One
- Xbox SP ก็มีบั๊กด้านการพาร์สแบบเดียวกัน แต่ Keyhole ใช้กับ Xbox ไม่ได้
เครดิต
- ผู้มีส่วนร่วมในการวิจัย: May, asdcorp, echnobas, WitherOrNot, emoose, LukeFZ, KiFilterFiberContext, Phillippe Laulheret, Cisco TALOS, Rairii
สรุปโดย GN⁺
- Keyhole เป็นวิธีข้าม DRM ที่ทรงพลังซึ่งช่วยให้สร้างไลเซนส์สำหรับแอป Microsoft Store และ Windows รุ่นต่าง ๆ ได้ง่าย
- สามารถดัดแปลงบล็อกไลเซนส์ได้โดยอาศัยช่องโหว่ด้านความปลอดภัยในระบบ CLiP
- Microsoft แก้ไขบั๊กนี้แล้วจากรายงานของ Cisco TALOS
- โครงสร้างมีความคล้ายกับระบบ DRM ของ Xbox One
- บทความนี้ช่วยให้เข้าใจช่องโหว่ของระบบ DRM และการเสริมความปลอดภัยได้ดีขึ้น
1 ความคิดเห็น
ความเห็นจาก Hacker News