Forscher von Google: Zum Schutz vor Spectre ist eine Änderung der Prozessorarchitektur erforderlich. Software-Patches helfen nicht

Im Januar 2018 stellten Google-Forscher Informationen zu grundlegenden Hardware-Schwachstellen in den meisten modernen Prozessoren mit spekulativer Ausführung von Anweisungen öffentlich zur Verfügung. Vulnerability Spectre (und das angrenzende Meltdown) nutzen den Verzweigungsvorhersagemechanismus in der CPU und ermöglichen das Lesen von Daten über einen externen Kanal in Form einer gemeinsamen Cache-Hierarchie. Mit anderen Worten, jede Anwendung auf dem Computer kann Lesezugriff auf beliebige Speicherorte erhalten, was die Isolierung von Programmen verletzt, Datenlecks, Denial-of-Service und andere Probleme hervorruft.

Am schlimmsten ist, dass fast alle modernen Prozessoren (außer RISC und dem russischen Elbrus) anfällig sind, da die Verzweigungsvorhersage zu einem grundlegenden Bestandteil der Architektur moderner CPUs geworden ist , die nicht ohne erheblichen Leistungsverlust aufgegeben werden kann.

Tatsächlich stellten die Forscher die Sicherheitslücke bereits Mitte 2017 fest. Sie informierten die Öffentlichkeit einfach nicht darüber, sodass Hersteller von Prozessoren und Systemen die Möglichkeit hatten, Mikrocode- und Software-Updates vorzubereiten.

Daher veröffentlichte Intel unmittelbar nach der offiziellen Ankündigung Anfang Januar ein Mikrocode-Update für eine große Anzahl aktueller und veralteter Prozessormodelle. Das Update ist als Paket für Red Hat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Fedora, Ubuntu, Debian und Chrome OS verfügbar, sodass Sie die Firmware aktualisieren können, ohne das BIOS zu aktualisieren. Durch das Aktualisieren des Mikrocodes müssen keine KPTI-Patches auf den Linux-Kernel angewendet werden. Es stimmt, die ersten Versionen von Linus Torvalds hießen "absoluter Müll" , und Intel bat darum, die Installation zu beenden, und veröffentlichte sie dann erneut.

Updates wurden von anderen Herstellern für ihre Produkte veröffentlicht, die entsprechenden Patches wurden für die meisten Betriebssysteme veröffentlicht. Ein Patch für Windows 10 entging keinen Abenteuern: Microsoft hat ihn veröffentlicht, zurückgerufen und dann erneut veröffentlicht.

Aber nach all diesen Abenteuern schien die Geschichte zu enden: Es wurden stabile Versionen von Patches veröffentlicht und alle, die sie installieren wollten. Es scheint, dass Sie dem ein Ende setzen können. Aber nein. Ein Jahr später, am 14. Februar 2019, veröffentlichte eine Gruppe von Forschern von Google einen Bericht mit dem Spruch: „Spectre wird bei uns bleiben. Analyse von Angriffen über Kanäle von Drittanbietern und spekulative Ausführung . " Die Forscher kamen zu dem Schluss, dass es unmöglich ist, die Sicherheitsanfälligkeit nur mit Software-Patches vollständig zu schließen. Dies erfordert eine "erhebliche Verarbeitung der Prozessoren".

Aus dem Bericht kann geschlossen werden, dass die Sicherheitsanfälligkeit wirklich grundlegend ist. Die Autoren schreiben, dass alle Prozessoren mit spekulativer Ausführung trotz der in Zukunft möglicherweise implementierten Teilschutzmethoden immer verschiedenen Angriffen der Seitenkanäle ausgesetzt sein werden .

In dem Bericht heißt es: „Wir glauben, dass spekulative Schwachstellen bei modernen Geräten die Vertraulichkeit auf Softwareebene untergraben. Gleichzeitig gibt es keinen umfassenden Softwareschutz, da wir festgestellt haben, dass bösartiger Code einen universellen Mechanismus zum Lesen des gesamten Speichers im selben Adressraum über Kanäle von Drittanbietern schaffen kann. “

Intel sagte, es beabsichtige, einige Hardware-Änderungen in den Prozessoren zu implementieren, um sich vor Spectre zu schützen. Das Problem ist jedoch, dass Spectre nicht nur ein Fehler ist. Forscher glauben, dass dies eine breite Klasse von Schwachstellen ist , die den Mechanismus zur Vorhersage von Zweigen ausnutzen. Daher können einfache Patches hier nicht funktionieren.

Forscher haben mehrere mögliche Lösungen vorgeschlagen, nämlich:

  • vollständige Deaktivierung der spekulativen Ausführung;
  • verminderte Genauigkeit des Timers;
  • Maskieren von Zweigen (da jede Sicherheitsüberprüfung, die als Zweig in den Code eingebettet ist, durch die Art der Verzweigungsvorhersage umgangen werden kann, schlagen die Autoren vor, Zweige beim Entwerfen von Sicherheitsmechanismen überhaupt nicht zu berücksichtigen).

Die Forscher kommen zu einem enttäuschenden Ergebnis: „Unsere Modelle, unsere mentalen Modelle sind falsch; Wir haben die Sicherheit für Leistung und Komplexität geopfert und wussten nichts davon. Die bittere Ironie ist jetzt, dass der Schutz die Einführung einer noch größeren Komplexität mithilfe von Softwaretools erfordert, von denen die meisten, wie wir wissen, unvollständig sind ... Es scheint, dass Spectre einen zu guten Namen hat, weil es uns lange verfolgen wird. “

Source: https://habr.com/ru/post/de441378/


All Articles