Breker โจมตีการตรวจสอบความสอดคล้องของระบบ

โหนดต้นทาง: 1598466

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

Breker โจมตีการตรวจสอบความสอดคล้องของระบบ

ความท้าทายในการเชื่อมโยงกัน

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

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

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

การเชื่อมโยงกันของระบบเบรกเกอร์ TrekApp

เพื่อตรวจสอบว่าการออกแบบไม่ได้ข้ามเส้นนั้น วิศวกรตรวจสอบต้องสร้างการทดสอบอย่างอิสระซึ่งพวกเขาเชื่อว่าจะครอบคลุมทุกกรณีที่เป็นไปได้ แคช แฟบริก และ IO มีความสอดคล้องกันในทุกรูปแบบการควบคุม (กำลัง การขัดจังหวะ การตอกบัตร ฯลฯ) ซึ่งการออกแบบอาจวนซ้ำ นั่นคือที่มาของแอป Breker Trek System Coherency

Adnan Hamid ผู้ก่อตั้ง Breker เริ่มต้นเมื่อหลายปีก่อนในการตรวจสอบความสอดคล้องกันที่ AMD แนวคิดที่เขาพัฒนาขึ้นเกี่ยวกับการตรวจสอบความเชื่อมโยงของแคชและวิธีการตรวจสอบระบบโดยทั่วไปที่เขาสร้างไว้ใน Breker โซลูชันการเชื่อมโยงกันขยายตัวเมื่อเวลาผ่านไปเพื่อรวมความสอดคล้องของแฟบริกและ IO และการโต้ตอบกับสวิตช์ไฟ ฯลฯ หลังจากพิสูจน์ความสามารถนี้กับลูกค้าเป้าหมายสองสามราย Breker ได้ประกาศผลิตภัณฑ์ในงาน DAC 2021 ล่าสุดในซานฟรานซิสโก

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

แล้วการหลบหนีล่ะ?

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

สิ่งที่น่าสนใจซึ่งได้รับการสนับสนุนโดยบังเอิญสำหรับทั้งระบบที่ใช้ Arm และ RISC-V ซึ่งเพิ่งได้รับการรับรองในการแถลงข่าวด้วย Nuclei System Technology คุณสามารถเรียนรู้เพิ่มเติม ที่นี่.

ยังอ่าน:

เว็บบินาร์: Adnan กับความท้าทายในการตรวจสอบความปลอดภัย

Breker ให้คำแนะนำแก่กราฟที่เป็นทางการในการยืนยันความปลอดภัยของ PSS

การตรวจสอบ RISC-V และความสามารถในการขยาย

แชร์โพสต์นี้ผ่าน: ที่มา: https://semiwiki.com/eda/306824-breker-attacks-system-coherency-verification/

ประทับเวลา:

เพิ่มเติมจาก กึ่งวิกิ