關閉廣告

記憶體安全最近一直是Google的首要任務,因為記憶體錯誤往往是軟體開發中最嚴重的錯誤之一。事實上,該領域的漏洞是造成大多數嚴重漏洞的原因 Android直到去年谷歌創建了大量新的本地代碼 Android使用 Rust 程式語言而不是 C/C++。這家軟體巨頭正在努力支援其他方法來減輕其係統中的記憶體漏洞,其中之一稱為記憶體標記。在系統支援的設備上 Android 14 可能有一個名為「進階記憶體保護」的新設定可以切換此功能。

記憶體標記擴展 (MTE) 是基於 Arm v9 架構的處理器的強制硬體功能,提供詳細信息 informace 有關記憶體損壞並防止記憶體安全錯誤。正如 Google 所解釋的那樣:「在較高層級上,MTE 使用附加元資料標記每個記憶體分配/釋放。將標記分配給記憶體位置,然後可以將其與引用該記憶體位置的指標相關聯。在運行時,處理器會在每次加載和保存時檢查指針和元數據標籤是否匹配。”

Google 正在努力在整個軟體套件中支援 MTE Android 許久。到 Androidu 12新增了Scudo記憶體分配器並支援相容裝置上的三種MTE操作模式:同步模式、非同步模式和非對稱模式。該公司還可以透過系統屬性和/或環境變數為系統進程啟用 MTE。應用程式可以透過屬性添加 MTE 支持 android:memtag模式。當為以下進程啟用 MTE 時 Androidu,所有類型的記憶體安全錯誤(例如釋放後使用和緩衝區溢位)都會導致崩潰,而不是無聲的記憶體損壞。

Do Androidu 13 Google 新增了使用者空間應用程式二進位介面 (ABI),以將所需的 MTE 操作模式傳達給引導程式。這可用於在預設情況下未啟用 MTE 的相容裝置上啟用 MTE,也可用於在預設啟用 MTE 的相容裝置上停用它。在系統上將 ro.arm64.memtag.bootctl_supported 系統屬性設為“true” Android 13 告訴系統引導程式支援 ABI,並且還啟動了開發人員選項選單中的一個按鈕,允許使用者在下次重新啟動時啟用 MTE。

V Android你14 但是,在相容裝置上啟用 MTE 可能需要深入了解開發人員選項選單。如果裝置使用支援MTE 的Arm v8.5+ 處理器,則裝置實作支援ABI,用於將所需的MTE 操作模式傳達給引導程序,並且新的ro.arm64.memtag.bootctl_settings_toggle 系統屬性設為「 true” ,然後一個新頁面高級內存保護 v 設定→安全性與隱私→其他安全性設置。此頁面也可以透過新的 ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS 操作啟動。

有趣的是,為 Google Pixel 2 系列提供動力的 Tensor G7 晶片組使用 Arm v8.2 處理器內核,這意味著它不支援 MTE。如果即將推出的Google Pixel 8系列會像其他旗艦系列一樣使用新的Arm v9內核 android手機,那麼他們的硬體應該可以支援MTE。然而,問題仍然是“高級記憶體保護”功能是否會出現在穩定版本中 Android14 年

今日閱讀最多的

.