Startseite » AMD Zen 1-Sicherheitslücke nicht ausreichend behoben

AMD Zen 1-Sicherheitslücke nicht ausreichend behoben

AMD Zen 1-Sicherheitslücke nicht ausreichend behoben Titel

Es scheint, dass der von AMD herausgegebene Patch für den Zen 1 „Division durch Null“-Bug nicht das Nonplusultra war, das das Unternehmen erreichen wollte. Während das Unternehmen schnell einen Patch herausgegeben hat, besteht nun der Verdacht, dass sie vielleicht ein bisschen zu schnell waren: Laut Michael Larabel von Phoronix hat AMDs Linux-Ingenieur Borislav Petkov einen neuen Patch veröffentlicht, der ein Problem mit der ursprünglichen Lösung (ebenfalls von ihm veröffentlicht) behebt. Dies ist nur ein weiterer Hinweis auf die Schwierigkeiten, sich gegen mögliche Angriffsvektoren abzusichern.

Der ursprüngliche Fehler bezog sich auf die Art und Weise, wie Zen 1 eine Ganzzahlberechnung geteilt durch 0 unter bestimmten Umständen verarbeitete: Den Erkenntnissen zufolge bestand die Möglichkeit, dass AMDs CPU „veraltete Quotientendaten“ in ihren Registern behielt, selbst nachdem die Operation vollständig abgeschlossen war, was Angreifern ein Fenster zum Abrufen sensibler Informationen bieten konnte. Die ursprüngliche Abhilfemaßnahme bestand darin, eine letzte „Dummy-Division 0/1 vor der Rückkehr aus dem #DE-Exception-Handler“ durchzuführen. Die Idee ist einfach: Alle alten Daten, die noch gespeichert waren, würden nach Abschluss der 0/1-Division (deren Ergebnis immer, nun ja, Null ist) gelöscht werden.

Das Problem bei dieser Lösung war, wie Petkov erläuterte, dass zu dem Zeitpunkt, an dem diese Sicherheitsvorkehrung greift, der Angriff auf die spekulative Ausführung bereits zu weit fortgeschritten wäre: Auf dem AMD-Teiler wäre bereits eine gewisse Menge alter Daten gespeichert, an die die Angreifer herankommen könnten, bevor die Dummy-Division einsetzt. Wie Petkov erläuterte, erzwingt seine neue Lösung nun dieselbe Teilung in einer Reihe von Szenarien:

„Ursprünglich dachte man, dass eine harmlose Division im #DE-Handler dafür sorgen würde, dass keine alten Daten aus dem Teiler durchsickern, aber wenn der Fehler auftritt, ist die Spekulation schon zu weit fortgeschritten und diese Daten könnten bereits von jüngeren Operationen verwendet worden sein.

Führe daher die harmlose Division bei jedem Ausgang in den Userspace durch, damit der Userspace keine potenziell alten Daten von Integer-Divisionen im Kernel-Space sieht.

Es war bereits ein arbeitsreicher Monat für Schwachstellen im CPU-Bereich, da sowohl AMD als auch Intel von Enthüllungen betroffen waren. Von Intels extremer Downfall-Schwachstelle (die Skylake bis Tiger Lake/Rocket Lake betrifft) bis hin zu AMDs SQUIP- und Inception-Schwachstellen (und der inzwischen behobenen „Divide by Zero“-Schwachstelle) waren die Forscher fleißig. Das ist immer noch kein Vergleich zur Geschichte der Meltdown- und Spectre-Tage (obwohl diese neuen Bugs auch mit spekulativen Ausführungsschwachstellen zusammenhängen).

Spekulative Ausführung bezieht sich auf die Art und Weise, wie moderne CPUs versuchen, Berechnungsschritte vorwegzunehmen, bevor sie überhaupt notwendig werden, damit die erforderlichen Daten bereits verfügbar sind, falls sie zur Ausführung aufgerufen werden. Auch wenn die Behebung einiger dieser Schwachstellen mit (manchmal schwerwiegenden) Leistungseinbußen verbunden war, ist es zumindest ein gutes Zeichen, dass AMDs 0/1-Dummy-Division nicht mit zusätzlichem Overhead verbunden ist.

 

Have your say!

0 0

Antwort schreiben

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Lost Password

Please enter your username or email address. You will receive a link to create a new password via email.

Zur Werkzeugleiste springen