Spatial safety violations are the root cause of many security attacks and unexpected behavior of applications. Existing techniques to enforce spatial safety work broadly at either object or pointer granularity. Object-based approaches tend to incur high CPU overheads, whereas pointer-based approaches incur both high CPU and memory overheads. SGXBounds, an object-based approach, is so far the most efficient technique that provides complete out-of-bounds protection for objects. However, a major drawback of this approach is that it can't support address space larger than 32-bit. In this paper, we present CGuard, a tool that provides object-bounds protection for C applications with comparable overheads to SGXBounds without restricting the application address space. CGuard stores the bounds information just before the base address of an object and encodes the relative offset of the base address in the spare bits of the virtual address available in x86_64 architecture. For an object that can't fit in the spare bits, CGuard uses a custom memory layout that enables it to find the base address of the object in just one memory access. Our study revealed spatial safety violations in the gcc and x264 benchmarks from the SPEC CPU2017 benchmark suite and the string_match benchmark from the Phoenix benchmark suite. The execution time overheads for the SPEC CPU2017 and Phoenix benchmark suites were 42% and 26% respectively, whereas the reduction in the throughput for the Apache webserver when the CPUs were fully saturated was 30%. These results indicate that CGuard can be highly effective while maintaining a reasonable degree of efficiency.
翻译:破坏空间安全的行为是许多安全攻击和意外应用行为的根源。 执行空间安全工作的现有技术在物体或指点颗粒上大致执行。 基于目标的方法往往产生高CPU管理费, 而基于指示的方法产生高的CPU管理费和记忆管理费。 SGXBound是一种基于目标的方法,是迄今为止为物体提供完全不受限制的保护的最有效技术。 然而, 这种方法的一个主要缺点是它无法支持超过32位以上的空间。 在本文中, 我们展示了CGuard, 这是为C应用程序提供目标约束保护的工具, 具有与SGXBound类似的管理费。 而基于指示的方法往往具有较高的CPU管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费用管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费基底基底。 我们的研究发现SBrealBRCBlickral 基准的S17, 基底基底基底基基基基基基比值管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费管理费。