目录
1988年的互联网蠕虫攻击使十分之一的新兴网络下线,并严重减缓了其余部分的速度。三十多年后,在类似于C的编程语言中,仍然存在两个最重要的安全漏洞类别,即内存安全的违规。根据2019年BlueHat的一份报告,Microsoft产品中70%的安全问题都是由内存安全违规引起的。谷歌对Android的报告也有类似的数字,其中超过75%的漏洞是内存安全违规。虽然在新的编程语言中许多这些违规可能是不可能的,但使用C和C++编写的现有代码基础是庞大的。仅Debian Linux就包含了超过50亿行代码。
本文介绍了Armv8.5-A Memory Tagging Extension(MTE)。MTE的目标是在不需要源代码更改的情况下增加使用不安全语言编写的代码的内存安全性,并在某些情况下,无需重新编译。易于部署的检测和缓解内存安全违规的手段可以防止一大类安全漏洞被利用。
一、MTE简介
内存安全违规主要分为两个主要类别:空间安全和时间安全。可利用的违规构成了攻击的第一阶段,旨在传递恶意负载或与其他类型的漏洞链接,以控制系统或泄露特权信息。
空间安全违规发生在对象在其真实边界之外被访问时。例如,当栈上的缓冲区溢出时。这可能被利用来覆盖函数的返回地址,这可能构成多种类型的攻击。<