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