页面加载中,请稍候
来源:电子发烧友网发布时间:2023-06-012107浏览
询问 AIMTE提供的内存安全保障
内存已经成了近几个世纪以来最大的漏洞来源之一,比如谷歌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会给未来移动软件生态开发的安全提供更多助力。


更多热点文章阅读
新闻来源:电子发烧友网,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!

2026-07-13

2026-06-09

2026-07-02