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.
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.