arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1602.04056cs.CRcs.PL
收藏

控制流完整性:精度、安全性和性能

Control-Flow Integrity: Precision, Security, and Performance

Nathan Burow, Scott A. Carr, Joseph Nash, Per Larsen, Michael Franz, Stefan Brunthaler, Mathias Payer

摘要:

C/C++程序中的内存损坏错误仍然是当今系统中最常见的安全漏洞来源。控制流劫持攻击利用内存损坏漏洞将程序执行从预期的控制流转移。研究人员已经花了十多年的时间研究和改进基于控制流完整性(CFI)的防御,这项技术现在已经集成到几个生产编译器中。然而,到目前为止,还没有研究系统地比较了各种拟议的CFI机制,也没有任何协议,如何比较这些机制。我们比较了广泛的CFI机制使用统一的命名法的基础上(i)定性讨论的概念安全保证,(ii)定量的安全评估,和(iii)在相同的测试环境中的性能的经验评估。对于每种机制,我们评估(i)控制流传输的保护类型,(ii)前向和后向边缘的保护精度。对于基于开源编译器的实现,我们还评估(iii)生成的等价类和目标集,以及(iv)运行时性能。

英文摘要:

Memory corruption errors in C/C++ programs remain the most common source of security vulnerabilities in today's systems. Control-flow hijacking attacks exploit memory corruption vulnerabilities to divert program execution away from the intended control flow. Researchers have spent more than a decade studying and refining defenses based on Control-Flow Integrity (CFI), and this technique is now integrated into several production compilers. However, so far no study has systematically compared the various proposed CFI mechanisms, nor is there any protocol on how to compare such mechanisms. We compare a broad range of CFI mechanisms using a unified nomenclature based on (i) a qualitative discussion of the conceptual security guarantees, (ii) a quantitative security evaluation, and (iii) an empirical evaluation of their performance in the same test environment. For each mechanism, we evaluate (i) protected types of control-flow transfers, (ii) the precision of the protection for forward and backward edges. For open-source compiler-based implementations, we additionally evaluate (iii) the generated equivalence classes and target sets, and (iv) the runtime performance.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑