(资料图)

近日,全球知名半导体公司 ARM 发布 2023 全面计算解决方案(TCS23),并于北京举行了技术分享日活动,来自快手的技术专家分享了在大型项目中通过使用 MTE 来提升内存安全的最新实践。

ARM 在 2023 全面计算解决方案中,重点强调了内存标签扩展 ( Memory Tagging Extension, MTE ) 特性。据了解,MTE 可以帮助开发者在部署之前和之后检测到内存安全问题,保证 App 内存稳定性提升用户体验,并减少安全漏洞降低受到攻击的可能性。

作为领先的短视频和直播平台,2023 年一季度,快手应用的 DAU 同比增长 8.3% 达 3.74 亿,短视频及直播内容的总观看次数同比增长超 10%,累计互关用户对数超过 296 亿对。为了给用户提供极致体验,快手非常重视 App 稳定性和保护用户的隐私安全。

来自快手的技术专家李锐介绍,通过与 ARM、Google、VIVO、荣耀等公司合作,快手在大型 Android 工程项目中使用 Arm MTE 提高内存安全,90% 的内存安全问题可以在 App 正式发布之前就在线下被检测拦截,全面保障线上用户的基础体验。

在追求高性能和跨平台的基础软件领域,快手使用 C/C++/Assembly 作为主要编程语言,这些语言提供了对内存的直接灵活控制,程序员需要手动管理内存,包括分配、释放和直接使用地址读写内存,通常被称为内存不安全的语言。

在快手这样量级的 App 里,由于多线程并发和对象生命周期的管理复杂,外加海量用户、高使用时长、碎片化设备等因素,很容易出现内存破坏的问题,导致了大量偶发崩溃。并且根据 Google Android 的报道,75% 的漏洞都和内存非法使用有关。

过去,快手主要基于 LLVM ASan 工具进行内存破坏检测,由于传统内存检测工具的性能开销较高,且需要重新编译所有源代码,所以几乎无法在快手这样量级的大型项目日常开发实践中使用这些工具。

而快手 MTE 自定义方案解决了这些问题,打破了传统内存检测工具的不可能三角。基于用户真实场景,在高内存负载下开启 MTE,依然可以十分流畅的运行快手 app。包括视频观看、主页刷 feed 流、生产拍摄、直播推拉流、电商等高频使用内存的业务场景。累计检出内存破坏 bug 数十个,包括自研库、三方库和系统 GPU 驱动库等,在保证内存安全方面发挥了重要作用。快手稳定性团队是国内率先在 Android 应用侧把 MTE 技术完整落地用于大型 App 内存安全检测的,也早于 Facebook 和 Unity 在大型工程中实践,取得了不错的收益。并且 ARM 也在 2023MWC 世界移动通信大会上,将快手的实践作为 Case Study 展示。

李锐表示,通过与 ARM 等合作伙伴的共同努力,快手技术团队将持续提升系统稳定性和隐私安全,为用户提供更好的体验。

热点新闻