Project Zero แฮก Edge ข้ามการป้องกันการวางโค้ดใหม่ลงในโปรเซสได้สำเร็จ, ไมโครซอฟท์แก้ไม่ทัน 90 วันทำให้ช่องโหว่ถูกเปิดเผย

by lew
19 February 2018 - 19:17

Project Zero เผยแพร่ช่องโหว่ของ Edge ระดับความร้ายแรงปานกลาง ที่สามารถข้ามกระบวนการป้องกัน Arbitrary Code Guard (ACG) ของไมโครซอฟท์ได้สำเร็จ

ACG ปิดทางไม่ได้แฮกเกอร์สามารถวางโค้ดลงในโปรเซสด้วยตัวเองได้ และไมโครซอฟท์ก็แยก JIT กับ Content Process ออกจากกัน ทำให้โดยปกติแล้วแฮกเกอร์สามารถวางโค้ดใดๆ เพื่อรันด้วยตัวเองได้ยากมาก

การเจาะของ Project Zero อาศัยการคาดเดาว่าโปรเซส JIT จะจองหน่วยความจำด้วยฟังก์ชั่น VirtualAllocEx ที่ตำแหน่งใด (Project Zero ระบุว่าคาดเดาง่ายพอสมควร) จากนั้นเมื่อเจาะ Content Process ได้แล้วให้ไปเขียนหน่วยความจำบริเวณนั้นไว้ล่วงหน้า เมื่อ JIT มาจองหน่วยความจำก็จะปรับให้หน่วยความจำส่วนนั้นกลายเป็น executable ไป กลายเป็นการข้าม ACG

Project Zero แจ้งช่องโหว่นี้ไปยังทีม Edge ตั้งแต่กลางเดือนพฤศจิกายน แต่ทีมพัฒนาระบุว่าไม่สามารถแก้ไขได้ทันรอบเดือนกุมภาพันธ์ และไม่สามารถสัญญาได้ว่าจะทันรอบมีนาคมหรือไม่ ทำให้ช่องโหว่พ้น 90 วันและเปิดเผยต่อสาธารณะก่อนมีแพตช์

ช่องโหว่นี้เป็นการข้ามมาตรการป้องกันเพิ่มเติม และ Project Zero ก็สาธิตโดยใช้ debugger การมีช่องโหว่นี้แม้จะทำให้ Edge ปลอดภัยน้อยลงกว่าที่ออกแบบไว้แต่ก็ไม่ได้หมายความว่าแฮกเกอร์จะสามารถส่งโค้ดมารันได้ง่ายๆ แต่อย่างใด

ACG เคยเป็นแนวทางการป้องกันหนึ่งที่ทีม OSR ของไมโครซอฟท์ระบุว่าช่วยป้องกัน Edge ไม่ให้มีช่องโหว่เหมือน Chrome เมื่อครั้งที่ทีม OSR รายงานช่องโหว่ของ Chrome

ที่มา - Project Zero

Blognone Jobs Premium