ดูเหมือนว่า FineIBT เป็น การผสมผสานที่ดีที่สุดของเทคโนโลยี Control-flow Enforcement Technology และ Control Flow Integrity เข้าด้วยกันเป็นการนำเอาการควบคุมความสมบูรณ์ของกระแสการควบคุมทางเลือก (CFI) ที่ได้รับการปรับปรุงมาใช้ อาจพร้อมสำหรับ mainline ด้วยวงจร Linux 6.2 ที่กำลังจะมีขึ้น
การรองรับ FineIBT ได้รับการเพิ่มไปยัง x86/core branch ของ TIP โดยที่ core x86 เปลี่ยนแปลงตามปกติ จนกว่าจะถูกส่งเป็นส่วนหนึ่งของหน้าต่างการรวมของรอบเคอร์เนลถัดไป เมื่อพิจารณาจากจังหวะเวลาและการกีดกันปัญหาใด ๆ จากการถูกหยิบยกขึ้นมาด้วย FineIBT ตอนนี้ถึง TIP x86/core แล้ว ก็มีแนวโน้มที่จะส่งสำหรับหน้าต่างการผสาน Linux 6.2 ในเดือนธันวาคม
วิศวกรของ Intel ทำงานในโค้ด”Fine Indirect Branch Tracking”ตามที่อธิบายไว้ใน แพตช์ a>:
ใช้รูปแบบ CFI ทางเลือกที่ผสานทั้งลักษณะเนื้อละเอียดของ kCFI แต่ยังใช้ประโยชน์จาก CFI ฮาร์ดแวร์แบบหยาบตามที่ IBT จัดเตรียมให้
ในทางตรงกันข้าม:
kCFI เป็นรูปแบบ CFI ของซอฟต์แวร์ล้วนๆ และอาศัยความสามารถในการอ่านข้อความ โดยเฉพาะคำสั่ง *ก่อน* สัญลักษณ์เป้าหมาย และทำการตรวจสอบแฮช *ก่อน* ดำเนินการ โทร (มิฉะนั้นการควบคุมโฟลว์ถูกบุกรุกแล้ว)
FineIBT คือรูปแบบไฮบริดของซอฟต์แวร์และฮาร์ดแวร์ โดยการทำให้แน่ใจว่าทุกเป้าหมายของสาขาเริ่มต้นด้วยการตรวจสอบความถูกต้องของแฮช เป็นไปได้ที่จะวางการตรวจสอบความถูกต้องของแฮชหลังสาขา มีข้อดีหลายประการ:
o หลีกเลี่ยงการโหลด (แฮช) ไม่มีบันทึก; ไม่มีข้อกำหนด RX
o สถานะ IBT WAIT-FOR-ENDBR เป็นการหยุดเก็งกำไร โดยวางการตรวจสอบความถูกต้องของแฮชในคำสั่งทันทีหลังจากเป้าหมายของสาขามีหน้าต่างการเก็งกำไรน้อยที่สุดและทั้งหมดเป็นการป้องกันที่ทำงานได้กับ SpectreBHB
o Kees รู้สึกว่าจำเป็นต้องพูดถึงว่ามีความเสี่ยงเล็กน้อยเมื่อผู้โจมตีสามารถเขียนโค้ดได้
เห็นได้ชัดว่าแพตช์นี้อาศัย kCFI แต่ยังอาศัยการแพดดิ้งจากแพตช์การติดตามเชิงลึกการโทรด้วย มันใช้ช่องว่างภายในนี้เพื่อวางการตรวจสอบความถูกต้องของแฮชในขณะที่ไซต์การโทรถูกเขียนใหม่เพื่อแก้ไขเป้าหมายทางอ้อมเป็น 16 ไบต์ที่ด้านหน้าของเป้าหมายเดิม ดังนั้นจึงตีบทนำใหม่นี้
โดยเฉพาะอย่างยิ่ง ไม่มีฮาร์ดแวร์ที่ต้องการการติดตามเชิงลึกของการโทร (Skylake) และรองรับ IBT (Tigerlake ขึ้นไป)
ตัวเลือกการกำหนดค่าสำหรับคุณลักษณะเคอร์เนลนี้ อยู่ภายใต้”FINEIBT”