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