然而,軟件代碼行數(shù)越長(zhǎng)、內(nèi)容越復(fù)雜,相對(duì)應(yīng),漏洞也在增加,安全風(fēng)險(xiǎn)也在不斷加碼。這對(duì)個(gè)人用戶(hù)和對(duì)企業(yè)都會(huì)帶來(lái)安全威脅。
面臨指針的控制、錯(cuò)誤的使用造成內(nèi)存的泄露帶來(lái)的困惑以及相應(yīng)的安全問(wèn)題,移動(dòng)應(yīng)用開(kāi)發(fā)者都是在軟件漏洞發(fā)布之后再做修改,導(dǎo)致潛在的風(fēng)險(xiǎn)擴(kuò)散,伴隨很高的成本。
如何從根本性改變這個(gè)現(xiàn)狀,讓更少漏洞的軟件在生態(tài)圈里面出現(xiàn)?Arm了解到這些現(xiàn)狀和需求后,改變傳統(tǒng)思路,基于新的編譯語(yǔ)言和底層的硬件平臺(tái)增加新的功能,推出了內(nèi)存標(biāo)記擴(kuò)展(Memory Tagging Extension,MTE)技術(shù),為整個(gè)安卓生態(tài)圈帶來(lái)更安全和可靠以及更高質(zhì)量的體驗(yàn)。
Arm終端事業(yè)部軟件戰(zhàn)略總監(jiān)盧旻盛相信,MTE作為Armv9的基礎(chǔ)性能,勢(shì)必成為64位架構(gòu)和應(yīng)用的未來(lái)。
MTE的“鎖”和“密鑰”功能
作為一種加強(qiáng)的存儲(chǔ)保護(hù)技術(shù),MTE技術(shù)利用指針高八位的第4bit作為內(nèi)存的標(biāo)記點(diǎn),在內(nèi)存生成時(shí)標(biāo)記內(nèi)存在指針使用和釋放時(shí)判斷指針和內(nèi)存中標(biāo)記是否一致,既方便開(kāi)發(fā)者動(dòng)態(tài)捕捉指針的錯(cuò)誤,快速發(fā)現(xiàn)內(nèi)存引起的問(wèn)題,防止非法訪(fǎng)問(wèn),同時(shí)還監(jiān)控內(nèi)存的使用情況,幫助開(kāi)發(fā)者在軟件部署前后檢測(cè)內(nèi)存安全,成為提升移動(dòng)IT安全性的一個(gè)非常有效的武器;基于安全之上的用戶(hù)體驗(yàn),也得到了快速提升。
MTE兩階段系統(tǒng)可用“鎖”和“密鑰”來(lái)形象地解釋?zhuān)喝绻荑€匹配,則允許訪(fǎng)問(wèn)鎖內(nèi)存;否則,訪(fǎng)問(wèn)就會(huì)被記錄下來(lái)或出錯(cuò),從而輕松地檢測(cè)到難以捕獲的內(nèi)存安全錯(cuò)誤,也有助于進(jìn)行常規(guī)調(diào)試。
基于MTE技術(shù),Arm化解了空間和時(shí)間型風(fēng)險(xiǎn),為客戶(hù)提供“更好的軟件”創(chuàng)造了條件,消費(fèi)者體驗(yàn)與更多功能復(fù)雜的軟件的能性得到提升,軟件開(kāi)發(fā)流程得到加速。
MTE技術(shù)一經(jīng)問(wèn)世,就受到移動(dòng)生態(tài)伙伴的熱捧。Google率先跟Arm合作,MediaTek、vivo、榮耀、快手等企業(yè)也紛紛引入。
備受開(kāi)發(fā)者青睞和熱捧的MTE
“芯片級(jí)的安全是整個(gè)移動(dòng)生態(tài)的基礎(chǔ)設(shè)施,沒(méi)有芯片級(jí)的安全就沒(méi)有今天移動(dòng)生態(tài)的繁榮?!盡ediaTek無(wú)線(xiàn)通信事業(yè)部資深總監(jiān)章立表示,MediaTek一直非常重視SoC層級(jí)的安全,是最早擁抱MTE的合作伙伴之一,2022年發(fā)布的天璣旗艦9200就已經(jīng)支持MTE。
最近,MediaTek上線(xiàn)了天璣開(kāi)發(fā)者中心,未來(lái)將利用天璣開(kāi)發(fā)者中心來(lái)推廣MTE應(yīng)用生態(tài),為天璣平臺(tái)上開(kāi)發(fā)移動(dòng)的開(kāi)發(fā)者提供一整套如何利用MTE,以及如何在MTE上開(kāi)發(fā)出更好應(yīng)用的開(kāi)發(fā)者資源的解決方案。
vivo芯片規(guī)劃和架構(gòu)高級(jí)總監(jiān)夏曉菲認(rèn)為,Armv9幫助我們將整個(gè)用戶(hù)體驗(yàn)提升到了一個(gè)新的高度。如基于Arm Cortex-X3高性能的CPU處理器的X90,采用自適應(yīng)的畫(huà)質(zhì)模式,王者榮耀120FPS的穩(wěn)幀極大地提升了用戶(hù)體驗(yàn)。
讓他印象更深的是Armv9帶來(lái)的安全特性MTE,不僅化解了內(nèi)存泄露帶來(lái)的設(shè)備運(yùn)行風(fēng)險(xiǎn),同時(shí)也通過(guò)硬件級(jí)的技術(shù)降低了內(nèi)存功耗。目前vivo正和Arm、MediaTek合作,在X90和X80兩個(gè)版本上提供了開(kāi)發(fā)者版本,方便他們有效地應(yīng)用MTE技術(shù)。
夏曉菲表示,vivo將持續(xù)與Arm攜手合作,無(wú)論是在游戲體驗(yàn)還是影像體驗(yàn)方面的驚艷感受,共同和生態(tài)伙伴一起為用戶(hù)企業(yè)持續(xù)地創(chuàng)造價(jià)值。
過(guò)去一個(gè)時(shí)期以來(lái),榮耀手機(jī)開(kāi)發(fā)人員發(fā)現(xiàn),一些自研的新增特性,以及與芯片廠家新平臺(tái)的磨合等問(wèn)題,輕則導(dǎo)致應(yīng)用的閃退,重則引起整機(jī)的重啟。多方查找原因,得不到要領(lǐng)。
在與Arm合作,采用MTE技術(shù)之后,很快定位到問(wèn)題的原因所在——僅僅是數(shù)字尾部產(chǎn)生了溢出,同時(shí)還發(fā)現(xiàn)了圖形庫(kù)中隱藏多年的一些問(wèn)題。
據(jù)榮耀公司MagicOS DFX架構(gòu)師余亮介紹,榮耀天網(wǎng)開(kāi)放了基于MTE/HWAsan踩內(nèi)存檢測(cè)和內(nèi)存泄漏的檢測(cè)功能,無(wú)論對(duì)于有源代碼和無(wú)源代碼,應(yīng)用或者服務(wù)都無(wú)需重新編譯,安裝即可支持踩內(nèi)存故障的檢測(cè),同時(shí)天網(wǎng)也集成了內(nèi)存泄露的檢測(cè),提供了泄露棧的聚合能力。
在將MTE融入到日常的CI/CD的常態(tài)使用時(shí),快手通過(guò)大量的探索、實(shí)踐、沉淀出了一套自定義的MTE集成方案,如直接從APP自身底層開(kāi)始對(duì)接Arm MTE技術(shù),以替代安卓默認(rèn)的AOSP方案,實(shí)現(xiàn)更加靈活的開(kāi)啟方式和定制化的策略,來(lái)提升內(nèi)存安全問(wèn)題的發(fā)版前召回率,最終實(shí)現(xiàn)生產(chǎn)端線(xiàn)上開(kāi)包即用。
快手Android架構(gòu)師李銳總結(jié)說(shuō),快手在內(nèi)存安全領(lǐng)域的探索實(shí)踐可總結(jié)為三個(gè)階段,第一個(gè)階段基于Asan和HWASan開(kāi)展內(nèi)存安全建設(shè),解決可以用的問(wèn)題;第二個(gè)階段是通過(guò)自實(shí)現(xiàn)的一些更加安全的分配器來(lái)對(duì)應(yīng)進(jìn)行線(xiàn)上的開(kāi)啟接管內(nèi)存的釋放,實(shí)現(xiàn)部分線(xiàn)上的問(wèn)題的檢出;第三個(gè)階段是基于MTE技術(shù)做到完全工程無(wú)入侵的高性能開(kāi)啟,最終打造快手夢(mèng)寐以求的全能型的內(nèi)存檢測(cè)工具,同時(shí)滿(mǎn)足高性能高、可靠率以及高易用性。
事實(shí)上,MTE上線(xiàn)后,快手的內(nèi)存穩(wěn)定性獲得顯著的提升:檢測(cè)時(shí)App的運(yùn)行速度相較于使用ASan時(shí)提升了十倍以上,資源消耗也大幅降低,進(jìn)程內(nèi)存消耗也降低一倍以上;故障檢出率也獲得大幅提升,內(nèi)存破壞的歷史問(wèn)題檢出數(shù)十個(gè),內(nèi)存破壞的攔截率超過(guò)90%。
李銳表示,快手深切地感受到MTE給內(nèi)存安全領(lǐng)域帶來(lái)的革命性的改變,使用MTE大大提升了開(kāi)發(fā)效率和排查效率,內(nèi)存安全問(wèn)題無(wú)處可藏,給每個(gè)用戶(hù)帶來(lái)更好的體驗(yàn)。
助力Arm構(gòu)筑起更加牢固的生態(tài)圈
MTE功能如此強(qiáng)大,大量的合作伙伴圍繞Arm構(gòu)筑起更加牢固的生態(tài)體系。
作為SoC的未來(lái),MTE正在為越來(lái)越多的開(kāi)發(fā)者所知。讓章立驚訝的是,他在跟一個(gè)頭部的游戲工作室交流的時(shí)候,其首席架構(gòu)師就直接問(wèn)MediaTek的SoC能否支持MTE。此舉無(wú)疑增強(qiáng)了章立未來(lái)和Arm以及各行業(yè)的合作伙伴能攜手把MTE應(yīng)用到更多開(kāi)發(fā)場(chǎng)景的信心。
夏曉菲表示,他也從開(kāi)發(fā)者那兒得到了很多很好的反饋,他們稱(chēng)越來(lái)越離不開(kāi)MTE的技術(shù)特性——這極大加速了他們軟件開(kāi)發(fā)中的效率,最終也能給消費(fèi)者帶來(lái)很好的體驗(yàn),達(dá)到端側(cè)和性能的平衡。
榮耀公司架構(gòu)師余亮告訴筆者,他們將加深和Arm的合作,致力于推廣動(dòng)MTE應(yīng)用,幫助開(kāi)發(fā)者清理編程過(guò)程中出現(xiàn)的內(nèi)存安全和應(yīng)用閃退等異常情況。未來(lái)榮耀將聚焦在減少故障檢測(cè)開(kāi)銷(xiāo),豐富定位日志和測(cè)試模式方面,確保不間斷測(cè)試,在開(kāi)發(fā)者選項(xiàng)中更靈活地開(kāi)放支持,與合作伙伴一起打造更穩(wěn)定更安全的生態(tài)。
李銳則對(duì)MTE提出了新的期待,如支持設(shè)備數(shù)量的擴(kuò)充問(wèn)題,更加靈活的集成方式,線(xiàn)上開(kāi)啟堆內(nèi)存以及棧和全局變量的破壞檢測(cè)等。他相信,通過(guò)上下游的通力合作,MTE一定能打造成每個(gè)開(kāi)發(fā)者都?jí)裘乱郧蟮娜苄偷臋z測(cè)工具,給每個(gè)用戶(hù)帶來(lái)更好的體驗(yàn)。
章立的觀點(diǎn)代表了演講嘉賓的心聲:MTE技術(shù)不僅僅構(gòu)筑了移動(dòng)生態(tài)的基礎(chǔ)安全解決方案,同時(shí)它也提供了一個(gè)工具或者方法,讓開(kāi)發(fā)者把移動(dòng)做得更健壯更穩(wěn)定,以及提供更好的用戶(hù)體驗(yàn)。
強(qiáng)大的安全功能、不斷穩(wěn)固的生態(tài)體系,是MTE成為Arm 2023及未來(lái)全面計(jì)算解決方案(TCS)核心內(nèi)容關(guān)鍵因素。