- 简介这项工作解决了 C 和 C++ 等语言中未初始化变量导致的内存安全漏洞的普遍性和缺乏充分软件缓解措施的问题,并提出在硬件层面上提供架构保护。基于能力的寻址,例如剑桥大学的 CHERI,可以在架构级别上缓解许多内存缺陷,包括空间和时间安全违规。然而,目前的 CHERI 设计无法处理未初始化变量的未定义行为。我们扩展了 CHERI 能力模型,包括“条件能力”,使内存访问策略基于先前的操作。这允许执行符合内存安全目标的策略,例如“没有至少一个先前写入的内存读取”(写入前读取)。我们提出了我们的架构扩展、编译器支持以及使用 QEMU 全系统模拟器和我们修改的 FPGA-based CHERI-RISCV softcore 的详细评估方法。我们的评估表明,写入前读取条件能力是实用的,具有高检测精度,同时对现有的 CHERI 架构增加了小约 3.5% 的开销。
- 图表
- 解决问题论文试图解决C和C++等语言中未初始化变量引起的内存安全漏洞问题,提出在硬件层面上实现架构保护的解决方案。
- 关键思路论文提出了一种扩展了CHERI(Capability Hardware Enhanced RISC Instructions)能力模型的解决方案,通过引入“条件能力”实现基于先前操作的内存访问策略,从而实现内存安全的要求。
- 其它亮点论文通过QEMU全系统模拟器和修改后的基于FPGA的CHERI-RISCV软核进行了详细的评估,结果表明条件能力实现起来是可行的,能够高精度地检测到内存访问策略违规,并且仅对现有CHERI架构增加了约3.5%的开销。
- 在相关研究中,有一些关注于内存安全问题的研究,例如:《A Study of the Causes and Consequences of Unused Memory Reads in C Programs》、《Automatic Detection and Repair of Errors in Memory Accesses》等。
沙发等你来抢
去评论
评论
沙发等你来抢