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
Comments
ย่อหน้าสุดท้ายนี่เจ็บเลยมั้ย
ใครเจบ? .. อ่านๆ แล้วได้อารมณ์ว่าอากุ๋ขอข่มคืนบ้าง, ด้วยการใช้ไม้ตาย 90 วันแบบเข้มข้น ?
ปล. วางโค้ดได้.. แต่เหมือนจะยัง run ไม่ได้รึป่าว, เลยโชว์ด้วย debugger
ไมโครซอฟท์นั่นแหละครับ
แสดงว่ายังนับว่าเจาะยากอยู่สินะครับ เพราะว่าต้องคาดเดาจุดที่ต้องจองหน่วยความจำด้วย
อยู่ที่ว่าคำว่า คาดเดาไม่ยากของ Project Zero คือระดับไหน
เค้าเขียนอะไรลงไปในหน่วยความจำ เห็นข่าว hack แนวๆนี้หบายข่าวละ แต่นึกไม่ออก
มันเป็นที่เดียวกับ code ที่โปรแกรม(edge) ใช้ทำงานโดยปกติก็ยิง code ที่ต้องการแฝงลงไปครับ
ถ้าอธิบายง่ายๆให้เห็นภาพก็เช่นสั่งให้เครื่องปิด ถ้ายาวๆก็สร้าง process ใหม่ไว้ทำ backdoor, ขุดเหรียญ, ยิง ddos
จะอันตรายถ้าส่งโค้ดเข้ามารันได้ แต่ก็ไม่ง่ายที่จะเข้ามา งั้นยังไม่แก้ละกัน
ไมโครซอฟท์ ไม่ได้กล่าวไว้