Armv9引入的MTE已成内存安全的新防线

随着arm近日公开tcs23方案,可以看出arm在移动soc的计算核心上,已经全面走向了armv9.2架构,无论是大核cortex-x4、中核cortex-a720还是小核cortex-a520,都是基于armv9.2-a的。
而在发布的新闻中,arm重点强调了内存标签扩展(mte)这一安全特性。其实mte已经不是什么新特性了,早在armv8.5推出之际就已经面世,如今更是完全融入了兼容armv9架构的cpu中。
mte提供的内存安全保障
内存已经成了近几个世纪以来最大的漏洞来源之一,比如谷歌chromium团队就表示70%的重度安全漏洞都与内存安全有关。而mte则是一个用来检测内存错误和内存安全违规的工具,对于软件开发者来说可以用于及时发现应用中存在的问题。
mte会利用额外的元数据,对每次内存的分配/取消分配进行标记,并将标记内存位置与引用该内存位置的指针关联,这样在运行时,cpu就会检查指针与元数据标记是否匹配,从而帮助开发者检测缓冲区溢出这类常见的内存安全bug。
根据arm的说法,mte对于智能手机生态系统来说至关重要,因为mte可以帮助开发者在部署之前和之后检测到内存安全问题。部署前检测到安全漏洞将降低代码受到攻击的可能性,而在部署之后检测到安全问题可以帮助开发者更灵活地修复这些漏洞。
mte软硬件结合
需要注意的是,要想获得mte的内存安全保护,不是单靠armv9架构的cpu就能实现的,mte是一套软硬件结合的实现方案,所以也需要操作系统的支持。比如谷歌在安卓12中加入了初步的mte实现,可以用来检测示范后使用(uaf)和缓冲区溢出这样的常见bug。
除了谷歌之外,荣耀也在其magicos 6.x和magicos 7设备实现了mte,允许开发者通过honor skynet和诊断工具来检测内存安全问题。诸如快手这样的应用,由于大部分代码库都是基于c++这样的非内存安全语言,已经在利用mte技术检测软件开发中的内存安全bug,提高检测速度的同时,也避免软件上架前出现严重内存漏洞。
可以看出,mte需要操作系统的协作才能同步保证内存的安全,但为何目前没有更多的系统跟进mte呢?答案是mte虽然保证了安全性,但也一定程度影响了性能。谷歌在安卓13版本的开发者选项中,提供了一个重启并启用mte的选项,从而在那些硬件支持mte但并没有启用的设备上打开这一功能。
谷歌强调,这一选项的目标受众属于那些希望使用mte来测试其软件的应用开发者。而且谷歌会在这一选项开启后提示,mte可能会对系统性能和稳定性产生负面影响,且该选项将在下一次重启后重置。
话虽如此,相比传统的内存安全分析工具来说,mte的性能开销已经算很小了,尤其是在非对称模式下,也不用再一遍遍地重新编译源代码。开发者可以在检测到bug后再切换到同步模式,确保bug检测的精度。更何况arm也在和谷歌合作,力求在未来的安卓版本中减少mte的内存占用,相信mte会给未来移动软件生态开发的安全提供更多助力。

小米平板3/3Pro再曝光将和小米6齐发 多彩金属机身安卓Windows双系统
英创信息技术主板在Windows CE环境中的串口配置
台积电2nm芯片计划于2025年实现量产
食品快检仪的功能特点有哪些
一加6手机评测:真正的高性价比旗舰机
Armv9引入的MTE已成内存安全的新防线
十年耕耘结硕果,乘势而上谱新篇!CITE2022 圆满落幕
数字信号频谱带宽的上升时间F_3dB=0.35/Tr是怎么来的?
PLC及特殊功能模块在玻璃熔窑自控中的应用
颜色识别传感器在自动食品包装流水线的应用
USB3.0千兆网卡 USB千兆网卡免驱动
博通发布新HID芯片 蓝牙键盘不充电用10年
土壤养分速测仪可优化农业环境并推动农业发展
中兴天机AXON 9 简约版现已上架京东开启预约
STM32F769I-DISCO 麦克风基于互相关算法
iPhone8拆机图解
USB电气信号复位与设备速率识别
东芝CanvioSlim移动硬盘评测 个人用户值得考虑
锂离子超级电容器的应用方向
开发状态下的电子控制器基于ETK的刷写介绍