ซีพียู AMD Ryzen ทั้งหมดไวต่อการโจมตี "Inception" แบบใหม่ที่รั่วไหลของข้อมูลที่ละเอียดอ่อน

การโจมตีแบบใหม่ที่เรียกว่า Inception สามารถใช้เพื่อรั่วไหลข้อมูลที่สำคัญจาก AMD CPU ใดๆ ก็ได้

ประเด็นที่สำคัญ

  • นักวิจัยจาก ETH Zurich ได้พัฒนาการโจมตีชั่วคราวแบบใหม่ที่เรียกว่า Training in Transient Execution (TTE) ซึ่งใช้ประโยชน์จากการดำเนินการเชิงคาดเดาเพื่อทำให้หน่วยความจำเคอร์เนลรั่วไหลและเข้าถึงไฟล์ที่ละเอียดอ่อน เช่น /etc/shadow บน Linux เครื่อง.
  • Inception ซึ่งเป็นช่องโหว่แบบ end-to-end ที่สร้างขึ้นโดยใช้ TTE สามารถรั่วไหลได้ถึง 39 ไบต์ต่อวินาทีบน AMD Zen 4 โปรเซสเซอร์และดึงรหัสผ่านบัญชีผู้ใช้ที่แฮชเก็บไว้ใน /etc/shadow สำเร็จภายใน 40 นาที.
  • Inception แตกต่างจากการโจมตีแบบดำเนินการชั่วคราวอื่น ๆ โดยการแทรกการคาดการณ์ใหม่เข้าไปในตัวทำนายสาขาในระหว่าง หน้าต่างชั่วคราว สร้างหน้าต่างชั่วคราวที่มีประสิทธิภาพมากขึ้นซึ่งสามารถใช้เพื่อล้น Return Stack Buffer และควบคุม ซีพียู การลดผลกระทบจากการโจมตีครั้งนี้ดูเหมือนจะมีความท้าทาย

เจริญรอย เซนบลีดนักวิจัยจาก ETH Zurich ได้ออกแบบการโจมตีชั่วคราวแบบใหม่ที่เรียกว่า Training in Transient Execution (TTE) เมื่อใช้ TTE นักวิจัยได้สร้างการหาประโยชน์แบบ end-to-end ที่เรียกว่า Inception มันสามารถรั่วหน่วยความจำเคอร์เนลในอัตราสูงถึง 39 ไบต์ต่อวินาทีบน AMD Zen 4 และนักวิจัยก็สามารถรั่วไหล /etc/shadow บน

ลีนุกซ์ เครื่องใน 40 นาที ไฟล์นี้มีรหัสผ่านบัญชีผู้ใช้ที่แฮชและได้รับการปกป้องโดยระบบ เข้าถึงได้โดยผู้ใช้รูทเท่านั้น กล่าวอีกนัยหนึ่งการหาประโยชน์นี้แย่มาก

Inception ทำงานอย่างไร?

เช่นเดียวกับ Zenbleed การเริ่มต้น (CVE-2023-20569, ทาง คอมพิวเตอร์ที่หลับไหล) ใช้การดำเนินการเชิงคาดเดาในทางที่ผิดในวิธีการทำงาน การคาดคะเนสาขาและการดำเนินการเชิงคาดเดานั้นหมายถึงเมื่อคอมพิวเตอร์ของคุณดำเนินการที่ยังไม่จำเป็นแต่น่าจะจำเป็นในรอบต่อๆ ไป มักจะทำในเวลาที่ระบบของคุณมีทรัพยากรว่าง เนื่องจากจะเพิ่มความเร็วในการประมวลผลโดยรวมเมื่อคำสั่งหรือข้อมูลยังไม่พร้อมสำหรับ CPU หากไม่ต้องการงานที่ทำเสร็จแล้ว โดยทั่วไปจะถูกละทิ้งและตัวประมวลผลสามารถข้ามกลับไปยังตำแหน่งที่ต้องการเพื่อดำเนินการคำสั่งถัดไปที่ถูกต้อง เมื่อทำสิ่งนี้ สิ่งนี้เรียกว่าการทำนายผิดสาขา

มีปัญหามากมายเมื่อพูดถึงการดำเนินการเชิงเก็งกำไร และช่องโหว่เช่น Spectre และ Zenbleed ก็เป็นผลจากปัญหาดังกล่าว นักวิจัยเหล่านั้นจับคู่การโจมตีแบบเก่าที่เรียกว่า "Phantom" (ซึ่งส่งผลต่อสถาปัตยกรรม Zen 1 และ Zen 2) กับการโจมตี TTE เพื่อสร้าง Inception

"Inception" เป็นการอ้างอิงถึงภาพยนตร์ชื่อเดียวกัน โดยเนื้อหาของภาพยนตร์ต้องอาศัยการปลูกฝังความคิดในหัวของใครบางคนเมื่อพวกเขากำลังฝัน ในกรณีนี้ นักวิจัยระบุว่าพวกเขากำลังปลูก "ความคิด" ไว้ในซีพียู ในขณะที่มันกำลังอยู่ในความรู้สึก "ฝัน" สิ่งนี้ทำให้มันดำเนินการตามคำสั่งที่ไม่ถูกต้อง ซึ่งทำให้ Inception สามารถจี้โฟลว์การควบคุมได้ ของซีพียู

BTB เป็นบัฟเฟอร์เป้าหมายของสาขาและ RSB เป็นบัฟเฟอร์สแต็กกลับ นำมาจากเอกสารไวท์เปเปอร์ของ Inception:

"ในขั้นตอนการฝึกครั้งแรก T1 ผู้โจมตีดำเนินการสาขาการฝึกอบรมที่ TJ ซึ่งชนกับรายการ BTB ของแหล่งที่มา PJ ของ PHANTOMJMP ที่อยู่ในพื้นที่ที่อยู่เคอร์เนล PJ คือที่อยู่ที่เริ่มต้น PHANTOMCALL แบบเรียกซ้ำ VR ที่ส่งกลับของเหยื่อได้รับการจัดสรรหลังจาก PJ ในโฟลว์ควบคุม เป้าหมายของ PHANTOMJMP ถูกตั้งค่าเป็น PC ซึ่งจะทริกเกอร์ PHANTOMCALL แบบเรียกซ้ำ ในการฝึกขั้นที่ 2 ผู้โจมตีจะดำเนินการเรียกการฝึกที่ TC ซึ่งปะทะกับพีซีใน BTB ซึ่งจะสร้างการคาดการณ์สำหรับ PHANTOMCALL เป้าหมายของการโทรฝึกอบรมนี้ถูกตั้งค่าเป็น PC โดยสร้างการคาดคะเน PHANTOMCALL แบบเรียกซ้ำ เมื่อดำเนินการพีซี CPU จะแทรกการคาดการณ์ RSB ซ้ำเพื่อเปิดเผยแกดเจ็ต G ซึ่งมีตำแหน่งตาม PHANTOMCALL ที่พีซีทันที เนื่องจากพีซีอยู่ในพื้นที่เคอร์เนล สาขาการฝึกอบรม TJ และ TC จะทำให้เกิดข้อผิดพลาดของเพจ ซึ่งเรากู้คืนมาได้"

จุดที่ Inception แตกต่างจากการโจมตีแบบ Transient Execution ส่วนใหญ่คือในระหว่างหน้าต่างชั่วคราว มันจะแทรกการคาดการณ์ใหม่เข้าไปในตัวทำนายสาขาแทน การแทรกแต่ละครั้งจะสร้างหน้าต่างชั่วคราวเพิ่มเติมที่สามารถมีประสิทธิภาพมากกว่าหน้าต่างก่อนหน้า ในกรณีของผี (CVE-2022-23825) สามารถสร้างหน้าต่างชั่วคราวได้โดยใช้คำแนะนำโดยพลการ ซึ่งหมายความว่าคำสั่ง (เช่น เอกสิทธิ์หรือ XOR) สามารถใช้เป็นคำสั่งการโทรและสร้างหน้าต่างชั่วคราวเพิ่มเติมได้ จากนั้นใช้เพื่อล้น Return Stack Buffer

คุณทำอะไรได้บ้าง?

ตอนนี้ยังไม่มีอะไรมากมายที่คุณสามารถทำได้ และแม้แต่ในกรณีของ AMD ก็ยากที่จะบอกว่าพวกเขาทำอะไรกับมันได้บ้าง เพื่อลดผลกระทบอย่างเต็มที่ AMD จำเป็นต้องล้างตัวทำนายแบรนด์ในขณะที่สลับไปมาระหว่างบริบท ซึ่งอาจมีค่าใช้จ่ายด้านประสิทธิภาพสูงอย่างไม่น่าเชื่อ

AMD ได้เสนอวิธีลดผลกระทบที่แตกต่างออกไป และอีกวิธีหนึ่งที่ทำให้เป็นเช่นนั้น AMD ได้เลือกใช้สาขาทางอ้อมทั้งหมดโดยบังคับให้คาดการณ์ผิดไปยังตำแหน่งที่ไม่เป็นอันตราย ฮาร์ดแวร์ของคุณจะอ่อนแอจนกว่าจะมีแพตช์ออก

กระดาษ เกี่ยวกับ Inception กำลังจะนำเสนอใน ความปลอดภัยของ USENIX 2023 และ ก กระดาษ เกี่ยวกับการเก็งกำไร Phantom จะนำเสนอที่ ไมโคร 2023. คุณสามารถอ่านเอกสารเหล่านี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการหาประโยชน์