• IT-Karriere:
  • Services:

ARM64: Memory-Tagging gegen Speicherlücken in Linux eingepflegt

Kommende ARM-CPUs bieten Befehle, die Speicherlücken erkennen sollen. Google will dies in Android nutzen, die Grundlage dafür ist gelegt.

Artikel veröffentlicht am ,
Noch heißt es warten, bis die CPUs mit MTE verfügbar sind.
Noch heißt es warten, bis die CPUs mit MTE verfügbar sind. (Bild: Kimberley Collins, flickr.com/CC-BY 2.0)

Die kommende Version 5.10 des Linux-Kernels, die sich derzeit in Entwicklung befindet, wird die Befehlssatzerweiterung Memory Tagging Extension (MTE) von ARMv8.5 unterstützen. Ziel der MTE ist es, das Ausnutzen der vielen verschiedenen und vor allem häufigen Speicherfehler in C- und C++-Code deutlich zu erschweren oder gar ganz zu verhindern, indem derartige Fehler eben mithilfe der CPU erkannt werden.

Stellenmarkt
  1. Landratsamt Göppingen, Göppingen
  2. Stadt Frankfurt am Main, Frankfurt am Main

Den Code dafür hat der Linux-Chefentwickler Linus Torvalds in den Hauptentwicklungszweig eingepflegt. Der zuständige Betreuer Will Deacon beschreibt die Funktion als "aufregend". Er hoffe, dass es damit möglich werde, die Erkennung von Use-After-Free-Lücken (UAF) im laufenden Betrieb für Userspace-Anwendungen zu nutzen, sofern die CPU die Befehlssatzerweiterung unterstützt. Die Funktion soll demnach außerdem möglichst schon mit der folgenden Linux-Kernel-Version 5.11 mit KASan (Kernel Address Sanitizer) und damit für den Kernel selbst genutzt werden können.

Die Idee des Memory Tagging ist, bestimmte Speicherbereiche mit einem Tag zu markieren, dazugehörige Zeiger erhalten den gleichen Tag. Soll über einen Zeiger auf den Speicher zugegriffen werden, überprüft die CPU die beiden Tags. Stimmen diese nicht überein, liefert die CPU eine Exception. Mithilfe der Befehlssatzerweiterung lassen sich die Tags direkt manipulieren.

Android wohl erstes Projekt mit MTE

Details zur konkreten Implementierung in Linux liefert das Magazin LWN.net in einer ausführliche Analyse. Demnach können Überläufe einfach dadurch erkannt werden, dass benachbarte Speicherbereiche unterschiedliche Tags verwenden. UAF-Lücken lassen sich erkennen, indem unmittelbar nach der Speicherfreigabe der Tag für den Speicherbereich geändert wird. Derzeit ist Nutzung dieser Möglichkeiten nicht standardmäßig im Linux-Kernel aktiviert. Vielmehr müssen Anwendungen die Nutzung explizit für bestimmte Speicherbereiche aktivieren.

Als eines der ersten großen Open-Source-Projekte wird wohl künftig Android auf die Nutzung der MTE setzen. Das zumindest hat das Sicherheitsteam von Google bereits im vergangenen Jahr angekündigt. Die MTE sollen demnach unter anderem beim Fuzzing eingesetzt werden. Google setzt aber auch darauf, dass App-Entwicklungsteams und Smartphone-Hersteller die Technik im Produktiveinsatz verwenden. Bis es so weit ist, muss es aber auch erst noch Hardware geben, die die MTE unterstützt, denn diese CPUs sind zurzeit noch nicht verfügbar.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Hardware-Angebote
  1. (u. a. Xbox Wireless Controller Carbon Black/Robot White/Shock Blue für 58,19€)
  2. (u. a. Zotac Gaming GeForce RTX 3090 Trinity für 1.787,33€)

subjord 16. Okt 2020 / Themenstart

Bis es so weit ist, muss es aber auch erst noch Hardware geben, die die MTE...

Kommentieren


Folgen Sie uns
       


Radeon RX 6800 (XT) im Test mit Benchmarks

Lange hatte AMD bei Highend-Grafikkarten nichts zu melden, mit den Radeon RX 6800 (XT) kehrt die Gaming-Konkurrenz zurück.

Radeon RX 6800 (XT) im Test mit Benchmarks Video aufrufen
    •  /