问题
控制流攻击通常先探测系统,摸清代码和指针的位置,然后才发起攻击。静态随机化只能撑到攻击者探测完成为止。
思路
Morpheus 把一组移动目标防御(代码和指针加密、代码和数据重定位)与 churn 结合起来:硬件在程序运行时透明地重新随机化这些值。等攻击者要用探测结果时,结果已经过期。
结果
~1%churn 周期为 50 ms 时的性能开销
≥5000×重新随机化比估算的入侵时间至少快这么多
RISC-V 原型对多类控制流攻击提供了高覆盖率的防护。
我的工作
合作作者。负责评估各防御层的鲁棒性,在编译期加入内存标记支持,并参与 FPGA 原型开发。
论文: ASPLOS 2019