TikTag — ein Angriff auf den Mechanismus der spekulativen Ausführung in ARM-CPUs, der die MemTag-Schutzmechanismen umgehen kann.

Eine Gruppe von Forschern der Seoul National University und der Firma Samsung hat eine Angriffstechnik für ARM-Prozessoren entwickelt, die den Codenamen TikTag trägt und verwendet werden kann, um den hardwaremäßigen Schutzmechanismus MemTag (MTE, Memory Tagging Extension), der in Chips der ARMv8.5-A-Architektur vorhanden ist, zu umgehen. Der Angriff ermöglicht es, den Inhalt von TikTag-Tags für beliebige Speicheradressen aufgrund von Datenlecks zu bestimmen, die durch spekulative Ausführungen von CPU-Befehlen entstehen.

Die MemTag-Technologie ermöglicht es, Tags mit Bereichen im Speicher zu verknüpfen und die Korrektheit der Verwendung von Zeigern zu überprüfen, um die Ausnutzung von Schwachstellen, die aus dem Zugriff auf bereits freigegebene Speicherblöcke, Pufferüberläufen und Zugriffsfehlern vor der Initialisierung resultieren, zu verhindern. Bei der Nutzung von MemTag wird für alle 16 Byte physikalischen Speichers ein 4-Bit-Tag erstellt, das als eine Art Schlüssel für den Zugriff auf diesen Speicher fungiert. Das Tag kann von der Anwendung für ein zugewiesenes Speichergebiet mithilfe spezieller CPU-Befehle generiert und dann in den oberen nicht verwendeten Bits des Zeigers gespeichert werden. Beim Zugriff auf den Speicher mit einem getaggten Zeiger überprüft die CPU die Übereinstimmung des mit dem Zeiger verknüpften Tags mit den Tags, die an Speicherblöcken verknüpft sind, und gewährt nur dann Zugriff, wenn die Tags übereinstimmen.

Die vorgeschlagene Angriffsmethode ermöglicht es, die an Speicherblöcken gebundenen Tags zu bestimmen und den MemTag-Schutz zu umgehen. Forschern gelang der Nachweis, dass ein TikTag-Angriff durch die Ausnutzung von Schwachstellen im Linux-Kernel und im Chrome-Browser durchgeführt werden kann, indem bestehende Instruktionssequenzen (Gadgets) in diesen Produkten verwendet werden, die zu einer spekulativen Ausführung von Code führen. Solche Gadgets verursachen bei spekulativer Ausführung von Code, der mit Zeigern arbeitet, das Lesen von MemTag-Metadaten, abhängig von äußeren Bedingungen, die von einem Angreifer beeinflusst werden können. Nach der Feststellung einer falschen Vorhersage wird das Ergebnis der spekulativen Ausführung verworfen, aber die erhaltenen Daten bleiben im Cache und können dann durch Analyse über Nebenkanäle extrahiert werden. Die Wahrscheinlichkeit, den MemTag-Schutz erfolgreich zu umgehen, wurde in den durchgeführten Tests auf 95% geschätzt, wenn der Angriff über etwa 4 Sekunden durchgeführt wurde.

TikTag - ein Angriff auf den Mechanismus der spekulativen Ausführung in ARM-CPUs, der den MemTag-Schutz umgeht

Es wurden zwei Arten von Gadgets identifiziert, die Informationen über MemTag-Tags leaken. Im ersten Fall tritt die spekulative Ausführung aufgrund einer fehlerhaften Vorhersage des Übergangs auf, und die Bedingungen für die Ausführung des Gadgets können durch Manipulation von Systemaufrufen geschaffen werden. Im zweiten Fall
tritt die spekulative Ausführung aufgrund eines Fehlers bei der Vorhersage der Beziehung zwischen Lese- und Schreiboperationen auf, wenn die STLF-Optimierung (Store-To-Load-Forwarding) verwendet wird, was es ermöglicht, das Tag zu bestimmen, indem der Zustand des Caches bewertet wird (wenn das Tag übereinstimmt, wird der Wert direkt von dem vorherigen Befehl „store“ in die „load“-Operation umgeleitet und ändert den Zustand des Caches). Die erste Art von Gadgets eignet sich für Angriffe auf den Linux-Kernel, während die zweite für die JavaScript-Engine V8 gedacht ist, die in Chromium-basierten Browsern verwendet wird. Ein Prototyp des Tools zur Durchführung des Angriffs wurde auf GitHub veröffentlicht.

TikTag - ein Angriff auf den Mechanismus der spekulativen Ausführung in ARM-CPUs, der den MemTag-Schutz umgehtTikTag - ein Angriff auf den Mechanismus der spekulativen Ausführung in ARM-CPUs, der den MemTag-Schutz umgeht

Das Unternehmen ARM hat die Möglichkeit eines Angriffs auf Systeme mit den Prozessoren Cortex-X2, Cortex-X3, Cortex-A510, Cortex-A520, Cortex-A710, Cortex-A715 und Cortex-A720 bestätigt, beabsichtigt jedoch keine Änderungen an den CPUs vorzunehmen, um das Problem zu beheben, da die MemTag-Architektur vorsieht, dass die Tags keine geheimen Daten für Anwendungen darstellen. In der Code-Basis von Chromium bleibt das Problem ebenfalls ungelöst, da im Chrome-Browser der Schutz auf Basis von MemTag derzeit nicht standardmäßig angewendet wird. Das Sicherheitsteam von Android hat die Möglichkeit eines Angriffs auf Pixel-8-Geräte, die den MemTag-Schutz verwenden, anerkannt, Fixes hinzugefügt, um Lecks zu blockieren, und seine Bereitschaft erklärt, eine Belohnung für gefundene Schwachstellen zu zahlen.

Als Umgehungsmethoden zur Blockierung des Angriffs schlagen die Forscher vor, die Befehle sb oder isb zu verwenden, um die spekulative Ausführung während kritischer Speicheroperationen zu verbieten, oder Leerzeilen aus anderen Befehlen zwischen Sprunganweisungen und Speicherzugriffsanweisungen einzufügen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4