中文

Intel MPX解析:Intel MPX与基于软件边界检查方法的实证研究

密码学与安全 2017-06-19 v2

摘要

内存安全违规是C/C++等不安全语言编写的系统软件中可靠性和安全漏洞的普遍原因。遗憾的是,所有现有的基于软件的解决方案都存在较高的性能开销,阻碍了它们在生产运行中的广泛采用。为解决此问题,Intel最近发布了一个新的ISA扩展——内存保护扩展(Intel MPX),一种硬件辅助的全栈解决方案,用于防范内存安全违规。在这项工作中,我们对Intel MPX架构进行了详尽研究,以理解其优势与缺陷。我们的研究沿三个维度展开:(a)性能开销,(b)安全保证,以及(c)可用性问题。为使结果具有参照性,我们将Intel MPX与三种著名的基于软件的方法进行比较:(1) trip-wire——AddressSanitizer,(2) object-based——SAFECode,以及(3) pointer-based——SoftBound。我们的主要结论是,Intel MPX是一项有前景但尚不实用以供广泛采用的技术。Intel MPX的性能开销仍然很高(平均约50%),且支撑基础设施存在可能导致编译或运行时错误的缺陷。此外,我们展示了Intel MPX的设计局限性:它无法检测时间错误,在多线程代码中可能出现误报和漏报,并且其对内存布局的限制要求对某些程序做大量代码修改。

关键词

引用

@article{arxiv.1702.00719,
  title  = {Intel MPX Explained: An Empirical Study of Intel MPX and Software-based Bounds Checking Approaches},
  author = {Oleksii Oleksenko and Dmitrii Kuvaiskii and Pramod Bhatotia and Pascal Felber and Christof Fetzer},
  journal= {arXiv preprint arXiv:1702.00719},
  year   = {2017}
}