近日,全球知名半導(dǎo)體公司ARM發(fā)布 2023全面計(jì)算解決方案(TCS23),并于北京舉行了技術(shù)分享日活動(dòng),來(lái)自快手的技術(shù)專(zhuān)家分享了在大型項(xiàng)目中通過(guò)使用MTE來(lái)提升內(nèi)存安全的最新實(shí)踐。
ARM在 2023全面計(jì)算解決方案中,重點(diǎn)強(qiáng)調(diào)了內(nèi)存標(biāo)簽擴(kuò)展 (Memory Tagging Extension, MTE) 特性。據(jù)了解,MTE可以幫助開(kāi)發(fā)者在部署之前和之后檢測(cè)到內(nèi)存安全問(wèn)題,保證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ù)超過(guò)296億對(duì)。為了給用戶提供極致體驗(yàn),快手非常重視App穩(wěn)定性和保護(hù)用戶的隱私安全。
來(lái)自快手的技術(shù)專(zhuān)家李銳介紹,通過(guò)與ARM、Google、VIVO、榮耀等公司合作,快手在大型Android工程項(xiàng)目中使用 Arm MTE 提高內(nèi)存安全,90% 的內(nèi)存安全問(wèn)題可以在 App 正式發(fā)布之前就在線下被檢測(cè)攔截,全面保障線上用戶的基礎(chǔ)體驗(yàn)。
在追求高性能和跨平臺(tái)的基礎(chǔ)軟件領(lǐng)域,快手使用C/C++/Assembly作為主要編程語(yǔ)言,這些語(yǔ)言提供了對(duì)內(nèi)存的直接靈活控制,程序員需要手動(dòng)管理內(nèi)存,包括分配、釋放和直接使用地址讀寫(xiě)內(nèi)存,通常被稱(chēng)為內(nèi)存不安全的語(yǔ)言。
在快手這樣量級(jí)的App里,由于多線程并發(fā)和對(duì)象生命周期的管理復(fù)雜,外加海量用戶、高使用時(shí)長(zhǎng)、碎片化設(shè)備等因素,很容易出現(xiàn)內(nèi)存破壞的問(wèn)題,導(dǎo)致了大量偶發(fā)崩潰。并且根據(jù)Google Android的報(bào)道,75%的漏洞都和內(nèi)存非法使用有關(guān)。
過(guò)去,快手主要基于LLVM ASan工具進(jìn)行內(nèi)存破壞檢測(cè),由于傳統(tǒng)內(nèi)存檢測(cè)工具的性能開(kāi)銷(xiāo)較高,且需要重新編譯所有源代碼,所以幾乎無(wú)法在快手這樣量級(jí)的大型項(xiàng)目日常開(kāi)發(fā)實(shí)踐中使用這些工具。
而快手MTE 自定義方案解決了這些問(wèn)題,打破了傳統(tǒng)內(nèi)存檢測(cè)工具的不可能三角?;谟脩粽鎸?shí)場(chǎng)景,在高內(nèi)存負(fù)載下開(kāi)啟MTE,依然可以十分流暢的運(yùn)行快手app。包括視頻觀看、主頁(yè)刷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展示。
李銳表示,通過(guò)與ARM等合作伙伴的共同努力,快手技術(shù)團(tuán)隊(duì)將持續(xù)提升系統(tǒng)穩(wěn)定性和隱私安全,為用戶提供更好的體驗(yàn)。
- QQ:61149512