首页> 外文会议>International Symposium on Microarchitecture >Sampler: PMU-Based Sampling to Detect Memory Errors Latent in Production Software
【24h】

Sampler: PMU-Based Sampling to Detect Memory Errors Latent in Production Software

机译:采样器:基于PMU的采样,以检测生产软件中的内存错误

获取原文

摘要

Deployed software is still faced with numerous in-production memory errors. They can significantly affect system reliability and security, causing application crashes, erratic execution behavior, or security attacks. Unfortunately, existing tools cannot be deployed in the production environment, since they either impose significant performance/memory overhead, or can only detect partial errors. This paper presents Sampler, a library that employs the combination of hardware-based SAMPLing and novel heap allocator design to efficiently identify a range of memory ERrors, including buffer overflows, use-after-frees, invalid frees, and double-frees. Due to the stringent Quality of Service (QoS) requirement of production services, Sampler proposes to trade detection effectiveness for performance on each execution. Rather than inspecting every memory access, Sampler proposes the use of the Performance Monitoring Unit (PMU) hardware to sample memory accesses, and only checks the validity of sampled accesses. At the same time, Sampler proposes a novel dynamic allocator supporting fast metadata lookup, and a solution to prevent false alarms potentially caused by sampling. The sampling-based approach, although it may lead to reduced effectiveness on each execution, is suitable for in-production software, since software is generally employed by a large number of individuals, and may be executed many times or over a long period of time. By randomizing the start of the sampling, different executions may sample different sequences of memory accesses, working together to enable effective detection. Experimental results demonstrate that Sampler detects all known memory bugs inside real applications, without any false positive. Sampler only imposes negligible performance overhead (2.4% on average). Sampler is the first work that simultaneously satisfies efficiency, preciseness, completeness, accuracy, and transparency, making it a practical tool for in-production deployment.
机译:已部署的软件仍面临众多生产内存错误。它们可以显着影响系统可靠性和安全性,导致应用程序崩溃,不稳定执行行为或安全攻击。不幸的是,现有工具不能部署在生产环境中,因为它们要么施加显着的性能/内存开销,要么只能检测部分错误。本文介绍了采样器,该库采用了基于硬件的采样和新颖堆分配器设计的组合,以有效地识别一系列内存错误,包括缓冲区溢出,使用后的释放,无效的释放和双倍释放。由于生产服务的严格服务质量(QoS)要求,采样器建议对每次执行时的性能进行贸易效果。采样器而不是检查每个内存访问,采样器提出使用性能监控单元(PMU)硬件来采样存储器访问,并且只检查采样访问的有效性。与此同时,采样器提出了一种支持快速元数据查找的新型动态分配器,以及防止采样引起的误报的解决方案。基于采样的方法虽然可能导致每次执行的效率降低,但适用于生产软件,因为软件通常由大量的个人使用,并且可以在很多次或长时间内执行。通过随机化采样的开始,不同的执行可以对不同的存储器访问序列进行采样,一起工作以实现有效检测。实验结果表明,采样器检测到真实应用内的所有已知的内存错误,而没有任何误报。取样器只会忽略不计的性能开销(平均2.4%)。采样器是第一个同时满足效率,精确度,完整性,准确性和透明度的第一项工作,使其成为生产部署的实用工具。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号