
"生成高效代码不够,还必须生成安全代码。"尽管编译器经过严格测试和认证,其优化过程仍可能意外引入信息泄露或删除安全关键操作。例如图1展示的CWE-733漏洞:编译器死存储消除优化会删除程序员编写的密钥清零操作,导致密钥可能被攻击者恢复。
攻击者通过ROP/JOP技术复用程序自身的代码片段(gadgets)构建攻击链。如图2所示,攻击者利用内存破坏漏洞将gadget地址链植入栈空间,每个gadget以间接分支指令(如retn)结尾,形成"指令拼图"。
基于Egalito实现五种优化策略:
效果验证:
研究寄存器分配等编译器行为的影响,探索其对控制流完整性(CFI)的潜在性能优化效益。
研究合作:佐治亚理工学院Matthew Pruett、Robert Bigelow等
原始数据见GSA工具
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。