【24h】

Dynamic buffer overflow detection for GPGPUs

机译:GPGPU的动态缓冲区溢出检测

获取原文

摘要

Buffer overflows are a common source of program crashes, data corruption, and security problems. In this work, we demonstrate that GPU-based workloads can also cause buffer overflows, a problem that was traditionally ignored because CPUs and GPUs had separate memory spaces. Modern GPUs share virtual, and sometimes physical, memory with CPUs, meaning that GPU-based buffer overflows are capable of producing the same program crashes, data corruption, and security problems as CPU-based overflows. While there are many tools to find buffer overflows in CPU-based applications, the shift towards GPU-enhanced programs has expanded the problem beyond their capabilities. This paper describes a tool that uses canaries to detect buffer overflows caused by GPGPU kernels. It wraps OpenCL™ API calls and alerts users to any kernel that writes outside of a memory buffer. We study a variety of optimizations, including using the GPU to perform the canary checks, which allow our tool to run at near application speeds. The resulting runtime overhead, which scales with the number of buffers used by the kernel, is 14% across 175 applications in 16 GPU benchmark suites. In these same suites, we found 13 buffer overflows in 7 benchmarks.
机译:缓冲区溢出是程序崩溃,数据损坏和安全问题的常见源。在这项工作中,我们证明基于GPU的工作负载也可能导致缓冲区溢出,这是传统上忽略的问题,因为CPU和GPU具有单独的存储空间。现代GPU共享虚拟,有时物理,具有CPU的内存,这意味着基于GPU的缓冲区溢出能够产生相同的程序崩溃,数据损坏和安全问题作为基于CPU的溢出。虽然有许多工具可以在基于CPU的应用程序中找到缓冲区溢出,但是朝着GPU增强程序的转变扩展了超出其功能的问题。本文介绍了一种工具,它使用Canaries检测由GPGPU内核引起的缓冲区溢出。它包装OpenCL™API调用并提醒用户到在内存缓冲区外写入​​的任何内核。我们研究各种优化,包括使用GPU执行金丝雀检查,允许我们的工具在近应用速度下运行。由此产生的运行时开销,其中内核使用的缓冲区数量缩放为14%,在16个GPU基准套件中为175个应用程序。在这些相同的套房中,我们发现了在7个基准中的13个缓冲区溢出。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号