อินเทลเสนอกระบวนการล็อก return แก้การโจมตี return-oriented programming

by lew
10 June 2016 - 19:25

กระบวนการโจมตีช่องโหว่ระบบปฏิบัติการในยุคใหม่ๆ ยากขึ้นเพราะระบบปฏิบัติการไม่ยอมรันโค้ดที่โปรแกรมอัพโหลดขึ้นมาโดยตรงอีกต่อไป ช่วงหลังแฮกเกอร์จึงต้องเขียนโปรแกรมแบบ return-oriented programming (ROP) ตอนนี้อินเทลเสนอกระบวนการป้องกัน ROP ด้วยการตรวจสอบค่าการเรียกฟังก์ชั่นที่ผ่านๆ มาก่อนจะยอมรับ ตำแหน่งของหน่วยความจำที่กำลังจะ return ไป โดยเรียกกระบวนการนี้ว่า Control-flow Enforcement Technology (CET)

CET จะสร้างหน่วยความจำขึ้นอีกชุดหนึ่งเรียกว่า shadow stack เก็บตำแหน่งของหน่วยความจำก่อนเรียกฟังก์ชั่นเอาไว้ทั้งหมด และเมื่อมีการเรียกคำสั่ง RET เพื่อ return ออกจากฟังก์ชั่น ระบบปฏิบัติการจะสามารถนำค่าตำแหน่งของหน่วยความจำมาตรวจสอบก่อนว่าเป็นตำแหน่งที่ควรจะ return ไปจริงๆ หรือไม่ ถ้าไม่ตรงก็จะเกิด exception ขึ้นมา

จากนี้ CET ยังกำหนดคำสั่ง ENDBRANCH สำหรับกำหนดตำแหน่งหน่วยความจำสำหรับ JUMP ในกรณีนี้หากโปรแกรมเรียกคำสั่ง JUMP ไปยังหน่วยความจำที่ไม่ได้ประกาศไว้ก็จะเกิด exception เช่นกัน

ตอนนี้ CET ยังเป็นเพียงการพรีวิวเทคโนโลยีเท่านั้น ยังไม่แน่ชัดว่าจะมีใช้งานในระบบปฏิบัติการใดหรือซีพียูรุ่นใดในอนาคต การเปิดพรีวิวเช่นนี้ก่อนก็จะเปิดโอกาสให้นักวิจัยแสดงความเห็นได้ว่ากระบวนการนี้มีข้อดีข้อเสียอย่างไรกันบ้าง

ที่มา - Intel, The Register

Blognone Jobs Premium