今天小編分享的科技經驗:大幅提升内存安全 快手率先将ARM MTE技術落地于大型Android App,歡迎閲讀。
近日,全球知名半導體公司 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 等合作夥伴的共同努力,快手技術團隊将持續提升系統穩定性和隐私安全,為用户提供更好的體驗。