Sicherheitslücke in Intel-Prozessoren, die zu Datenlecks über Kanäle Dritter führt

Eine Gruppe von Forschern chinesischer und amerikanischer Universitäten hat eine neue Schwachstelle in Intel-Prozessoren identifiziert, die dazu führt, dass Informationen über das Ergebnis spekulativer Operationen über Kanäle Dritter verloren gehen, die beispielsweise zur Organisation eines versteckten Kommunikationskanals genutzt werden können zwischen Prozessen oder erkennen Sie Lecks bei Meltdown-Angriffen.

Der Kern der Schwachstelle besteht darin, dass eine Änderung im EFLAGS-Prozessorregister, die als Ergebnis einer spekulativen Ausführung von Anweisungen erfolgte, Auswirkungen auf die nachfolgende Ausführungszeit von JCC-Anweisungen hat (Sprung, wenn bestimmte Bedingungen erfüllt sind). Die spekulativen Operationen werden nicht abgeschlossen und das Ergebnis wird verworfen, aber die verworfene EFLAGS-Änderung kann durch Analyse der Ausführungszeit der JCC-Anweisungen bestimmt werden. Spekulativ durchgeführte Vergleichsvorgänge vor dem Sprung führen bei erfolgreichem Vergleich zu einer kleinen Verzögerung, die gemessen und als Funktion zum Abgleichen des Inhalts verwendet werden kann.

Sicherheitslücke in Intel-Prozessoren, die zu Datenlecks über Kanäle Dritter führt

Im Gegensatz zu anderen ähnlichen Angriffen über Kanäle Dritter analysiert die neue Methode nicht die Änderung der Zugriffszeit auf zwischengespeicherte und nicht zwischengespeicherte Daten und erfordert nicht die Phase des Zurücksetzens des EFLAGS-Registers auf den Ausgangszustand, was dies erschwert den Angriff erkennen und abwehren. Zur Demonstration implementierten die Forscher eine Variante des Meltdown-Angriffs und nutzten dabei eine neue Methode, um Informationen über das Ergebnis einer spekulativen Operation zu erhalten. Die Funktionsweise der Methode zur Organisation von Informationslecks während eines Meltdown-Angriffs wurde erfolgreich auf Systemen mit Intel Core i7-6700- und i7-7700-CPUs in einer Umgebung mit Ubuntu 22.04 und Linux 5.15-Kernel demonstriert. Auf einem System mit einer Intel i9-10980XE-CPU war der Angriff nur teilweise erfolgreich.

Die Meltdown-Schwachstelle basiert auf der Tatsache, dass der Prozessor während der spekulativen Ausführung von Anweisungen auf einen privaten Datenbereich zugreifen und das Ergebnis dann verwerfen kann, da die festgelegten Berechtigungen einen solchen Zugriff durch den Benutzerprozess verhindern. In einem Programm wird ein spekulativ ausgeführter Block durch einen bedingten Sprung vom Hauptcode getrennt, der unter realen Bedingungen immer ausgelöst wird, aber aufgrund der Tatsache, dass die bedingte Anweisung einen berechneten Wert verwendet, den der Prozessor während des vorbeugenden Codes nicht kennt Bei der Ausführung werden alle Verzweigungsoptionen spekulativ ausgeführt.

Da in der klassischen Version von Meltdown für spekulativ ausgeführte Operationen derselbe Cache wie für normal ausgeführte Anweisungen verwendet wird, ist es möglich, während der spekulativen Ausführung Markierungen im Cache zu setzen, die den Inhalt einzelner Bits in einem geschlossenen Speicherbereich widerspiegeln, und dann im normalerweise ausgeführten Code, um ihre Bedeutung durch Analyse der Zugriffszeit auf zwischengespeicherte und nicht zwischengespeicherte Daten zu bestimmen. Die neue Variante nutzt die Änderung im EFLAGS-Register als Marker für ein Leck. In der Covert Channel-Demo modulierte ein Prozess die gesendeten Daten, um den Inhalt des EFLAGS-Registers zu ändern, und ein anderer Prozess analysierte die Änderung der Ausführungszeit des JCC-Befehls, um die vom ersten Prozess gesendeten Daten wiederherzustellen.

Source: opennet.ru

Kommentar hinzufügen