Zenbleed: Alles, was Sie über diesen AMD-Sicherheitsfehler wissen müssen

Zenbleed ist die neueste einer langen Reihe von Sicherheitslücken für CPUs und muss ebenfalls gepatcht werden. Folgendes müssen Sie wissen:

Nachdem die CPU-Exploits Spectre und Meltdown im Jahr 2018 veröffentlicht wurden, war die Computerwelt ziemlich wachsam Es geht darum, Sicherheitslücken und Lücken in Prozessoren zu finden, und in den letzten fünf Jahren haben Forscher eine Menge gefunden. Am 24. Juli wurde ein weiterer Exploit öffentlich bekannt gegeben, nachdem er erstmals im Mai gemeldet worden war. Dieses Mal bezieht es sich speziell auf AMD-Prozessoren, die auf der Zen-2-Architektur basieren, und trägt den Titel „Zenbleed". Hier finden Sie alles, was Sie über Zenbleed wissen müssen und was es für die Welt bedeutet.

Wie funktioniert Zenbleed?

Zenbleed ist anderen hardwarebasierten Sicherheitslücken wie Spectre insofern sehr ähnlich, als es die spekulative Fähigkeit von CPUs ausnutzt. Um die Leistung zu verbessern, CPUs spekulieren oder vorhersagen, was als nächstes zu tun ist, und seit Spectre zum ersten Mal enthüllt wurde, hat die Welt gelernt, dass Spekulationen, wenn sie durchgeführt werden, sehr unsicher sein können unsachgemäß.

Quelle: Tavis Ormandy

Register in einer CPU können eine kleine Datenmenge enthalten, typischerweise einen Befehl, eine Speicheradresse oder jede andere Art kleiner Daten. XMM-Register in einer x86_64-Architektur (also jedem der betroffenen Zen 2-Prozessoren) können nur für Berechnungen von Daten verwendet werden, nicht für die Adressierung des Speichers. Dies wird bei YMM-Registern auf 256 Bit und bei ZMM-Registern auf 512 Bit erweitert. In diesem Fall bezieht sich XMM auf die unteren 128 Bits des gesamt 512 Bit der ZMM-Register.

Diese Register sind für viele verschiedene Dinge unglaublich nützlich, einschließlich Standard-C-Funktionen. Die Sicherheitslücke missbraucht spekulative Ausführung und Fehlvorhersagen von Verzweigungen, um im Grunde ein zufälliges Datenelement aus dem Speicher auszuspucken, aber diese Daten können von dort stammen irgendetwas. Standardfunktionen der C-Bibliothek wie strlen, das die Länge einer Zeichenfolge misst, können diese Register zum Verschieben von Daten verwenden herumliegen, und es ist möglich, dass zufällig ein von Ihnen verwendetes Passwort unglücklicherweise in eines davon gelangt ist registriert.

Verzweigungsvorhersage und spekulative Ausführung beziehen sich im Allgemeinen darauf, dass Ihr Computer Vorgänge ausführt, die noch nicht benötigt werden, aber wahrscheinlich in nachfolgenden Zyklen benötigt werden. Dies geschieht häufig in Zeiten, in denen Ihr System über freie Ressourcen verfügt, da es die Gesamtverarbeitung beschleunigt, wenn Anweisungen oder Daten sonst noch nicht für die CPU bereit wären. Wenn die geleistete Arbeit nicht benötigt wird, wird sie normalerweise verworfen und der Prozessor kann dorthin zurückspringen, wo er benötigt wird, um den nächsten, richtigen Befehl auszuführen. Wenn dies geschieht, spricht man von einer Fehlvorhersage des Zweigs.

Ein Problem tritt beim vzeroupper-Befehl auf, der die Bits in Position 128 und höher der YMM- und ZMM-Register auf Null setzt. Dies geschieht insbesondere beim Übergang zwischen AVX und älterem SSE-Code, da dadurch die Leistung beeinträchtigt wird durch falsche Abhängigkeiten verursachte Strafen und vermeidet gleichzeitig einen Effekt, der der Ganzzahlheraufstufung in ähnelt C.

Wenn der Prozessor spekulativ einen vzeroupper-Befehl ausführt, gibt es kein ordnungsgemäßes Rollback. Die betroffenen Ryzen-Prozessoren können jedoch zu einer Wiederherstellung gezwungen werden, wenn auch fälschlicherweise. In diesem Zustand kann das aktuell ausgeführte Programm diese Register in Echtzeit ausspionieren und jederzeit den Datenfluss im System überwachen.

Welche CPUs sind von Zenbleed betroffen und wann werden Patches verfügbar sein?

Wie bereits erwähnt, sind bekanntermaßen nur AMD-CPUs auf Basis der Zen-2-Architektur anfällig für die Zenbleed-Sicherheitslücke Die Zen-2-Architektur hat CPUs in drei Serien mit Strom versorgt, was es schwierig macht, herauszufinden, welche CPUs anfällig sind und welche sind nicht. Hier ist eine Tabelle, die alles klarstellen sollte:

Betroffene CPUs

Ryzen 3000-Serie

Alle außer APUs (z. B. Ryzen 3 3200G)

Epyc Rom

Alle

Ryzen 4000-Serie

Alle

Ryzen 5000-Serie

Nur 5300U, 5500U und 5700U

Ryzen 7000-Serie

Nur 7020 APUs (z. B. Ryzen 3 7320U)

Das ist eine ziemlich große Anzahl an AMD-Prozessoren, und das sind nur die, die bisher bestätigt wurden. Zen 2 wird auch in den APUs verwendet, die das Steam Deck, die Xbox Series S und X sowie die PS5 antreiben. Wir haben noch nichts davon gehört, ob diese CPUs ebenfalls betroffen sind, aber angesichts der Funktionsweise dieses Exploits wäre ich überrascht, wenn sie nicht ebenfalls betroffen wären. Es scheint unwahrscheinlich, dass AMD es in der Xbox und PS5 gepatcht hat, da auch neuere Chips der 7020-Serie betroffen sind.

Zum Zeitpunkt des Verfassens dieses Artikels Mikrocode wurde an den Linux-Kernel übermittelt Dadurch wird diese Sicherheitsanfälligkeit behoben, und Ihr Betriebssystem oder BIOS verfügt möglicherweise bereits über ein Update, das dieses Problem behebt.

Was bedeutet das für Computer, die anfällige CPUs verwenden?

Das ist schwierig zu beantworten, da nicht alle Computer gleich sind. Normale Leute, die nur Gaming-Desktops und -Laptops verwenden, müssen sich wahrscheinlich keine großen Sorgen machen. Dabei handelt es sich um einen ziemlich ausgefeilten Exploit, und obwohl er mittlerweile öffentlich bekannt ist, gibt es noch keine bekannten Beispiele dafür, dass ein Angreifer Zenbleed nutzt, um sich in irgendetwas einzuhacken.

Für Rechenzentren und wichtige Personen, die vertrauliche Informationen auf ihren eigenen Computern verarbeiten, steht jedoch viel mehr auf dem Spiel. Es gibt einen Grund, warum AMD sehr deutlich gemacht hat, dass Epyc Rome gepatcht wurde, bevor die Schwachstelle öffentlich wurde: viele sensible Informationen werden von Epyc-CPUs verarbeitet, und es wäre eine Katastrophe, wenn CPUs, die große Server antreiben, erfolgreich wären angegriffen. Der Linux-Kernel 6.4.6 ist bereits veröffentlicht und behebt diese Schwachstelle durch Einrollen der offizieller Mikrocode-Patch von AMD. Es ist wahrscheinlich, dass Microsoft etwas Ähnliches in Windows integrieren wird.

Besorgniserregend, Die offiziellen BIOS-Patches von AMD werden möglicherweise erst in mehreren Monaten veröffentlicht, in diesem Fall gibt es ein „Hühnchenstück", den Sie festlegen können, wenn Sie einen Linux- oder FreeBSD-Rechner verwenden. Auf Linux-Rechnern können Sie msr-tools verwenden und den folgenden Befehl ausführen.

wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))

Unter FreeBSD können Sie auch Folgendes verwenden.

cpucontrol(8)

Das Deaktivieren von SMT reicht nicht aus, um die Sicherheitsanfälligkeit zu verringern.

Was Zenbleed besonders schlecht macht, ist die Tatsache, dass Zen 2 eine der beliebtesten CPU-Architekturen von AMD war. Es war der Startschuss für das Comeback von AMD in den Jahren 2019 und 2020, und auch im Jahr 2023 verwenden viele Menschen, Unternehmen und Organisationen immer noch Computer mit Zen 2-Prozessoren, insbesondere Epyc Rome CPUs. Das ist nicht so schlimm wie Spectre (was so ziemlich alle CPUs vor 2019 betrifft) und Meltdown (was so gut wie alle Intel-CPUs vor 2019 betrifft), aber es ist immer noch einigermaßen weit verbreitet.

Sicherheitspatches für solche Schwachstellen führen jedoch häufig auch zu Leistungseinbußen AMD sagte Toms Hardware dass diese Strafe von der CPU und der Arbeitslast abhängt. Spekulationen und Vorhersagen waren für die CPU-Leistung ziemlich wichtig, daher ist unklar, ob eine mögliche Lösung zu einer erheblichen Leistungseinbuße führen wird.