电子发烧友网报道(文/周凯扬)随着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会给未来移动软件生态开发的安全提供更多助力。
而在发布的新闻中,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会给未来移动软件生态开发的安全提供更多助力。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
ARM
+关注
关注
134文章
8639浏览量
361615
发布评论请先 登录
相关推荐
知语云智能科技揭秘:无人机威胁如何破解?国家安全新防线!
方法,为国家安全筑起新的防线。
一、无人机威胁的现状与挑战
近年来,无人机滥用事件频发,从非法航拍到侵犯隐私,再到恐怖袭击和走私活动,无人机的潜在威胁不容忽视。这些事件不仅侵犯了公民的合法权益,也
发表于 02-27 10:41
使用AD16488A时,通过DIO4引入外部时钟,时钟频率为100Hz,会对最终传感器的输出有什么影响?
请问在使用16488A时,通过DIO4引入外部时钟,时钟频率为100Hz,会对最终传感器的输出有什么影响?对数据就绪信号DRY有什么影响呢?
手册中看到了可能会造成角度变化的寄存器值溢出,但我用不到这个量。谢谢了!
发表于 12-29 06:19
一文解析Armv8.5-A内存标记扩展(MTE)
MTE提供了一种机制来检测两类主要的内存安全违规。MTE通过提高测试和Fuzzing的有效性来帮助在部署之前检测潜在的漏洞。MTE还可以在部
发表于 10-31 15:04
•480次阅读
在ARMv8-M上使用TrustZone
®技术是片上系统(SoC)和CPU系统范围的安全方法。
针对ARMv8-M安全扩展的TrustZone针对超低功耗嵌入式应用进行了优化。
它支持多个软件安全域,限制对受信任软件的
发表于 09-04 07:11
基于ARMv8-M处理器的安全堆叠密封
、Cortex-M35P和Cortex-M55,以及任何由合作伙伴在许可下设计的ARMv8-M处理器,其中包括称为TrustZone的安全扩展。
在这些处理器上,如果安全软件在创建堆栈时没有正确管理
发表于 08-17 06:31
ARM体系结构参考手册ARMv7-A和ARMv7-R版本
提前(AOT)编译的特定支持。
·决定处理器如何运行的模式和状态,包括当前的执行特权和安全性。
·例外模式。
·内存模型,定义内存排序和内存管理:
-
发表于 08-12 07:46
Armv8-A内存定序模型详解
1. 本指南介绍由 Armv8-A 架构定义的内存定序模型,并介绍所提供的不同内存障碍;本指南还确定一些需要明确定序的常见情况,以及如何使用内存障碍以确保实现正确操作;本指南适用于低级
发表于 08-02 11:03
Armv8-A和Armv9-A的内存属性和属性介绍
1. 本指南介绍Armv8-A和Armv9-A的内存属性和属性。它首先解释内存的属性来自何处,如何分配到内存区域,然后介绍现有的不同属性,并
发表于 08-02 09:03
适用于Android操作系统的MTE用户指南
ARM在Armv8.5体系结构推出了内存标记扩展(Memory Tagging Extension,MTE)技术。MTE是Arm体系结构的一个重要增强特性,通过检测和处理与
发表于 08-02 08:56
了解Armv9-A体系结构之SVE2简介
本指南是Armv9-A 结构的可缩放矢量扩展(SVE2) 第二版第二版的简短导言。 您可以在此指南中了解 SVE2 的概念和主要特点、 SVE2 的应用领域以及SVE2 与 SVE2 和 Neon
发表于 08-02 08:19
Armv8-M内存模型与内存保护用户指南
本指南概述了Armv8-M内存模型和内存保护单元(MPU)在Cortex-M处理器中实现。本指南使用示例来帮助解释这些概念
它介绍了。
本章概述以下主题:
•内存模型
•
发表于 08-02 08:12
Armv9核心A710、A715和A510微架构解读
在介绍Armv9系列前,我们先看一下ARM的Cortex-X定制CPU计划。Cortex-X方案先于Armv9发布,在Arm发布A78时,同时也发布了Cortex-X1这一颗性能强大的CPU,后续大家习惯称之为超级大核。
发表于 06-12 09:27
•1.8w次阅读
内存安全:Arm 内存标记扩展如何应对业内安全挑战
全面了解内存标记扩展 (Memory Tagging Extension, MTE),如何在 Arm 移动生态系统中实现 MTE,以及为何 MTE 是解决
发表于 05-09 14:31
•501次阅读
评论