เป็นเวลาหลายปี Intel ได้ทำงานบนแพทช์ Linux เพื่อรองรับ Control-Flow Enforcement Technology (CET) ด้วย Indirect Branch Tracking และ Shadow Stack มีการดำเนินการมาหลายปีและผ่านการแก้ไขหลายครั้งในขณะที่ตอนนี้พวกเขากำลังไล่ตามเส้นทางใหม่และมุ่งเน้นไปที่ฟังก์ชันพื้นที่ผู้ใช้ Shadow Stack
ฟังก์ชัน Shadow Stack มุ่งเน้นที่การป้องกันการโจมตีจากการเขียนโปรแกรมเชิงส่งคืน (ROP) Shadow Stack จะเก็บสำเนาของแต่ละ CALL และเมื่อมีการส่งคืน (RET) จะตรวจสอบที่อยู่ที่ส่งคืนที่จัดเก็บไว้ในสแต็กปกติเพื่อตรวจสอบว่าตรงกับเนื้อหาของ Shadow Stack ไม่เช่นนั้นจะทำให้เกิดข้อผิดพลาด
การสนับสนุน Intel Shadow Stack กลับมาใช้งานได้แล้วสำหรับ Linux
Intel ได้สนับสนุน CET ให้กลับไปใช้ระบบ Tiger Lake ด้วย Indirect Branch Tracking เพื่อต่อสู้กับการโจมตี JOP/COP ด้วย ในขณะที่มีแพตช์ IBT Linux ทำงานอยู่ การก้าวไปข้างหน้า Intel มุ่งเน้นไปที่การสนับสนุนพื้นที่ผู้ใช้ Shadow Stack เพื่ออัปสตรีมสำหรับเคอร์เนล mainline Linux นั่นคือแผนอย่างน้อยในระยะสั้นโดยแพตช์ IBT ตอนนี้กำลังนั่งเบาะหลัง
Rick Edgecombe จาก Intel ได้กล่าวถึงแพทช์ชุดใหม่ในวันอาทิตย์:
นี่เป็นการรีบูตเล็กน้อยของชุด CET ของ userspace ฉันจะรับช่วงต่อซีรีส์จาก Yu-cheng ตามคำแนะนำภายในบางประการ ฉันได้รีเซ็ตหมายเลขเวอร์ชันและเรียกมันว่าซีรีส์ใหม่ หวังว่าจะไม่ทำให้เกิดความสับสน
แผนใหม่คือการอัปสตรีมเฉพาะ userspace Shadow Stack รองรับ ณ จุดนี้ IBT สามารถติดตามได้ในภายหลัง แต่สำหรับตอนนี้ ฉันจะเน้นเฉพาะในส่วนที่เป็นที่ต้องการมากที่สุดและมีจำหน่ายอย่างแพร่หลาย (พร้อมฟีเจอร์ในซีพียู AMD ตอนนี้) ส่วนหนึ่งของ CET
ตอนนี้เรา ที่ชุดของแพตช์ 35 รายการที่เสนอสำหรับ shadow-stacks สำหรับ พื้นที่ผู้ใช้ สิ่งนี้ไม่เพียงแค่มุ่งเน้นที่การเพิ่มความปลอดภัยด้วยโปรเซสเซอร์ x86_64 ที่ทันสมัย แต่ Google ยังมองหาการใช้เงาสแต็กเพื่อปรับปรุงการติดตามด้วยประสิทธิภาพและความน่าเชื่อถือที่ดีขึ้น
ด้วยแพตช์ซีรีส์ใหม่คือการเรียกระบบใหม่สำหรับการจัดสรรสแต็คเงา การเปลี่ยนแปลงเพื่อให้แน่ใจว่าไบนารีที่เก่ากว่าจะไม่พัง และอีกมากมาย แม้ว่าโปรเซสเซอร์ AMD Ryzen 5000 series ล่าสุดจะสามารถรองรับ shadow stack ได้เช่นกัน แต่แพตช์ปัจจุบันนั้นจำกัดเฉพาะซีพียูของ Intel แผนจะอนุญาตให้ AMD CPU รองรับสแต็คเงาพื้นที่ผู้ใช้เมื่อมีผู้ทดสอบแล้ว-หวังว่าจะเกิดขึ้นก่อนที่จะรวมแพตช์
เราจะดูว่าชุด Shadow Stacks สำหรับ User-Space ใหม่นี้จะใช้งานได้เร็วกว่าชุดโปรแกรมแก้ไข CET ที่หยุดทำงานก่อนหน้านี้หรือไม่