ARM: Memory-Tagging soll Speicherlücken in Android verhindern

Kommende ARM-CPUs sollen die Befehlssatzerweiterung Memory Tagging Extension (MTE) unterstützen, und Googles Security-Team möchte diese Technik in Android verwenden(öffnet im neuen Fenster) , wie die beteiligten Entwickler im Blog des Unternehmens schreiben. Damit soll das Ausnutzen der vielen verschiedenen und vor allem häufigen Speicherfehler in C- und C++-Code deutlich erschwert oder gar ganz verhindert werden.
Trotz der vielen unterschiedlichen Initiativen, um die Sicherheit in Android zu erhöhen, machen laut Google diese Speicherfehler immer noch rund die Hälfte der Sicherheitslücken mit hohem Risiko aus. Darüber hinaus ließen sich Speicherfehler auch schwer untersuchen, da damit verbundene Abstürze nur sporadisch auftreten und eine sogenannte Data Corruption oft auch nicht direkt erkannt wird.
Die Idee des Memory Tagging ist es, bestimmte Speicherbereiche mit einem Tag zu markieren, dazugehörige Zeiger erhalten den gleichen Tag. Soll nun über einen Zeiger auf den Speicher zugegriffen werden, überprüft die CPU die beiden Tags. Stimmen diese nicht überein, liefert die CPU eine Exception(öffnet im neuen Fenster) . Mit Hilfe der Befehlssatzerweiterung lassen sich die Tags direkt manipulieren.
Viel Vorarbeit und weitreichende Pläne für MTE
Google möchte die MTE künftig zum ausgiebigen Testen per Fuzzing verwenden, um schneller Fehler finden zu können. Ebenso sollen App-Entwickler und OEMs die Nutzung der MTE in bestimmten Teilen ihres Software-Stacks auch selbst im Produktiveinsatz nutzen können. Darüber könnten sich sogar automatisierte Bug-Reports erstellen lassen, sofern die Nutzer dem zustimmen.
Letztlich könnte das gesamte Android-System von der Verwendung der MTE profitieren. Immerhin ließe sich mit dem System das Ausnutzen der Speicherfehler mit einer Wahrscheinlichkeit von mehr als 90 Prozent verhindern, schreibt das Team von Google.
Auch wenn noch keine ARM-Chips verfügbar sind, die die MTE unterstützen, ist Google fest entschlossen, diese Technik künftig zu verwenden. Dazu erstellt das Team Patches für den Compiler LLVM(öffnet im neuen Fenster) sowie für den Linux-Kernel(öffnet im neuen Fenster) . Die Unterstützung von Android für die MTE soll fertig sein, sobald Chips damit erscheinen.



