与传统的 Return‑Oriented Programming(ROP) 不同,SFOP不是依赖操纵返回地址,而是利用 连续的异常与信号处理事件 来驱动控制流。
Control‑Flow Enforcement Technology(CET) 是Intel推出的硬件级安全机制,用于阻止代码复用攻击。该技术自Intel第10和第11代Core处理器起逐步部署,并集成到较新的Windows和Linux系统中。
CET的核心目标是确保程序控制流不会被非法重定向,例如:
通过这些机制,攻击者很难跳转到程序中任意指令位置来拼接恶意执行路径。
SFOP利用的关键点是:信号处理本身是操作系统允许的合法控制流转移。
简化后的攻击步骤如下:
在Linux中,程序可以为不同信号注册处理函数。例如:
这些处理函数通常用于记录日志或尝试恢复程序运行。但SFOP将这种错误恢复机制变成了一种 可重复使用的控制流原语:
研究人员还提出一种名为 PLaTypus 的加固机制,用于强化CET在真实系统中的防护能力。
PLaTypus的核心策略包括:
SFOP揭示了一个关键事实:硬件安全机制并不是孤立存在的。
即使像Intel CET这样先进的CPU级防护,如果操作系统层面的行为仍然可以提供可利用的控制流路径,攻击者仍然可能找到绕过方式。
对系统安全工程师而言,这项研究的意义在于:
随着CET等硬件安全特性在现代操作系统中逐渐普及,这类研究将帮助发现隐藏的设计缺口,并推动下一代系统安全机制的改进。