TONTOU: การโจมตีรูปแบบใหม่ Spectre v2 ต่อ AMD และ Intel

ประเด็นสำคัญ:
  • TONTOU ใช้ประโยชน์จากช่วงเวลาว่างระหว่างการทำความสะอาดบัฟเฟอร์การคาดการณ์และการนำไปใช้งาน
  • ผู้โจมตีใช้ "การแทรกการขัดจังหวะ" (Interrupt Injection) เพื่อเปลี่ยนเส้นทางการไหลของเคอร์เนลและปนเปื้อนกลไกการคาดการณ์
  •  ปัญหานี้ส่งผลกระทบต่อสถาปัตยกรรม Zen 1 ถึง 4 ของ AMD และโปรเซสเซอร์ Intel หลายรุ่น
  • แพทช์แก้ไขปัญหาได้ถูกรวมเข้าไว้ในการอัปเดตเคอร์เนล Linux เวอร์ชันล่าสุดแล้ว (5 สิงหาคม)

การโจมตีของ TONTOU

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

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

นักวิจัยจาก MIT ได้ค้นพบ TONTOU (Time-of-Neutralization to Time-of-Use) เทคนิคใหม่ที่ซับซ้อนสำหรับการใช้ประโยชน์จากช่องโหว่ Spectre v2ซึ่งช่วยให้สามารถอ่านหน่วยความจำเคอร์เนลจากพื้นที่ผู้ใช้ได้

แม้ว่าผู้ผลิตและนักพัฒนาจะออกแบบกลไกการป้องกันต่างๆ เพื่อต่อต้านการโจมตีแบบคาดการณ์ล่วงหน้ามานานหลายปีแล้ว แต่ผู้โจมตีก็สามารถค้นพบช่องทางใหม่ๆ ได้ และการศึกษาใหม่ของ CSAIL นี้แสดงให้เห็นถึงวิธีการหลีกเลี่ยงการป้องกันเหล่านี้

นักวิจัยค้นพบว่ามีช่วงเวลาว่างที่ไม่สามารถหลีกเลี่ยงได้ระหว่างช่วงเวลาที่บัฟเฟอร์ถูกล้างและช่วงเวลาที่ใช้การคาดการณ์ และในช่วงเวลาว่างเล็กๆ นี้เองที่โค้ด (บางครั้งอาจเป็นเพียงคำสั่งไม่กี่คำสั่ง) จะถูกแทรกเข้าไปผ่านการขัดจังหวะของระบบ ทำให้สามารถปนเปื้อนฮาร์ดแวร์อีกครั้งและดึงข้อมูลสำคัญออกมาได้

เกี่ยวกับการโจมตี: การหยุดชะงักและการละเมิดใน Safe-RET

AMDมีระบบป้องกัน ช่องโหว่ SRSO (Speculative Return Stack Overflow) ที่เรียกว่าSaferetซึ่งจะล้างกลไกการคาดการณ์ทันทีก่อนการใช้งานแต่ละครั้งทำให้เกิดช่องว่างช่องโหว่ที่สามารถถูกโจมตีได้ภายในเวลาไม่กี่สิบนาโนวินาที เพื่อโจมตีช่องว่างเล็กๆ ดังกล่าว นักวิจัยจึงได้พัฒนาเทคนิคที่เรียกว่า Interrupt Injection

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

การดึงและทดสอบรหัสผ่านบนระบบจริง

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

ต่อมาพวกเขาได้สาธิตการโจมตีภายในเครื่องในฐานะผู้ใช้ที่ไม่ได้รับสิทธิ์พิเศษเพื่อตรวจสอบแฮชรหัสผ่านรูท และสามารถดึงข้อมูลได้สำเร็จด้วยอัตรา 5.47 ไบต์ต่อวินาทีด้วยความแม่นยำ 91.97% ในการทดสอบ 50% (ซึ่งใช้เวลาเฉลี่ย 18 นาที) พวกเขาสามารถตรวจจับและดึงเนื้อหาของไฟล์รหัสผ่านได้สำเร็จ แม้ว่าความเร็วนี้จะช้า แต่ก็เพียงพอที่จะเจาะระบบเซิร์ฟเวอร์ได้อย่างร้ายแรง

ผลกระทบต่อ Intel, AMD และแพทช์แก้ไขปัญหา

ทีมวิจัยได้ทดสอบโปรเซสเซอร์ Intel และ AMD สี่รุ่น และพบว่าการคาดการณ์ผิดพลาดในทั้งสองสถาปัตยกรรมเทคนิคนี้ใช้ได้ผลกับตระกูลZen 1 ถึง 4 ของ AMD แต่ในชิป Intel การโจมตีกลับสามารถหลีกเลี่ยงการป้องกันสองชั้นได้อย่างไรก็ตามพบพฤติกรรมที่ไม่สอดคล้องกันระหว่าง Intel รุ่นต่างๆ ซึ่งบ่งชี้ว่าการป้องกันที่ระบุไว้ถูกนำไปใช้ในฮาร์ดแวร์แตกต่างกัน

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

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

สุดท้ายนี้ หากคุณสนใจเรียนรู้เพิ่มเติม สามารถดูรายละเอียดได้ที่ลิงก์ต่อไปนี้


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google