
Memory Tagging Extension
Die Memory Tagging Extension ist eine Schutzfunktion in modernen ARM-Prozessoren, die Speicherbereiche mit kleinen Farbmarkierungen versieht. Passt die Markierung beim Zugriff nicht, stoppt der Chip das Programm – so werden ganze Klassen von Sicherheitslücken schon im Ansatz erkannt.
Jedes Programm auf einem Handy oder Computer legt seine Daten im Arbeitsspeicher ab, also im schnellen Zwischenlager des Geräts. Dabei passieren Fehler: Ein Programm schreibt versehentlich über die Grenzen eines Datenbereichs hinaus oder benutzt einen Bereich weiter, den es längst freigegeben hat. Solche Fehler sind die häufigste Ursache für Sicherheitslücken. Die Memory Tagging Extension ist eine Funktion, die direkt im Prozessorchip eingebaut ist und genau diese Fehler aufspürt. Sie gibt jedem Speicherbereich eine Art Farbmarkierung mit und prüft bei jedem Zugriff, ob die Farbe passt. Stimmt sie nicht, wird der Zugriff sofort abgebrochen. Entwickelt wurde die Technik von der Chipfirma ARM, deren Bauplände in fast allen Smartphones stecken.
Warum Speicherfehler die teuersten Bugs sind
Microsoft und Google haben ihre eigenen Sicherheitslücken jahrelang ausgewertet. Beide kamen auf etwa 70 Prozent: So groß ist der Anteil der Lücken, die auf falsche Speicherzugriffe zurückgehen. Das ist kein Zufall. Programmiersprachen wie C und C++ überlassen die Speicherverwaltung komplett dem Menschen, und Menschen machen Fehler.
Angreifer lieben diese Fehler, weil sie oft mehr erlauben als einen Absturz. Wer über eine Grenze hinausschreiben kann, überschreibt vielleicht genau die Stelle, an der steht, welcher Code als Nächstes läuft. Aus einem harmlosen Programmierfehler wird so eine Fernsteuerung des Geräts. Viele bekannte Angriffe auf Browser und Betriebssysteme funktionieren nach diesem Muster.
Man könnte alles in sicheren Sprachen wie Rust neu schreiben. Nur liegen Milliarden Zeilen bewährter C-Code in Betriebssystemen, Bildbibliotheken und Netzwerktreibern. Die umzuschreiben dauert Jahrzehnte. Memory Tagging schützt genau diesen bestehenden Code, ohne dass man ihn neu schreiben muss.
Vier Bit Farbe pro Speicherblock
Der Speicher wird in Blöcke von je 16 Byte eingeteilt. Jeder Block bekommt eine kleine Zahl zugeordnet, vier Bit groß, also einen von 16 möglichen Werten. Diese Zahl ist das Tag, die Markierung. Fordert ein Programm Speicher an, färbt das System den Block mit einem zufälligen Tag ein. Denselben Wert schreibt es zusätzlich in die Adresse, mit der das Programm später auf den Block zugreift.
Bei jedem Lese- und Schreibzugriff vergleicht der Prozessor beide Werte. Passen sie zusammen, läuft alles normal weiter. Passen sie nicht, meldet der Chip einen Fehler und das Programm stürzt kontrolliert ab. Schreibt ein Programm über die Blockgrenze hinaus, landet es in einem Block mit anderer Farbe – und fliegt auf. Wird Speicher freigegeben, bekommt er eine neue Farbe, und alte Zeiger darauf passen nicht mehr.
Der Vergleich passiert in der Hardware und kostet deshalb kaum Zeit. Das ist der entscheidende Unterschied zu Prüfwerkzeugen wie dem AddressSanitizer, die dasselbe in Software erledigen und Programme oft um das Zwei- bis Dreifache verlangsamen. Solche Werkzeuge nutzt man nur beim Testen. Memory Tagging soll dauerhaft im fertigen Produkt mitlaufen. Ein Haken bleibt: Bei nur 16 Farben trifft ein zufälliger Angriffsversuch mit etwa einem Sechzehntel Wahrscheinlichkeit die richtige. Ein einzelner Treffer ist Glück, viele Versuche hintereinander fallen auf.
Vom Pixel-Smartphone bis in die Sicherheitsmeldungen
Die Technik gehört zur Prozessorarchitektur ARMv8.5 und steckt inzwischen in mehreren Handy-Chips. Google hat sie mit den Pixel-8-Geräten erstmals breit für Nutzer freigeschaltet, in den Entwicklereinstellungen unter dem Namen Advanced Memory Protection. Android kann damit Systemdienste und einzelne Apps absichern. Auch Linux und Chrome unterstützen die Funktion.
Für Firmen ist der Nutzen doppelt. Im laufenden Betrieb blockiert Memory Tagging Angriffe. Beim Testen liefert es sehr genaue Fehlerberichte, weil der Absturz genau dort passiert, wo der falsche Zugriff stattfand – und nicht erst irgendwann später an einer scheinbar zufälligen Stelle.
In Nachrichten taucht der Begriff meist in zwei Zusammenhängen auf: bei neuen Chip-Generationen als Sicherheitsmerkmal und in der politischen Debatte um Memory Safety. Behörden wie die US-Cybersicherheitsbehörde CISA drängen Hersteller, Speicherfehler grundsätzlich auszuschließen. Memory Tagging ist dabei die Brücke für alten Code, sichere Programmiersprachen sind der Weg für neuen.