内存标记扩展概述(Armv8.5-A)

该出版物提供了ARM的新Armv8.5-A白皮书:内存标记扩展(MTE)白皮书的翻译。MTE寻求提高以不安全语言编写的代码的安全性,而无需更改源代码,并且在某些情况下不需要重新编译。简单部署用于检测和防止违反内存安全性后果的机制可以防止利用大量漏洞。



介绍


1988年,Internet蠕虫病毒破坏了仍处于起步阶段的网络的十分之一,其余部分的速度大大降低(The Morris Worm)。三十多年后,对于以类似C的编程语言编写的代码,两类内存漏洞仍然很重要。根据2019年BlueHat的演讲,Microsoft产品解决的所有安全问题中有70%是由内存安全漏洞引起的。Google通过Android获得了类似的数据:超过75%的漏洞违反了内存安全性。尽管在更现代的安全语言中不可能实现许多此类违规,但是用C和C ++编写的代码基础非常广泛。仅Debian Linux包含超过十亿条线


违反内存安全性分为两大类:空间安全性和临时安全性。利用第一类侵权通常是为了:


  • 恶意有效载荷传递;
  • 获得对系统的控制(与其他类型的漏洞一起);
  • 组织特权信息的泄漏。

当对物体的吸引力超出其真实界限时,就会发生空间安全性违规。例如:堆栈上的缓冲区溢出,这可以允许从函数重写返回地址,这又可以构成几种攻击的基础。


́ , , , , . , , , .


MTE . MTE , . . MTE , . ( ) .



MTE , , . .


MTE , . (legacy) MTE .


MTE . MTE , . MTE MTE , Branch Target Identification (BTI) Pointer Authentication Code (PAC), , , .


MTE


Memory Tagging Extension "-" (lock & key). (lock) . ( ), . ( ) .


16 . (Tag Granule). (lock).


(, , ) , .


, ́ , MTE Top Byte Ignore (TBI) Armv8-A. TBI , . . MTE .


"-" :


MTE , . ( 4), , . , , , , , , .


MTE - . , , 100%.



, Memory Tagging Extension Armv8-A. , :


  • Architectural Details
  • Deploying MTE at Scale
  • Deploying MTE in Hardware
  • Deploying MTE in Software
  • Optimizing for MTE

, Google MTE Android (Arm). /, .


a13xp0p0v以及他的出色出版物CVE-2019-18683:利用Linux V4L2子系统中的漏洞,这引起了人们对MTE引擎的兴趣


All Articles