ทีมนักวิจัยจาก Binghamton University – State University of New York และ University of California, Riverside ประกาศค้นพบช่องโหว่บน ASLR ซึ่งเป็นเทคโนโลยี Anti-exploitation ของ Intel Haswell CPU ซึ่งช่วยให้แฮ็คเกอร์สามารถบายพาสระบบป้องกันเพื่อโจมตีแบบ Buffer Overflow รวมไปถึงส่งโค้ดแปลกปลอมเข้าไปรันบน Memory ได้
ASLR คืออะไร
ASLR หรือ Address Space Layout Randomization เป็นกลไกด้านความมั่นคงปลอดภัยของระบบปฏิบัติการ ซึ่งจะทำการสุ่มตำแหน่งของ Memory ที่ถูกใช้โดย Process ต่างๆ ส่งผลให้แฮ็คเกอร์ไม่สามารถรู้ได้ว่าจะทำการ Exploit Shellcode ที่ตำแหน่งไหนบน Memory
ASLR เป็นเทคโนโลยี Anti-exploitation สำหรับป้องกันช่องโหว่ Memory Corruption เช่น Stack และ Heap Overflow ส่งผลให้แฮ็คเกอร์ไม่สามารถส่งโค้ดแปลกปลอมเข้ามารันได้ (Arbitrary Code Execution) และป้องกันการแคลช แฮ็คเกอร์จะสามารถทำ Code Injection ได้ก็ต่อเมื่อทราบตำแหน่งของ Memory ที่ Process เป้าหมายหรือ OS Kernel ทำงานอยู่เท่านั้น
บายพาส ASLR ผ่านทางช่องโหว่บน BTB
ทีมนักวิจัยระบุว่า พบช่องโหว่บน Branch Target Buffer (BTB) ซึ่งเป็นกลไกการทำ Caching ของ Branch Target Predictor บน CPU การทำ Branch Prediction นี้ถูกใช้ใน CPU สมัยใหม่ (เช่น Haswell CPU) เพื่อเพิ่มขีดความสามารถของประสิทธิภาพ ซึ่งช่องโหว่ดังกล่าวช่วยให้สามารถดึงข้อมูลตำแหน่ง ASLR ออกมาได้ โดยอาศัยการทำ BTB Collision ระหว่าง Process ของผู้ใช้ที่แตกต่างกัน หรือระหว่าง Process กับ Kernel
“BTB เก็บตำแหน่งของ Branch Instructions ที่เพิ่งถูก Execute ไป ส่งผลให้เมื่อทำ BTB Lookup จะสามารถร้องขอตำแหน่งเหล่านั้นเพื่อทำการดึง Branch Instructions ในรอบถัดไปได้อย่างถูกต้อง และเนื่องจาก BTB ถูกแชร์โดยแอพพลิคเคชันหลายตัวที่ Execute อยู่ในคอร์เดียวกัน ส่งผลให้อาจเกิดการรั่วไหลของข้อมูลระหว่างแอพพลิเคชันผ่านทางการโจมตีแบบ BTB-based Side-channel ได้” — เอกสารงานวิจัยระบุ
ทีมนักวิจัยได้นำเสนอการค้นพบช่องโหว่ ณ งานสัมมนาเชิงวิชาการ IEEE/ACM International Symposium on Microarchitecture ครั้งที่ 49 ที่เมืองไทเป ประเทศไต้หวัน ที่เพิ่งจัดไปเมื่อไม่กี่วันที่ผ่านมา โดยสาธิตการทำ BTB-based ASLR Bypass กับเครื่องคอมพิวเตอร์ที่ใช้ Intel Haswell CPU และรันระบบปฏิบัติการ Linux เวอร์ชัน 4.5 ซึ่งสามารถทราบตำแหน่งของ ASLT ได้ภายในเวลาเพียง 60 มิลลิวินาทีเท่านั้น แต่เชื่อว่าสามารถโจมตีระบบปฏิบัติ Windows และ Mac OS X ได้ด้วยเช่นกัน
รับมือกับการโจมตี BTB-based Side-channel ได้อย่างไร
นักวิจัยได้เสนอวิธีป้องกันช่องโหว่ดังกล่าวทั้งแบบ Software และ Hardware-based รวมไปถึงการทำ Harden ระบบ ASLR อีกด้วย ผู้ที่สนใจสามารถดูรายละเอียดเพิ่มเติมได้ที่ http://www.cs.ucr.edu/~nael/pubs/micro16.pdf