ทำความรู้จักช่องโหว่ Zero-day ใหม่บน Windows อ่านไฟล์ได้แม้ไม่มีสิทธิ์

สรุปย่อ

เมื่อวันที่ 19 ธันวาคม 2018 ตามเวลาประเทศไทย นักวิจัยด้านความปลอดภัยที่ใช้ชื่อบนทวิตเตอร์ว่า SandboxEscaper ได้เผยแพร่ Proof-of-Concept (PoC) ของช่องโหว่ Zero-day ในระบบปฏิบัติการวินโดวส์ เป็นช่องโหว่ที่ทำให้ผู้ใช้งานที่มีสิทธิ์ต่ำหรือโปรแกรมอันตรายสามารถอ่านไฟล์ใดๆ บนเครื่องได้แม้แต่ไฟล์ที่ให้สิทธิ์เฉพาะผู้ใช้งานระดับ Administrator ผลกระทบที่อาจเกิดจากช่องโหว่นี้คือ ผู้ใช้งานที่มีสิทธิ์ต่ำหรือโปรแกรมอันตรายสามารถอ่านและสามารถคัดลอกไฟล์ได้แม้ไม่มีสิทธิ์เข้าถึงไฟล์เหล่านั้น

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

นักวิจัยด้านความปลอดภัยที่ใช้ชื่อบนทวิตเตอร์ว่า SandboxEscaper ได้เผยแพร่ Proof-of-Concept (PoC) ของช่องโหว่ Zero-day ในระบบปฏิบัติการวินโดวส์ นับเป็นช่องโหว่ที่สามแล้วที่มีการเผยแพร่ในปีนี้ โดยช่องโหว่ทั้งสามมีลักษณะคล้ายกันที่เป็นช่องโหว่ที่ทำให้สามารถยกระดับสิทธิ์ได้ (Elevation of Privilege) ซึ่งสามารถอ่านรายละเอียดของช่องโหว่ที่ผ่านมาได้จาก ทำความรู้จักช่องโหว่ zero-day ใหม่ ใน Task Scheduler บน Windows และ Microsoft Windows zero-day disclosed on Twitter, again, impacts Windows 10, Server 2016, and Server 2019 only.

ช่องโหว่ Zero-day ตัวล่าสุดนี้มาจากฟังก์ชัน MsiAdvertiseProduct โดยในคู่มือการใช้งานฟังก์ชั่นนี้จากไมโครซอฟต์ระบุว่าเป็นฟังก์ชั่นสำหรับแสดงโฆษณาบนเครื่องคอมพิวเตอร์ โดยฟังก์ชั่น MsiAdvertiseProduct นี้จะอนุญาตให้ตัวลงโปรแกรม (installer) สามารถเขียนสคริปต์โฆษณาลงใน registry และระบุข้อมูลต่างๆ เกี่ยวกับผลิตภัณฑ์ที่จะโฆษณา

SandboxEscaper ระบุว่าการใช้ฟังก์ชัน MsiAdvertiseProduct จะทำให้เกิดการคัดลอกไฟล์โดยเซอร์วิสที่เกี่ยวข้องกับตัวลงโปรแกรม แม้ว่าฟังก์ชัน MsiAdvertiseProduct จะมีการตรวจสอบเพื่อให้ใช้งานได้อย่างถูกต้อง แต่ SandboxEscaper พบว่าผู้ไม่หวังดีสามารถหลบเลี่ยงการตรวจสอบดังกล่าวด้วยการทำให้เกิด race condition แบบ Time of check to time of use (TOCTOU) ซึ่งผู้ไม่หวังดีจะสามารถนำฟังก์ชัน MsiAdvertiseProduct ไปใช้ในการคัดลอกไฟล์ใดๆ ด้วยสิทธิ์ของ SYSTEM ได้ และอ่านไฟล์ที่ถูกคัดลอกมาได้ จึงเป็นช่องโหว่ด้วยการอ่านไฟล์ (arbitrary file read vulnerability)

Proof-of-Concept

SandboxEscaper เผยแพร่โค้ดที่ใช้พิสูจน์ช่องโหว่ดังกล่าวใน Github และบล็อก รวมถึงมีการเผยแพร่วิดีโอแสดงผลลัพธ์การรันโค้ดเพื่อให้เกิดช่องโหว่ดังกล่าวด้วยการสร้างบัญชีผู้ใช้งานขึ้นมาสองบัญชีในระบบ และใช้บัญชีผู้ใช้งานแรกพยายามอ่านไฟล์ desktop.ini ของอีกบัญชีผู้ใช้งาน

ช่องโหว่นี้ได้รับการยืนยันจากนักวิจัยอีกหลายคนว่าสามารถทำได้จริง หนึ่งในนั้นคือนักวิจัยจาก 0Patch ซึ่งเป็นแพลตฟอร์มที่จะออกไมโครแพตช์เพื่อแก้ไขช่องโหว่อย่างไม่เป็นทางการ ซึ่งจากการทดสอบพบว่านอกจากจะกระทบกับระบบปฏิบัติการวินโดวส์ 10 แล้ว ยังกระทบกับระบบปฏิบัติการวินโดวส์ 7 และอาจจะกระทบกับระบบปฏิบัติการวินโดวส์รุ่นที่เก่ากว่านั้นด้วย

ผลกระทบจากช่องโหว่

ผู้ใช้งานที่มีสิทธิ์ต่ำหรือโปรแกรมอันตรายสามารถอ่านและสามารถคัดลอกไฟล์ได้แม้ไม่มีสิทธิ์เข้าถึงไฟล์เหล่านั้น ทำให้สามารถขโมยไฟล์ของบัญชีผู้ใช้งานอื่นได้

คำแนะนำ

  1. เนื่องจากในขณะนี้ ณ วันที่ 24 ธันวาคม 2018 ตามเวลาประเทศไทย ยังไม่มีแพตช์แก้ไขช่องโหว่อย่างเป็นทางการจากไมโครซอฟต์ ควรติดตามข่าวสารจากทางไมโครซอฟต์ในการออกอัปเดตเพื่อแก้ไขช่องโหว่ดังกล่าว
  2. ไม่อนุญาตให้ผู้ที่ไม่เกี่ยวข้องเข้าใช้งานเครื่องคอมพิวเตอร์
  3. ทำการลง Antivirus ที่น่าเชื่อถือบนเครื่อง จากการตรวจสอบพบว่าไฟล์ที่ถูกเผยแพร่ออกมาสามารถถูกตรวจจับโดย Antivirus หลายรายการแล้วในขณะนี้ (VT)

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

  1. https://twitter.com/Evil_Polar_Bear/status/1075605011105767424
  2. https://thehackernews.com/2018/12/windows-zero-day-exploit.html
  3. https://www.bleepingcomputer.com/news/security/windows-zero-day-poc-lets-you-read-any-file-with-system-level-access/
  4. https://docs.microsoft.com/en-us/windows/desktop/api/msi/nf-msi-msiadvertiseproducta
  5. https://sandboxescaper.blogspot.com/2018/12/readfile-0day.html
  6. https://twitter.com/0patch/status/1075774079876063232
  7. https://www.zdnet.com/article/researcher-publishes-poc-for-new-windows-zero-day