Memory safety remains a critical and widely violated property in reality. Numerous defense techniques have been proposed and developed but most of them are not applied or enabled by default in production-ready environment due to their substantial running cost. The situation might change in the near future because the hardware supported defenses against these attacks are finally beginning to be adopted by commercial processors, operating systems and compilers. We then face a question as there is currently no suitable test suite to measure the memory safety extensions supported on different processors. In fact, the issue is not constrained only for memory safety but all aspect of processor security. All of the existing test suites related to processor security lack some of the key properties, such as comprehensiveness, distinguishability and portability. As an initial step, we propose an expandable test framework for measuring the processor security and open source a memory safety test suite utilizing this framework. The framework is deliberately designed to be flexible so it can be gradually extended to all types of hardware supported security extensions in processors. The initial test suite for memory safety currently contains 160 test cases covering spatial and temporal safety of memory, memory access control, pointer integrity and control-flow integrity. Each type of vulnerabilities and their related defenses have been individually evaluated by one or more test cases. The test suite has been ported to three different instruction set architectures (ISAs) and experimented on six different platforms. We have also utilized the test suite to explore the security benefits of applying different sets of compiler flags available on the latest GNU GCC and LLVM compilers.
翻译:内存安全仍然是现实中一个关键和广泛违反的财产。许多防御技术已经提出和开发,但大部分没有在生产环境的默认情况下应用或启用,原因是其运行成本高昂。由于硬件支持这些攻击的防御设备最终开始被商业处理器、操作系统和编译者采纳,近期内情况可能会发生变化。然后我们面临一个问题,因为目前没有合适的测试套件来测量不同处理器所支持的内存安全扩展。事实上,问题不仅局限于内存安全,而且涉及处理器安全的所有方面。所有与处理器安全有关的现有测试套件都缺乏某些关键特性,例如全面性、可辨别性和可移动性。作为第一步,我们提议一个用于测量处理器安全及开放源的扩大测试框架,利用这一框架来最终的记忆安全测试套件。我们有意设计这个框架是为了灵活到可以逐渐扩展到所有类型得到支持的安全扩展。记忆安全初始测试套件目前包含160个测试案例,涉及记忆的时空安全、记忆存控制、指向性和控制流安全系统缺乏某些关键特性,例如全面性、可辨度和可移动性。作为第一步,我们提出一个可用于内部安全套的软度测试框架,对各种安全系统的最新安全结构进行个人脆弱性和不同版本的测试。我们对不同版本的系统进行了不同版本的版本的系统进行了不同的测试。每个测试,对各种安全结构进行了不同的安全结构进行了不同的测试。我们使用,对各种安全套件的系统进行了不同的安全结构进行了不同的安全套件式的测试,对不同的安全结构进行了不同的安全测试。我们对不同的安全结构进行了不同的安全结构进行了不同的测试,对不同的测试,对不同的测试,对不同的测试,对不同的安全结构进行了不同的测试,对不同的安全结构进行了不同的安全结构进行了不同的测试。我们对不同的测试。