ในช่วงสัปดาห์ที่ผ่านมาต่างมีคนพูดถึงเรื่องช่องโหว่ที่หลากหลายมากไม่ว่าจะเป็น F*CKWIT(Forcefully Unmap Complete Kernel With Interrupt Trampolines) Intel CPU flaw (หรือที่รู้จักกันในนาม KPTI หรือ KAISER) และ Spectre, Meltdown เรามาดูกันว่ามันคืออะไรยังไง

กลุ่ม security ระดับโลกอย่าง Project Zero ของ Google ได้เปิดเผยช่องโหว่รุนแรงใน CPU ซึ่งทำให้ user สามารถเข้าถึง memory ของ CPU ซึ่งเจอทั้งใน Intel, AMD และ ARM CPU processors ซึ่งตัวช่องโหว่จะแบ่งเป็น 2 ช่องโหว่คือ Meltdown และ Spectre โดยช่องโหว่ทั้งคู่จะทำให้ Hacker สามารถเข้าถึง memory ที่กำลังถูกใช้งานโดย CPU อยู่ได้ ซึ่งโดยปกติแล้ว program จะไม่มีสิทธิ์ในการเข้าไปอ่าน data ของโปรแกรมอื่น นั่นหมายความว่า program ที่เป็น malware แล้วสามารถโจมตี Meltdown หรือ Spectre ได้ ก็จะสามารถเข้าถึงข้อมูลสำคัญของโปรแกรมอื่นๆที่กำลังทำงานอยู่ได้ นั่นหมายความว่าหากมี program จำพวก Password Manager กำลังทำงานอยู่ ตัว Application ที่เป็น malware ที่โจมตี Meltdown หรือ Spectre ได้ ก็จะอาจจะสามารถเข้าถึง password ที่ถูกเก็บใน Password Manager นั่นเอง

ตัว Meltdown และ Spectre นั้นกระทบทั้งใน Computer, มือถือ รวมถึงระบบที่อยู่บน Cloud อีกด้วย

  • Meltdown

Meltdown จะเป็นช่องโหว่ที่ตัวแยกระหว่าง User Application กับ OS ซึ่งการโจมตีช่องโหว่นี้จะทำให้ Program เข้าถึงส่วน memory ของโปรแกรมอื่นๆรวมถึง OS ได้

  • Spectre

Spectre เป็นช่องโหว่ที่ตัวแยกระหว่าง application ที่แตกต่างกัน ซึ่งทำให้ Attacker ไปเอาข้อมูลจาก error-free program ตัว  Spectre นั้นยากกว่าทาง Meltdown แต่ก็ยากที่จะแก้ไขมากกว่าเช่นกัน

ความแตกต่างระหว่าง Meltdown และ Spectre

User ได้รับผลกระทบขนาดไหน

เอาจริงๆมันแทบไม่ได้รับผลกระทบเลยครับ เนื่องด้วยถ้า user ไม่เอา application อะไรมารันก็จะไม่ได้รับผลกระทบอะไรครับ (ซึ่งจริงๆนั่นคือต่อให้เป็น malware ประเภทอื่น ถ้าไม่เอามารันก็ไม่ได้รับผลกระทบอะไรเช่นกันครับ มันเป็นปกติของ malicious application น่ะครับ) ที่ได้รับผลกระทบหลักๆน่าจะเป็น Cloud Provider ต่างๆที่ user เอา application อะไรมารันก็ได้มากกว่า ซึ่งเมื่อถึงจุดที่มันสามารถเข้าถึง memory ของ CPU ซึ่งใช้ร่วมกันได้ มันก็จะกลายเป็นว่าเราสามารถเข้าถึงข้อมูลของ user คนอื่นที่ใช้ Cloud ร่วมกันได้นั่นเอง

Patch ที่ไหนออกแล้วบ้าง

วิธีการตรวจสอบเบื้องต้นว่า CPU ของเรามีช่องโหว่หรือไม่

  1. เปิด powershell ขึ้นมา
  2. ติดตั้ง module เพิ่มเติม
3. ตรวจสอบการป้องกัน
หากผลลัพธ์ออกมาว่ามีการป้องกันหมดแล้ว ก็แสดงว่าไม่มีช่องโหว่ครับ
วิธีการตรวจสอบจากระยะไกลมีช่องโหว่หรือไม่
ตาราง Antivirus ที่ support patch ที่ Microsoft ปล่อยออกมา

Affected Vendor

https://www.welivesecurity.com/2018/01/05/meltdown-spectre-cpu-vulnerabilities/#vendors

PoC Code

Source::