นักวิจัยจากมหาวิทยาลัยของสวิสเซอร์แลนด์ได้เปิดแผลใหม่ให้ฟีเจอร์ Speculative Execution ซึ่งเคยได้ถูกแพตช์ไปแล้วช่วงปี 2018

Speculative Execution เป็นฟีเจอร์ของซีพียูสมัยใหม่ที่พยายามจะเดาเส้นทางการประมวลผลล่วงหน้าหากพบเงื่อนไขของโค้ดซึ่งผลลัพธ์ที่อาจจะมีข้อมูลละเอียดอ่อนเหล่านี้จะถูกเก็บในแคชชั่วคราวหากไม่ใช้ก็ปล่อยทิ้งไป อย่างไรก็ดีหลายปีก่อนนักวิจัยก็ได้พิสูจน์ให้โลกได้เห็นว่าสามารถสร้างโค้ดที่ชี้นำให้ซีพียูเผยถึงข้อมูลละเอียดอ่อนเหล่านั้นออกมาได้ โดยเห็นได้จากการโจมตี Spectre ที่มีหลายๆเวอร์ชันซึ่งมีเทคนิคแตกต่างกันออกไป
Intel ได้เพิ่มการป้องกันระดับฮาร์ดแวร์ที่เรียกว่า indirect branch restricted speculation (IBRS) และเวอร์ชันพัฒนากว่าที่ชื่อว่า enhanced indirect branch restricted speculation (eIBRS) ในขณะที่ฝั่ง AMD คือ CSV2 ทั้งนี้ก็มีการป้องกันระดับซอฟต์แวร์จาก Google ออกมาช่วยด้วยเหมือนกันที่ชื่อ Retpoline ที่ก็คือต้นตอของช่องโหว่ใหม่ล่าสุดที่ชื่อ ‘Retbleed’
นักวิจัยจากซูริกส์ชี้ว่าการแก้ปัญหาของ Google คือเมื่อมีความพยายามทำ Branch Target Speculation ด้วย indirect jump หรือ calls จะมีการแทนที่ด้วย Return ซึ่งมันอาจได้ผลในปี 2018 เพราะเมื่อก่อนในสถานการณ์ปกติการใช้ Return ดูเหมือนเป็นเรื่องที่เป็นไปได้ยากที่จะใช้ในการโจมตีแต่ล่าสุดนักวิจัยเหล่านี้พบเงื่อนไขในการโจมตีแล้ว
“ในฝั่ง Intel คำสั่ง Returns จะประพฤติตัวคล้ายกับ Indirect jumps ในส่วนของ Stack Buffer ที่คืนค่า Target Prediction โดยเกิดขึ้นในการประมวลผล Stack ลึกๆ ซึ่งเราพบว่ามีเงื่อนไขนับพันจากการใช้ System Call ที่จะทำให้เกิดผลนั้นได้” เช่นกันในฝั่ง AMD นักวิจัยพบว่า Returns จะประพฤติตัวคล้ายกับ Indirect jumps โดยไม่สนสถานะของ Address Stack ที่ Return กล่าวคือพวกเขาสามารถ Poison คำสั่ง Return เป็น Indirect jump ได้เพราะ Branch Predictor ของ AMD คิดว่าตัวเองจะเจอกับ Indirect jump ทำให้นำไปสู่การทำนาย Indirect Branch Target และเช่นกันมี System Call มากมายที่นักวิจัยสามารถใช้สร้างการโจมตีได้
มาถึงตรงนี้หลายคนอาจจะสงสัยว่านี่มีผลมากแค่ไหนเพราะดูเหมือนว่าแพตช์ก็มี ต้องบอกเลยว่าแม้จะมีการป้องกันในระดับฮาร์ดแวร์แต่เนื่องจากซีพียูรุ่นเก่าหลายตัวก็ไม่รองรับ IBRS ทำให้ระบบปฏิบัติการบางรายหรือตัวบริหารจัดการ Virtual Machine ตัดสินใจใช้การบรรเทาปัญหาทางซอฟต์แวร์จาก Google แทน กล่าวคือท่านก็ต้องไปติดตามดูว่าของที่ใช้อยู่มีการแก้ไขออกมาหรือไม่
ในฝั่ง Intel ช่องโหว่ Retbleed หมายเลข CVE-2022-29901 กระทบกับซีพียู Gen 6,7,8 แต่ก็ขึ้นกับการป้องกันระดับระบบปฏิบัติการด้วยอย่าง Windows จะมีการเปิด IBRS ที่ Intel แนะนำโดยพื้นฐานอยู่แล้วจึงรอดตัว แต่ในฝั่งลีนุกซ์ตอนนี้กำลังทำงานกับผู้เกี่ยวข้องอยู่
Retbleed บน AMD หมายเลข CVE-2022-29900 กระทบกับ Zen 1, 1+ และ Zen 2 มีการออกคำแนะนำไว้ที่ https://www.amd.com/system/files/documents/technical-guidance-for-mitigating-branch-type-confusion_v7_20220712.pdf ท่านใดสนใจวีดีโอสาธิตติดตามได้จากวีดีโอด้านล่างเลยครับ หรือตามเข้าไปที่ GitHub ของผู้เชี่ยวชาญเพื่อดูโค้ดสาธิต
ที่มา : https://www.bleepingcomputer.com/news/security/new-retbleed-speculative-execution-cpu-attack-bypasses-retpoline-fixes/ และ https://www.csoonline.com/article/3667271/new-speculative-execution-attack-retbleed-impacts-intel-and-amd-cpus.htm