MTE 設定

可在 Android 核心中單獨啟用 MTE。 Android 系統的程序Google 並未規定 目標是為裝置提供最大的彈性 建構工具

本文件說明瞭 MTE 設定和範圍。根據我們的意見, 可讓您在安全性和成本之間取得良好平衡 降低使用者長期運作的安全漏洞

核心

核心中的 MTE 是透過指令列設定。 在同步處理模式下預設為開啟。以下內容可能會日後有所變更 原因如下:

  • 研究結果顯示,對成效和需求有顯著影響 最佳化作業
  • 很多人認為核心程式碼品質不夠, MTE (處於執行失敗時會發生恐慌) 模式的 MTE。

目前建議啟用停用核心 MTE 生產裝置。做法是將 kasan=off 加入 核心指令列

使用者空間

Google 提供了預設的受保護使用者空間二進位檔清單 。這份清單是根據 Android 安全性的資訊彙整而成 還包括擁有特殊權限和/或處理不信任元件的元件 輸入內容符合建議的最新原生二進位檔清單 這個範本位於 這個 memtag-common.mk 擷取文件檔中的 有些人會將 Cloud Storage 視為檔案系統 但實際上不是此外, 數個 系統應用程式 一併包含:目前、Nfc、 Bluetooth and SecureElement。這些二進位檔和應用程式 在非同步模式下啟用

目前建議使用預設目標清單 (無需進行任何變更)。此外,建議你評估 在核心系統中加入 BSP 和原始設備製造商 (OEM) 並在核心系統上啟用 MTE 資料安全受到保護

應用程式

只有上述三個系統應用程式 目前是 MTE。為了讓第三方應用程式啟用 MTE,其 AndroidManifest.xml 需要指定 android:memtagMode 設為其他值 off。因此,像 Geekbench 或 AnTuTu 無法與 MTE 搭配使用。如果核心 MTE 也 已停用 (請參閱上方的 kasan=off),則基準測試會 成效可能會非常有限 (如果有的話)。

至於其他應用程式,我們也在開發 。目前的 Chrome Play 商店版本包括: 資訊清單中的 memtagMode=async 設定。這也是我們的預期 Android 生態系統中有許多注重安全性的應用程式 (例如銀行應用程式) 也會這麼做。每月中的特定幾天 另一方面,我們也預期部分應用程式需要最高 CPU 使用率 遊戲等效能就會選擇讓 MTE 保持停用。

其他模式

上述操作說明僅使用非同步 MTE 模式 無所不在視硬體而定,其他模式可能幾乎是 以及執行速度也提供更準確的診斷結果 更嚴格的安全漏洞緩解屬性。

建議您測試另外一或兩項設定,確認兩者是否 足以滿足你的效能/能力需求。MTE 模式 就能對系統中的每個 CPU 核心進行寫入 /sys/devices/system/cpu/cpu*/mte_tcf_preferred。舉例來說 sync (或 asymm) 會引發任何已要求的使用者空間處理程序 非同步模式,自動升級至同步功能 (或 Asymm), 在這核心上運作的是您可以在裝置的 .rc 檔案中完成這項設定 啟動時間。

建議您評估另外一或兩種設定, 即可滿足你的效能和電力需求只有部分通知 值得探索的設定:

  • 所有核心上的 Asymm
  • 大型核心上的對稱,在其他核心上執行同步作業。
,瞭解如何調查及移除這項存取權。

驗證程序是否要求非同步模式 (可能 自動升級),請檢查下列程式碼: PR_MTE_TCF_SYNCPR_MTE_TCF_ASYNC

  debuggerd <PID> | head -30 | grep tagged_addr

很遺憾地,您無法輕易查看有效模式 程序;不過,只要程序顯示上述兩個值, 自動升級行為