it-swarm.com.de

Spectre / Meltdown auf einer GPU

Sind GPUs anfällig für Spectre/Meltdown-Angriffe, da sie das meiste haben, was CPUs angreifbar macht? Gibt es im VRAM Informationen, die Probleme verursachen würden, wenn sie gestohlen würden?

55
Bálint

Zunächst einmal würden Sie normalerweise nicht erwarten, dass der Kernelspeicher in einer GPU zugeordnet wird. Selbst wenn Sie moderne GPUs verwendet haben, haben Sie im Allgemeinen nicht viel Unterstützung für die gemeinsame Nutzung von Speicher zwischen Prozessen.

Es gab sicherlich Forschungsarbeiten zur spekulativen Ausführung innerhalb einer GPU - Spekulative Ausführung auf einer GPU: Eine explorative Studie; Liu, Eisenbeis, Gaudiot - aber ich glaube nicht, dass dies auf Hardwareebene aktiv durchgeführt wird von vorhandenen Geräten.

Obwohl theoretisch nichts Sie daran hindert, ein GPU/OS-Setup zu erstellen, das dies zulässt, bezweifle ich, dass dies bei vorhandenen Produkten möglich ist.

45
Hector

Eine GPU (Graphical Processing Unit) ist nicht anfällig für Spectre/Meltdown-Angriffe.

Dies hat verschiedene Gründe:

  1. Eine GPU ist ein völlig anders gestalteter Prozessor.
  2. Es wird kein privilegierter Code ausgeführt (z. B. Kernel-Code).
  3. Das Betriebssystem wird nicht ausgeführt.
  4. Es ist für Vektorberechnungen optimiert.
  5. Sein Mikrocode ist völlig anders aufgebaut.
  6. Es hat (meistens) keinen Schutz für privilegierten Code (wie die Ausführungsringe auf einer CPU).
  7. Es hat keinen Zugriff auf die Register der CPU (direkt), es hat DMA (Direkter Speicherzugriff)), aber auch viele andere Geräte.
  8. Es gibt nur begrenzte Untersuchungen von Sicherheitsexperten, sodass niemand sicher ist, ob es nicht anfällig ist.
  9. Die gleichen Teile werden entweder von vielen Geräten gemeinsam genutzt oder sind im Design nirgends ähnlich. Der Speicher oder das Beispiel einer GPU ist anders zugeordnet als der Speicher einer CPU (obwohl sie einen elektrischen Standard haben).
  10. Der Zugriff DMA sollte auf die aktuelle Ausführungsebene beschränkt sein, da die Grafikkarte normalerweise vom Kernel gesteuert wird, kann keine Anwendung auf Benutzerebene direkt darauf zugreifen. Oder Code an sie senden. (Treiber sind vorhanden um den Zugriff auf Benutzerebene zu erleichtern und die Möglichkeiten einzuschränken. Um die nutzbaren Funktionen zu maximieren. Und die Karte nicht in die Luft zu jagen (indem Sie beispielsweise illegale Einstellungen vornehmen).
  11. Code, der auf der GPU ausgeführt werden kann, ist in seiner Ausführung stark eingeschränkt (Befehlssatz ist begrenzt) DMA ist beispielsweise nur indirekt zulässig (laden Sie ihn zuerst in den Grafikkartenspeicher, bevor der Zugriff gewährt wird) und umgekehrt).

tldr; GPUs sind keine CPUs und nicht für Mehrbenutzer/Anwendungen ausgelegt. Sie haben einen gewissen Schutz vor Missbrauch, aber das meiste davon wurde noch nicht von Sicherheitsexperten getestet.

18
LvB

Nvidia hat heute Updates veröffentlicht, die sich mit den Problemen befassen. Ich würde also davon ausgehen, dass es Risiken gibt, da sie Updates erstellt haben.

http://us.download.nvidia.com/Windows/390.65/390.65-win10-win8-win7-desktop-release-notes.pdf

Tabelle 2.1 Sicherheitsupdates für Sicherheitslücken in der NVIDIA-Software CVE-ID NVIDIA-Problemnummer Beschreibung CVE-2017-5753 1975134 Computersysteme mit Mikroprozessoren, die spekulative Ausführung und Verzweigungsvorhersage verwenden, ermöglichen möglicherweise die unbefugte Weitergabe von Informationen an einen Angreifer mit lokalem Benutzerzugriff über eine Seitenkanalanalyse. Weitere Informationen zu diesem Problem finden Sie in den NVIDIA GPU-Sicherheitsupdates für das Security Bulletin für spekulative Seitenkanäle auf der Seite NVIDIA Product Security

Und erwähnt GeForce ausdrücklich in dem oben genannten Beitrag http://nvidia.custhelp.com/app/answers/detail/a_id/4611

Affected Products

Product                | OS
GeForce, Quadro, NVS   | Windows, Linux, FreeBSD, Solaris
Tesla                  | Windows, Linux
17
Viktor Mellgren

Grundsätzlich handelt es sich bei Meltdown und Spectre um Seitenkanalangriffe, bei denen die Schwächen nicht privilegierter und privilegierter Prozesse ausgenutzt werden, die dieselben Ressourcen gemeinsam nutzen. Die Verfügbarkeit von Ressourcen sind ungeschützte Informationen, und bei denen die nicht privilegierte Seite die privilegierte Seite dazu verleiten kann, Ressourcen auf eine Weise zu verbrauchen, die von a abhängt geheim, obwohl und weil die Anfrage letztendlich storniert oder abgelehnt wird. Die GPU teilt sicherlich Ressourcen und nicht privilegierte Prozesse können dort Code ausführen. Wenn dieser Code Ressourcenkonflikte erkennen und Daten anfordern kann, die er nicht empfangen soll (und nicht empfangen wird), würde ich die Möglichkeit von ähnlichen Angriffen mit Beteiligung der GPU nicht ausschließen.

1
dawroq