| 本文已被:浏览 2543次 下载 5119次 |
 码上扫一扫! |
|
|
| 运行时代码随机化防御代码复用攻击 |
|
张贵民1,2, 李清宝1,2, 曾光裕1,2, 赵宇韬1,2
|
|
1.解放军信息工程大学, 河南 郑州 450001;2.数学工程与先进计算国家重点实验室, 河南 郑州 450001
|
|
| 摘要: |
| 代码复用攻击日趋复杂,传统的代码随机化方法已无法提供足够的防护.为此,提出一种基于运行时代码随机化的代码复用攻击防御方法LCR.该方法在目标程序正常运行时,实时监控攻击者企图获取或利用gadgets的行为,当发现监控的行为发生时,立即触发对代码进行函数块级的随机化变换,使攻击者最终获取或利用的gadgets信息失效,从而阻止代码复用攻击的实现.设计实现了LCR原型系统,并对提出的方法进行了测试.结果表明:LCR能够有效防御基于直接或间接内存泄漏等实现的代码复用攻击,且在SPEC CPU2006上的平均开销低于5%. |
| 关键词: 代码随机化 代码复用攻击 内存泄漏 |
| DOI:10.13328/j.cnki.jos.005516 |
| 分类号:TP309 |
| 基金项目:国家社会科学基金(15AJG012);国家“核高基”科技重大专项(2013JH00103) |
|
| Defensing Code Reuse Attacks Using Live Code Randomization |
|
ZHANG Gui-Min1,2, LI Qing-Bao1,2, ZENG Guang-Yu1,2, ZHAO Yu-Tao1,2
|
|
1.PLA Information Engineering University, Zhengzhou 450001, China;2.State Key Laboratory of Mathematical Engineering and Advanced Computing, Zhengzhou 450001, China
|
| Abstract: |
| As code reuse attacks (CRA) are becoming increasingly complex, legacy code randomization methods have been unable to provide adequate protection. An approach called LCR is present to defense CRA by living code randomization. LCR real-time monitors all suspicious operations which aim to find or utilize gadgets. When above events occur, LCR randomizes the function blocks of the target process in the memory so that gadgets' information known by attackers become invalid and attacks composed of these gadgets will fail. Finally, a prototype system of LCR is implemented to test the proposed method. Experiment results show that LCR can effectively defense CRAs based on direct or indirect memory disclosure, meanwhile introduces low run-time performance overhead on SPEC CPU2006 with less than 5% on average. |
| Key words: code randomization code reuse attack memory disclosure |