万物互联的世界,让所有的体验都智能化,其基础在于强大的计算能力,让更多的软件实现更好的功能。
然而,软件代码行数越长、内容越复杂,相对应,漏洞也在增加,安全风险也在不断加码。这对个人用户和对企业都会带来安全威胁。
面临指针的控制、错误的使用造成内存的泄露带来的困惑以及相应的安全问题,移动应用开发者都是在软件漏洞发布之后再做修改,导致潜在的风险扩散,伴随很高的成本。
如何从根本性改变这个现状,让更少漏洞的软件在生态圈里面出现?Arm了解到这些现状和需求后,改变传统思路,基于新的编译语言和底层的硬件平台增加新的功能,推出了内存标记扩展(Memory Tagging Extension,MTE)技术,为整个安卓生态圈带来更安全和可靠以及更高质量的体验。
Arm终端事业部软件战略总监卢旻盛相信,MTE作为Armv9的基础性能,势必成为64位架构和应用的未来。
MTE的“锁”和“密钥”功能
作为一种加强的存储保护技术,MTE技术利用指针高八位的第4bit作为内存的标记点,在内存生成时标记内存在指针使用和释放时判断指针和内存中标记是否一致,既方便开发者动态捕捉指针的错误,快速发现内存引起的问题,防止非法访问,同时还监控内存的使用情况,帮助开发者在软件部署前后检测内存安全,成为提升移动IT安全性的一个非常有效的武器;基于安全之上的用户体验,也得到了快速提升。
MTE两阶段系统可用“锁”和“密钥”来形象地解释:如果密钥匹配,则允许访问锁内存;否则,访问就会被记录下来或出错,从而轻松地检测到难以捕获的内存安全错误,也有助于进行常规调试。
基于MTE技术,Arm化解了空间和时间型风险,为客户提供“更好的软件”创造了条件,消费者体验与更多功能复杂的软件的能性得到提升,软件开发流程得到加速。
MTE技术一经问世,就受到移动生态伙伴的热捧。Google率先跟Arm合作,MediaTek、vivo、荣耀、快手等企业也纷纷引入。
备受开发者青睐和热捧的MTE
“芯片级的安全是整个移动生态的基础设施,没有芯片级的安全就没有今天移动生态的繁荣。”MediaTek无线通信事业部资深总监章立表示,MediaTek一直非常重视SoC层级的安全,是最早拥抱MTE的合作伙伴之一,2022年发布的天玑旗舰9200就已经支持MTE。
最近,MediaTek上线了天玑开发者中心,未来将利用天玑开发者中心来推广MTE应用生态,为天玑平台上开发移动的开发者提供一整套如何利用MTE,以及如何在MTE上开发出更好应用的开发者资源的解决方案。
vivo芯片规划和架构高级总监夏晓菲认为,Armv9帮助我们将整个用户体验提升到了一个新的高度。如基于Arm Cortex-X3高性能的CPU处理器的X90,采用自适应的画质模式,王者荣耀120FPS的稳帧极大地提升了用户体验。
让他印象更深的是Armv9带来的安全特性MTE,不仅化解了内存泄露带来的设备运行风险,同时也通过硬件级的技术降低了内存功耗。目前vivo正和Arm、MediaTek合作,在X90和X80两个版本上提供了开发者版本,方便他们有效地应用MTE技术。
夏晓菲表示,vivo将持续与Arm携手合作,无论是在游戏体验还是影像体验方面的惊艳感受,共同和生态伙伴一起为用户企业持续地创造价值。
过去一个时期以来,荣耀手机开发人员发现,一些自研的新增特性,以及与芯片厂家新平台的磨合等问题,轻则导致应用的闪退,重则引起整机的重启。多方查找原因,得不到要领。
在与Arm合作,采用MTE技术之后,很快定位到问题的原因所在——仅仅是数字尾部产生了溢出,同时还发现了图形库中隐藏多年的一些问题。
据荣耀公司MagicOS DFX架构师余亮介绍,荣耀天网开放了基于MTE/HWAsan踩内存检测和内存泄漏的检测功能,无论对于有源代码和无源代码,应用或者服务都无需重新编译,安装即可支持踩内存故障的检测,同时天网也集成了内存泄露的检测,提供了泄露栈的聚合能力。
在将MTE融入到日常的CI/CD的常态使用时,快手通过大量的探索、实践、沉淀出了一套自定义的MTE集成方案,如直接从APP自身底层开始对接Arm MTE技术,以替代安卓默认的AOSP方案,实现更加灵活的开启方式和定制化的策略,来提升内存安全问题的发版前召回率,最终实现生产端线上开包即用。
快手Android架构师李锐总结说,快手在内存安全领域的探索实践可总结为三个阶段,第一个阶段基于Asan和HWASan开展内存安全建设,解决可以用的问题;第二个阶段是通过自实现的一些更加安全的分配器来对应进行线上的开启接管内存的释放,实现部分线上的问题的检出;第三个阶段是基于MTE技术做到完全工程无入侵的高性能开启,最终打造快手梦寐以求的全能型的内存检测工具,同时满足高性能高、可靠率以及高易用性。
事实上,MTE上线后,快手的内存稳定性获得显著的提升:检测时App的运行速度相较于使用ASan时提升了十倍以上,资源消耗也大幅降低,进程内存消耗也降低一倍以上;故障检出率也获得大幅提升,内存破坏的历史问题检出数十个,内存破坏的拦截率超过90%。
李锐表示,快手深切地感受到MTE给内存安全领域带来的革命性的改变,使用MTE大大提升了开发效率和排查效率,内存安全问题无处可藏,给每个用户带来更好的体验。
助力Arm构筑起更加牢固的生态圈
MTE功能如此强大,大量的合作伙伴围绕Arm构筑起更加牢固的生态体系。
作为SoC的未来,MTE正在为越来越多的开发者所知。让章立惊讶的是,他在跟一个头部的游戏工作室交流的时候,其首席架构师就直接问MediaTek的SoC能否支持MTE。此举无疑增强了章立未来和Arm以及各行业的合作伙伴能携手把MTE应用到更多开发场景的信心。
夏晓菲表示,他也从开发者那儿得到了很多很好的反馈,他们称越来越离不开MTE的技术特性——这极大加速了他们软件开发中的效率,最终也能给消费者带来很好的体验,达到端侧和性能的平衡。
荣耀公司架构师余亮告诉笔者,他们将加深和Arm的合作,致力于推广动MTE应用,帮助开发者清理编程过程中出现的内存安全和应用闪退等异常情况。未来荣耀将聚焦在减少故障检测开销,丰富定位日志和测试模式方面,确保不间断测试,在开发者选项中更灵活地开放支持,与合作伙伴一起打造更稳定更安全的生态。
李锐则对MTE提出了新的期待,如支持设备数量的扩充问题,更加灵活的集成方式,线上开启堆内存以及栈和全局变量的破坏检测等。他相信,通过上下游的通力合作,MTE一定能打造成每个开发者都梦寐以求的全能型的检测工具,给每个用户带来更好的体验。
章立的观点代表了演讲嘉宾的心声:MTE技术不仅仅构筑了移动生态的基础安全解决方案,同时它也提供了一个工具或者方法,让开发者把移动做得更健壮更稳定,以及提供更好的用户体验。
强大的安全功能、不断稳固的生态体系,是MTE成为Arm 2023及未来全面计算解决方案(TCS)核心内容关键因素。