MTE-Konfiguration

MTE kann unabhängig im Android-Kernel und in jedem im Android-System. Google verlangt keine konkreten Konfiguration und soll dem Gerät maximale Flexibilität Tools und Tools.

In diesem Dokument werden die MTE-Einstellungen und der Umfang beschrieben, die unserer Meinung nach bietet bei Android einen guten Kompromiss zwischen Sicherheit und Kosten. wie die ständig aktive Minderung von Sicherheitslücken für die Nutzenden.

Kernel

MTE im Kernel wird über die Befehlszeile konfiguriert. Die ist im Synchronisierungsmodus standardmäßig aktiviert. Dies kann sich in Zukunft bei verschiedene Gründe:

  • Erhebliche Auswirkungen auf Leistung und Anforderungen und Optimierungsmaßnahmen.
  • Die Qualität des Kernel-Codes wird weithin als unzureichend für die Auslieferung angesehen MTE im Erzwingenmodus (d. h. Panic-on-Failure) aktiviert ist.

Die aktuelle Empfehlung ist, Kernel MTE zu deaktivieren auf Produktionsgeräte. Fügen Sie dazu kasan=off zum Kernel-Befehlszeile.

Userspace

Google stellt eine Standardliste der zu schützenden Binärdateien für Userspaces bereit mit MTE. Die Liste wurde mit Unterstützung von Android Security erstellt. und Komponenten enthält, die privilegiert sind und/oder mit nicht vertrauenswürdigen Eingaben. Die aktuelle Liste empfohlener nativer Binärdateien finden Sie in die memtag-common.mk Datei im Android-Build System. Außerdem mehrere System-Apps sind auch enthalten: „current“, Bluetooth und SecureElement Diese Binärprogramme und Anwendungen sind ist standardmäßig im asynchronen Modus aktiviert.

Derzeit wird empfohlen, die Standardzielliste zu verwenden. (keine Änderungen erforderlich). Außerdem empfiehlt es sich, Ergänzungen von BSP und OEM zum Kernsystem und Aktivierung von MTE auf diesen die sicherheitsrelevant sind.

Apps

Die drei oben aufgeführten System-Apps sind die einzigen, die . Damit eine Drittanbieter-App MTE muss in der AndroidManifest.xml angegeben werden, android:memtagMode mit einem anderen Wert als off. Gängige Benchmark-Suites wie Geekbench oder AnTuTu laufen nicht mit MTE. Wenn Kernel MTE ebenfalls deaktiviert ist (siehe kasan=off oben), dann sind die Benchmarks werden voraussichtlich nur sehr geringe Auswirkungen auf die Leistung haben.

Wie bei den anderen Apps wird die MTE-Unterstützung Chrome Die aktuelle Play Store-Version von Chrome umfasst memtagMode=async im Manifest. Es ist auch unsere Erwartung, dass eine Reihe sicherheitsbewusster Apps im Android-Ökosystem (z. B. Banking-Apps) dasselbe tun würden. Am andererseits gehen wir davon aus, dass Apps, die eine hohe CPU-Auslastung benötigen, z. B. bei Spielen, wird MTE deaktiviert.

Andere Mobilitätsformen

In der obigen Anleitung wird nur der asynchrone MTE-Modus verwendet überall. Je nach Hardware können andere Modi fast oder genau so schnell. Sie bieten auch eine bessere Diagnose mit denen die Sicherheitslücken verbessert werden können.

Wir empfehlen, eine oder zwei andere Konfigurationen zu testen, für Ihre Anforderungen an Leistung/Stromversorgung ausreichen. MTE-Modi für jeden CPU-Kern im System festgelegt werden, indem /sys/devices/system/cpu/cpu*/mte_tcf_preferred Wenn Sie zum Beispiel sync (oder asymm) würde jeden Userspace-Prozess auslösen, der Der asynchrone Modus wird automatisch auf Synchronisieren (oder Asymm) aktualisiert, während auf diesem Kern ausgeführt wird. Diese Einrichtung kann in einer RC-Datei auf dem Gerät erfolgen Startzeit.

Wir empfehlen, ein oder zwei andere Konfigurationen zu messen, sie Ihren Leistungs- und Energieanforderungen entsprechen. Einige interessante Konfigurationen:

  • Asymm auf allen Kernen.
  • Asymm auf großen Kernen, synchronisieren Sie auf anderen Kernen.
<ph type="x-smartling-placeholder">

Um zu überprüfen, ob ein Prozess den asynchronen Modus anfordert (mit automatisch aktualisieren), achten Sie darauf, dass die folgende Zeile sowohl PR_MTE_TCF_SYNC und PR_MTE_TCF_ASYNC:

  debuggerd <PID> | head -30 | grep tagged_addr

Leider gibt es keine einfache Möglichkeit, den effektiven Modus für eine Prozess; Aber jeder Prozess, der die beiden oben aufgeführten Werte anzeigt, der automatischen Umstellung unterliegen.