電子發(fā)燒友網(wǎng)報道(文/周凱揚)隨著Arm近日公開TCS23方案,可以看出Arm在移動SoC的計算核心上,已經全面走向了Armv9.2架構,無論是大核Cortex-X4、中核Cortex-A720還是小核Cortex-A520,都是基于Armv9.2-A的。
而在發(fā)布的新聞中,Arm重點強調了內存標簽擴展(MTE)這一安全特性。其實MTE已經不是什么新特性了,早在Armv8.5推出之際就已經面世,如今更是完全融入了兼容Armv9架構的CPU中。
MTE提供的內存安全保障
內存已經成了近幾個世紀以來最大的漏洞來源之一,比如谷歌Chromium團隊就表示70%的重度安全漏洞都與內存安全有關。而MTE則是一個用來檢測內存錯誤和內存安全違規(guī)的工具,對于軟件開發(fā)者來說可以用于及時發(fā)現(xiàn)應用中存在的問題。
MTE會利用額外的元數(shù)據(jù),對每次內存的分配/取消分配進行標記,并將標記內存位置與引用該內存位置的指針關聯(lián),這樣在運行時,CPU就會檢查指針與元數(shù)據(jù)標記是否匹配,從而幫助開發(fā)者檢測緩沖區(qū)溢出這類常見的內存安全bug。
根據(jù)Arm的說法,MTE對于智能手機生態(tài)系統(tǒng)來說至關重要,因為MTE可以幫助開發(fā)者在部署之前和之后檢測到內存安全問題。部署前檢測到安全漏洞將降低代碼受到攻擊的可能性,而在部署之后檢測到安全問題可以幫助開發(fā)者更靈活地修復這些漏洞。
MTE軟硬件結合
需要注意的是,要想獲得MTE的內存安全保護,不是單靠Armv9架構的CPU就能實現(xiàn)的,MTE是一套軟硬件結合的實現(xiàn)方案,所以也需要操作系統(tǒng)的支持。比如谷歌在安卓12中加入了初步的MTE實現(xiàn),可以用來檢測示范后使用(UAF)和緩沖區(qū)溢出這樣的常見bug。
除了谷歌之外,榮耀也在其MagicOS 6.x和MagicOS 7設備實現(xiàn)了MTE,允許開發(fā)者通過Honor SkyNet和診斷工具來檢測內存安全問題。諸如快手這樣的應用,由于大部分代碼庫都是基于C++這樣的非內存安全語言,已經在利用MTE技術檢測軟件開發(fā)中的內存安全bug,提高檢測速度的同時,也避免軟件上架前出現(xiàn)嚴重內存漏洞。
可以看出,MTE需要操作系統(tǒng)的協(xié)作才能同步保證內存的安全,但為何目前沒有更多的系統(tǒng)跟進MTE呢?答案是MTE雖然保證了安全性,但也一定程度影響了性能。谷歌在安卓13版本的開發(fā)者選項中,提供了一個重啟并啟用MTE的選項,從而在那些硬件支持MTE但并沒有啟用的設備上打開這一功能。
谷歌強調,這一選項的目標受眾屬于那些希望使用MTE來測試其軟件的應用開發(fā)者。而且谷歌會在這一選項開啟后提示,MTE可能會對系統(tǒng)性能和穩(wěn)定性產生負面影響,且該選項將在下一次重啟后重置。
話雖如此,相比傳統(tǒng)的內存安全分析工具來說,MTE的性能開銷已經算很小了,尤其是在非對稱模式下,也不用再一遍遍地重新編譯源代碼。開發(fā)者可以在檢測到Bug后再切換到同步模式,確保Bug檢測的精度。更何況Arm也在和谷歌合作,力求在未來的安卓版本中減少MTE的內存占用,相信MTE會給未來移動軟件生態(tài)開發(fā)的安全提供更多助力。
而在發(fā)布的新聞中,Arm重點強調了內存標簽擴展(MTE)這一安全特性。其實MTE已經不是什么新特性了,早在Armv8.5推出之際就已經面世,如今更是完全融入了兼容Armv9架構的CPU中。
MTE提供的內存安全保障
內存已經成了近幾個世紀以來最大的漏洞來源之一,比如谷歌Chromium團隊就表示70%的重度安全漏洞都與內存安全有關。而MTE則是一個用來檢測內存錯誤和內存安全違規(guī)的工具,對于軟件開發(fā)者來說可以用于及時發(fā)現(xiàn)應用中存在的問題。
MTE會利用額外的元數(shù)據(jù),對每次內存的分配/取消分配進行標記,并將標記內存位置與引用該內存位置的指針關聯(lián),這樣在運行時,CPU就會檢查指針與元數(shù)據(jù)標記是否匹配,從而幫助開發(fā)者檢測緩沖區(qū)溢出這類常見的內存安全bug。
根據(jù)Arm的說法,MTE對于智能手機生態(tài)系統(tǒng)來說至關重要,因為MTE可以幫助開發(fā)者在部署之前和之后檢測到內存安全問題。部署前檢測到安全漏洞將降低代碼受到攻擊的可能性,而在部署之后檢測到安全問題可以幫助開發(fā)者更靈活地修復這些漏洞。
MTE軟硬件結合
需要注意的是,要想獲得MTE的內存安全保護,不是單靠Armv9架構的CPU就能實現(xiàn)的,MTE是一套軟硬件結合的實現(xiàn)方案,所以也需要操作系統(tǒng)的支持。比如谷歌在安卓12中加入了初步的MTE實現(xiàn),可以用來檢測示范后使用(UAF)和緩沖區(qū)溢出這樣的常見bug。
除了谷歌之外,榮耀也在其MagicOS 6.x和MagicOS 7設備實現(xiàn)了MTE,允許開發(fā)者通過Honor SkyNet和診斷工具來檢測內存安全問題。諸如快手這樣的應用,由于大部分代碼庫都是基于C++這樣的非內存安全語言,已經在利用MTE技術檢測軟件開發(fā)中的內存安全bug,提高檢測速度的同時,也避免軟件上架前出現(xiàn)嚴重內存漏洞。
可以看出,MTE需要操作系統(tǒng)的協(xié)作才能同步保證內存的安全,但為何目前沒有更多的系統(tǒng)跟進MTE呢?答案是MTE雖然保證了安全性,但也一定程度影響了性能。谷歌在安卓13版本的開發(fā)者選項中,提供了一個重啟并啟用MTE的選項,從而在那些硬件支持MTE但并沒有啟用的設備上打開這一功能。
谷歌強調,這一選項的目標受眾屬于那些希望使用MTE來測試其軟件的應用開發(fā)者。而且谷歌會在這一選項開啟后提示,MTE可能會對系統(tǒng)性能和穩(wěn)定性產生負面影響,且該選項將在下一次重啟后重置。
話雖如此,相比傳統(tǒng)的內存安全分析工具來說,MTE的性能開銷已經算很小了,尤其是在非對稱模式下,也不用再一遍遍地重新編譯源代碼。開發(fā)者可以在檢測到Bug后再切換到同步模式,確保Bug檢測的精度。更何況Arm也在和谷歌合作,力求在未來的安卓版本中減少MTE的內存占用,相信MTE會給未來移動軟件生態(tài)開發(fā)的安全提供更多助力。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
ARM
+關注
關注
134文章
8967瀏覽量
365070
發(fā)布評論請先 登錄
相關推薦
移動端芯片性能提升,Armv9架構新升級引發(fā)關注
“數(shù)碼博主”5月17日的最新爆料指出,聯(lián)發(fā)科積極推進Armv9新一代IP BLACKHAWK“黑鷹”的架構設計,預計天璣9400芯片將采用這一架構,有望以“全大核”設計再度領跑移動SoC CPU性能榜單。
聯(lián)發(fā)科參與設計Armv9新旗艦架構BlackHawk黑鷹,天璣9400拉滿頂級天賦預定芯皇
最近,有關聯(lián)發(fā)科下一代旗艦芯片的消息頻傳,天璣9400已成為數(shù)碼圈的討論焦點。前不久,知名大V數(shù)碼閑聊站爆料,為了確保天璣9400性能和能效都穩(wěn)贏對手,聯(lián)發(fā)科深度參與設計了Armv9新一代
知語云智能科技揭秘:無人機威脅如何破解?國家安全新防線!
方法,為國家安全筑起新的防線。
一、無人機威脅的現(xiàn)狀與挑戰(zhàn)
近年來,無人機濫用事件頻發(fā),從非法航拍到侵犯隱私,再到恐怖襲擊和走私活動,無人機的潛在威脅不容忽視。這些事件不僅侵犯了公民的合法權益,也
發(fā)表于 02-27 10:41
Git開發(fā)者關注內存安全問題,探討引入Rust語言
根據(jù)最新披露的郵件討論,Git開發(fā)團隊熱議在Git項目中引入Rust的可行性。作為一種開源的分布式代碼版本管理工具,廣泛運用于各種開發(fā)項目。盡管現(xiàn)在Git項目主要以C與Python為主要開發(fā)語言,但探討顯示,引入Rust能顯著降低內存
使用AD16488A時,通過DIO4引入外部時鐘,時鐘頻率為100Hz,會對最終傳感器的輸出有什么影響?
請問在使用16488A時,通過DIO4引入外部時鐘,時鐘頻率為100Hz,會對最終傳感器的輸出有什么影響?對數(shù)據(jù)就緒信號DRY有什么影響呢?
手冊中看到了可能會造成角度變化的寄存器值溢出,但我用不到這個量。謝謝了!
發(fā)表于 12-29 06:19
Dear Reality的dearVR SPATIAL CONNECT為Cubase 12引入VR混音功能
Dear Reality的dearVR SPATIAL CONNECT為Cubase 12引入VR混音功能 德國杜塞爾多夫,2023年10月24日——空間音頻專家Dear Reality將其VR混音
ARMv7安全引導的過程
對于安全引導功能的實現(xiàn)和驗證過程各家芯片公司的方案都不一樣,這是由該芯片的啟動流程以及啟動所需鏡像文件來決定的,但都會遵循鏈式驗簽啟動的原則。 ARMv7架構并沒有使用ATF,系統(tǒng)的啟動流程與以前
一文解析Armv8.5-A內存標記擴展(MTE)
MTE提供了一種機制來檢測兩類主要的內存安全違規(guī)。MTE通過提高測試和Fuzzing的有效性來幫助在部署之前檢測潛在的漏洞。MTE還可以在部
發(fā)表于 10-31 15:04
?1367次閱讀
Armv9 Cortex-A720的L1 System memory簡析
Cortex-A720 的 L1 指令內存系統(tǒng)用于提取指令并預測分支。它包括 L1 指令緩存、L1 指令 Translation Lookaside Buffer(TLB)以及分支預測單元。
該如何將程序燒入到flash內,或者其他可掉電保存的內存中?
SoC是am437x,cortex-a9內核,現(xiàn)在想把程序燒入到flash(或者其他可掉電保存的內存)內,而不是RAM,請問應當修改哪部分程序呢?
編譯器為CCS9.3,下圖為TI例程:
發(fā)表于 10-17 11:07
新一代Armv9 天璣9000 5G移動平臺性能怎么樣?
是 Mail G710 MP10,支持藍牙5.3,北斗三代導航技術,大容量存儲空間,7500Mbps速率的LPDDR5X內存,支持雙通道UFS3.1閃存。 搭載旗艦級18位HDR-ISP圖像信號處理器
評論