Shadowclone:通过栈布局随机化与 Canary 抵御并检测 DOP 攻击
Shadowclone 保护程序的安全性分析
控制流劫持攻击因 CFI 的广泛部署变得更难实施,攻击者因此转向 CFI 难以覆盖的非控制数据利用。非控制数据攻击既可破坏关键状态,也可泄露敏感信息。数据导向编程(DOP)甚至可以在不偏离程序控制流图的前提下实现图灵完备能力。
本文提出编译期栈布局随机化方案 Shadowclone,以高效抵御并检测 DOP 攻击。Shadowclone 会为目标脆弱函数生成随机化克隆,并在运行时随机选择其中一个执行;此外,我们还在栈变量中插入编译期随机 Canary,并在函数返回前校验其完整性。
评估结果表明,该方法可将攻击成功概率压低到 1% 以下。在程序规模较小、函数调用较少时,Shadowclone 还具有较低性能开销。