Intel CET
Intel CET 是什么?
Intel CETIntel CET(控制流强制技术)是一项 CPU 功能,结合硬件影子栈与间接分支跟踪(IBT)以阻断 ROP、JOP 和 COP 利用。
Intel CET 随 Tiger Lake(11 代酷睿)与第 11 代至强引入,包含两项互补保护。影子栈把返回地址保存在 CPU 保护的页面中,用户代码无法直接写入;RET 时若不匹配则触发 #CP 异常。间接分支跟踪(IBT)要求所有合法的间接跳转目标必须以 ENDBR 指令开始,从而禁止跳入函数中部或 gadget。操作系统通过 PROC_CET_* 或 SetProcessMitigationPolicy 为进程启用;编译器以 -fcf-protection=full 插入 ENDBR。CET 以硬件速度抑制 ROP/JOP,与 ASLR、DEP、栈金丝雀以及软件 CFI 互为补充。
● 示例
- 01
Windows 11 在 11 代酷睿上启用基于 CET 的硬件栈保护。
- 02
Linux 为加固二进制启用用户态影子栈 USER_SHSTK。
● 常见问题
Intel CET 是什么?
Intel CET(控制流强制技术)是一项 CPU 功能,结合硬件影子栈与间接分支跟踪(IBT)以阻断 ROP、JOP 和 COP 利用。 它属于网络安全的 应用安全 分类。
Intel CET 是什么意思?
Intel CET(控制流强制技术)是一项 CPU 功能,结合硬件影子栈与间接分支跟踪(IBT)以阻断 ROP、JOP 和 COP 利用。
Intel CET 是如何工作的?
Intel CET 随 Tiger Lake(11 代酷睿)与第 11 代至强引入,包含两项互补保护。影子栈把返回地址保存在 CPU 保护的页面中,用户代码无法直接写入;RET 时若不匹配则触发 #CP 异常。间接分支跟踪(IBT)要求所有合法的间接跳转目标必须以 ENDBR 指令开始,从而禁止跳入函数中部或 gadget。操作系统通过 PROC_CET_* 或 SetProcessMitigationPolicy 为进程启用;编译器以 -fcf-protection=full 插入 ENDBR。CET 以硬件速度抑制 ROP/JOP,与 ASLR、DEP、栈金丝雀以及软件 CFI 互为补充。
如何防御 Intel CET?
针对 Intel CET 的防御通常结合技术控制与运营实践,详见上方完整定义。
Intel CET 还有哪些其他名称?
常见的别称包括: CET, 间接分支跟踪, IBT。
● 相关术语
- appsec№ 1028
影子栈
影子栈是一条独立且受保护的栈,用于保存返回地址副本,使 CPU 能在正常栈被篡改时检测并阻止 ROP 攻击。
- appsec№ 217
控制流完整性(CFI)
控制流完整性(CFI)将程序的间接调用和返回限制在预先计算的合法目标集合内,阻断 ROP 与 JOP 等控制流劫持利用。
- appsec№ 925
面向返回的编程(ROP)
ROP 是一种代码复用利用技术,通过把以 RET 结尾的短指令序列(gadget)串成链来执行任意计算,而无需注入新代码。
- appsec№ 303
数据执行保护(DEP)
DEP(又称 NX 位或 W^X)将内存页标记为不可执行,使攻击者无法运行注入到栈或堆中的 shellcode。
- appsec№ 064
地址空间布局随机化(ASLR)
ASLR 在每次运行时随机化代码、栈、堆和共享库的内存地址,使攻击者无法可靠预测利用所需的目标地址。
- appsec№ 1095
栈金丝雀
栈金丝雀是函数局部缓冲区与保存的返回地址之间放置的秘密值,用于在攻击者劫持控制流之前检测栈溢出。
● 参见
- № 581内核 ASLR(KASLR)
- № 1058SMEP / SMAP
- № 671内存安全语言