近日,全球知名半導(dǎo)體公司ARM發(fā)布 2023全面計算解決方案(TCS23),并于北京舉行了技術(shù)分享日活動,來自快手的技術(shù)專家分享了在大型項目中通過使用MTE來提升內(nèi)存安全的最新實踐。
ARM在 2023全面計算解決方案中,重點強調(diào)了內(nèi)存標簽擴展 (Memory Tagging Extension, MTE) 特性。據(jù)了解,MTE可以幫助開發(fā)者在部署之前和之后檢測到內(nèi)存安全問題,保證App內(nèi)存穩(wěn)定性提升用戶體驗,并減少安全漏洞降低受到攻擊的可能性。
作為領(lǐng)先的短視頻和直播平臺,2023年一季度,快手應(yīng)用的DAU同比增長8.3%達 3.74億,短視頻及直播內(nèi)容的總觀看次數(shù)同比增長超10%,累計互關(guān)用戶對數(shù)超過296億對。為了給用戶提供極致體驗,快手非常重視App穩(wěn)定性和保護用戶的隱私安全。
來自快手的技術(shù)專家李銳介紹,通過與ARM、Google、VIVO、榮耀等公司合作,快手在大型Android工程項目中使用 Arm MTE 提高內(nèi)存安全,90% 的內(nèi)存安全問題可以在 App 正式發(fā)布之前就在線下被檢測攔截,全面保障線上用戶的基礎(chǔ)體驗。
在追求高性能和跨平臺的基礎(chǔ)軟件領(lǐng)域,快手使用C/C++/Assembly作為主要編程語言,這些語言提供了對內(nèi)存的直接靈活控制,程序員需要手動管理內(nèi)存,包括分配、釋放和直接使用地址讀寫內(nèi)存,通常被稱為內(nèi)存不安全的語言。
在快手這樣量級的App里,由于多線程并發(fā)和對象生命周期的管理復(fù)雜,外加海量用戶、高使用時長、碎片化設(shè)備等因素,很容易出現(xiàn)內(nèi)存破壞的問題,導(dǎo)致了大量偶發(fā)崩潰。并且根據(jù)Google Android的報道,75%的漏洞都和內(nèi)存非法使用有關(guān)。
過去,快手主要基于LLVM ASan工具進行內(nèi)存破壞檢測,由于傳統(tǒng)內(nèi)存檢測工具的性能開銷較高,且需要重新編譯所有源代碼,所以幾乎無法在快手這樣量級的大型項目日常開發(fā)實踐中使用這些工具。
而快手MTE 自定義方案解決了這些問題,打破了傳統(tǒng)內(nèi)存檢測工具的不可能三角?;谟脩粽鎸崍鼍?,在高內(nèi)存負載下開啟MTE,依然可以十分流暢的運行快手app。包括視頻觀看、主頁刷feed流、生產(chǎn)拍攝、直播推拉流、電商等高頻使用內(nèi)存的業(yè)務(wù)場景。累計檢出內(nèi)存破壞bug數(shù)十個,包括自研庫、三方庫和系統(tǒng)GPU驅(qū)動庫等,在保證內(nèi)存安全方面發(fā)揮了重要作用。
快手穩(wěn)定性團隊是國內(nèi)率先在Android應(yīng)用側(cè)把MTE技術(shù)完整落地用于大型App內(nèi)存安全檢測的,也早于Facebook和Unity在大型工程中實踐,取得了不錯的收益。并且ARM也在2023MWC世界移動通信大會上,將快手的實踐作為Case Study展示。
李銳表示,通過與ARM等合作伙伴的共同努力,快手技術(shù)團隊將持續(xù)提升系統(tǒng)穩(wěn)定性和隱私安全,為用戶提供更好的體驗。
- QQ:61149512