Forscher der Universität Kalifornien in San Diego haben eine neue Angriffsmethode auf die Mikroarchitektur von Intel-Prozessoren vorgestellt, die unter anderem auf CPUs mit den Mikroarchitekturen Raptor Lake und Alder Lake anwendbar ist. Der Angriff mit dem Codenamen Indirector ermöglicht es, den Verlauf der spekulativen Ausführung von Anweisungen in anderen Prozessen und auf anderen Berechtigungsstufen (zum Beispiel im Kernel oder einer anderen virtuellen Maschine), die in einem CPU-Thread mit dem Code des Angreifers ausgeführt werden, zu verändern. Zur Demonstration der Funktionsweise wurde ein Prototyp eines Exploits vorbereitet, der es ermöglicht, die Anordnung der Speicheradressen zu bestimmen, um den ASLR-Schutzmechanismus (Address Space Layout Randomization) zu umgehen. Darüber hinaus wurde unter der MIT-Lizenz ein Werkzeug veröffentlicht, das zur Analyse und Reverse Engineering der mikroarchitektonischen Logik von CPUs entwickelt wurde.
Es werden zwei Methoden zur Organisation eines Angriffs vorgeschlagen. Die erste Methode basiert auf der Verzerrung des Inhalts des Buffers für die Indirekte Zweigvorhersage (IBP), der zur Vorhersage von indirekten Zweigen verwendet wird, wenn die Adresse oder der Versatz für den Sprung noch nicht bekannt sind und in den Anweisungen, die der Sprunganweisung vorausgehen, berechnet werden. Die zweite Methode betrifft den Branch Target Buffer (BTB), der Informationen über kürzliche Sprünge enthält.


Die entdeckten Schwachstellen ermöglichen es einem Angreifer, den Inhalt von Einträgen in den IBP- und BTB-Puffern zu bestimmen, die Übergangsadressen enthalten, die in externen Prozessen verwendet werden. Außerdem kann er eine beliebige Übergangsadresse in die Datentabellen der Puffer einfügen. Infolgedessen kann der Angreifer den Ausführungsfluss eines externen Prozesses auf eine gewünschte Adresse im Speicher während der spekulativen Ausführung von Anweisungen umleiten. Nach der Feststellung einer fehlerhaften Vorhersage wird das Ergebnis der spekulativen Ausführung verworfen, jedoch bleiben die Adressen und Daten, die während dieser spekulativen Ausführung aus dem Speicher gelesen wurden, im Cache und können durch einen der Methoden zur Bestimmung des Cache-Inhalts, die auf der Analyse der Zugriffsgeschwindigkeit von gecachten und nicht gecachten Daten basieren, extrahiert werden. Die präzise Bestimmung von Adressen indirekter Übergänge kann in der Praxis beispielsweise verwendet werden, um den ASLR-Schutzmechanismus zu umgehen.
Quelle: opennet.ru
