Kasper สแกนเนอร์อุปกรณ์สำหรับรหัสเก็งกำไรในเคอร์เนลลินุกซ์

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

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

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

เครื่องมือสแกนแกดเจ็ต ตามรูปแบบ ใช้ได้ก่อนหน้านี้ สำหรับช่องโหว่ Spectre แสดงอัตราการบวกลวงที่สูงมาก ในขณะที่อุปกรณ์จริงจำนวนมากสูญหาย (จากการทดลองพบว่า 99% ของอุปกรณ์ที่ตรวจพบโดยเครื่องมือดังกล่าวไม่สามารถใช้สำหรับการโจมตีได้ และ 33% ของอุปกรณ์ที่ใช้งานได้ไม่ได้ตรวจพบอุปกรณ์ที่สามารถนำไปสู่การโจมตีได้)

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

เกี่ยวกับแคสเปอร์

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

สร้างแบบจำลองผู้โจมตีที่สามารถควบคุมข้อมูล (เช่น ผ่าน memory massage หรือ LVI value injection) เข้าถึงความลับ (เช่น ผ่าน out-of-bounds access หรือ use after free ) และรั่วไหลความลับเหล่านี้ (เช่น ผ่าน cache-based, MDS- ตามหรือพอร์ตช่องแอบแฝงตามความขัดแย้ง) 

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

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

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

ขณะสแกนเคอร์เนล Linux ด้วย Kasper มีการระบุอุปกรณ์ที่ไม่รู้จัก 1379 เครื่องก่อนหน้านี้ ซึ่งอาจนำไปสู่การรั่วไหลของข้อมูลระหว่างการดำเนินการตามคำสั่งแบบคาดเดา

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

ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม เกี่ยวกับ Kasper คุณควรรู้ว่า ซอร์สโค้ด มีการแจกจ่ายภายใต้ใบอนุญาต Apache 2.0

Fuente: https://www.vusec.net


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา