web-dev-qa-db-fra.com

Spectre / fusion sur un GPU

Les GPU sont-ils vulnérables aux attaques de spectre/effondrement, car ils ont la plupart de ce qui rend les processeurs attaquables? Y a-t-il des informations dans la VRAM qui pourraient causer des problèmes si elles étaient volées?

55
Bálint

Tout d'abord, vous ne vous attendriez pas normalement à ce que la mémoire du noyau soit mappée dans un GPU. Même si vous avez utilisé des GPU modernes, la prise en charge du partage de mémoire entre les processus n'est généralement pas très importante.

Il y a certainement eu des articles de recherche sur l'exécution spéculative à l'intérieur d'un GPU - Exécution spéculative sur GPU: une étude exploratoire; Liu, Eisenbeis, Gaudiot - mais je ne pense pas que cela soit activement fait au niveau matériel par tous les appareils existants.

Donc, bien que théoriquement, rien ne vous empêche de créer une configuration GPU/OS qui pourrait le permettre, je doute que cela soit possible sur tous les produits existants.

45
Hector

Un GPU (Graphical Processing Unit) n'est pas vulnérable aux attaques de spectre/fusion.

Cela est dû à diverses raisons:

  1. Un GPU est un processeur complètement différent.
  2. Il n'exécute pas de code privilégié (par exemple, le code du noyau).
  3. Il n'exécute pas le système d'exploitation.
  4. Il est optimisé pour les calculs vectoriels.
  5. Son micro code est construit complètement différemment.
  6. Il (le plus souvent) n'a pas de protection pour le code privilégié (comme les anneaux d'exécution sur un CPU).
  7. Il n'a pas accès aux registres du CPU (directement), il a DMA (accès direct à la mémoire) mais il en va de même pour beaucoup d'autres appareils.
  8. Il n'y a que des recherches limitées à ce sujet faites par des experts en sécurité, donc personne ne sait si ce n'est pas vulnérable.
  9. Quant à avoir les mêmes pièces, ces pièces sont partagées entre de nombreux appareils ou nulle part similaires dans la conception. la mémoire ou l'exemple d'un GPU est mappé différemment de la mémoire d'un processeur (bien qu'ils partagent une norme électrique).
  10. L'accès DMA doit être limité au niveau d'exécution actuel, car la carte graphique est normalement contrôlée par le noyau, aucune application de niveau utilisateur ne peut y accéder directement. Ou lui envoyer du code. (Les pilotes existent pour faciliter l'accès au niveau utilisateur et limiter ce qu'ils peuvent faire. Pour maximiser les fonctionnalités utilisables. Et ne pas faire exploser la carte (en définissant des paramètres illégaux par exemple).
  11. Le code qui peut s'exécuter sur le GPU est très limité dans ce qu'il peut exécuter (le jeu d'instructions est limité) DMA est par exemple uniquement autorisé indirectement (chargez-le d'abord dans la mémoire des cartes graphiques pour que l'accès soit accordé) et vice versa).

tldr; Les GPU ne sont pas des CPU et ne sont pas conçus pour être multi-utilisateurs/applications. Ils ont une certaine protection contre les abus, mais la plupart de ceux-ci n'ont pas encore été testés par des experts en sécurité.

18
LvB

Nvidia a publié aujourd'hui des mises à jour traitant des problèmes. Je suppose donc qu'il y a des risques car ils ont créé des mises à jour.

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

Tableau 2.1 Mises à jour de sécurité pour les vulnérabilités du logiciel NVIDIA ID CVE Numéro de problème NVIDIA Description CVE-2017-5753 1975134 Les systèmes informatiques dotés de microprocesseurs utilisant l'exécution spéculative et la prédiction de branche peuvent permettre la divulgation non autorisée d'informations à un attaquant disposant d'un accès utilisateur local via une analyse de canal latéral. Pour plus d'informations sur ce problème, consultez les mises à jour de sécurité du GPU NVIDIA pour le bulletin de sécurité du canal latéral spéculatif publié sur la page Sécurité du produit NVIDIA

Et mentionne spécifiquement GeForce dans le post susmentionné 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

Fondamentalement, Meltdown et Spectre sont des attaques par canaux secondaires qui exploitent les faiblesses des processus non privilégiés et privilégiés partageant les mêmes ressources, la disponibilité des ressources étant des informations non protégées et où le côté non privilégié peut inciter le côté privilégié à consommer des ressources d'une manière qui dépend d'un secret, même si et parce que la demande est finalement annulée ou rejetée. Le GPU partage certainement des ressources et des processus non privilégiés peuvent y exécuter du code. Si ce code peut détecter des conflits de ressources et demander des données qu'il n'est pas censé (et ne recevra pas), je n'exclurais pas la possibilité d'attaques similaires impliquant le GPU.

1
dawroq