Spectre / meltdown en una GPU

54

¿Las GPU son vulnerables a los ataques de espectro / fusión, ya que tienen la mayoría de lo que hace que las CPU sean atacables? ¿Hay alguna información en la VRAM que pudiera causar problemas si fuera robada?

    
pregunta Bálint 08.01.2018 - 11:42
fuente

4 respuestas

46

En primer lugar, normalmente no se esperaría que la memoria del kernel se asignara en una GPU. Incluso si hiciste GPU modernas, generalmente no tienes mucho soporte para compartir memoria entre procesos.

Ciertamente ha habido trabajos de investigación sobre la ejecución especulativa dentro de una GPU - Ejecución especulativa en la GPU: un estudio exploratorio; Liu, Eisenbeis, Gaudiot , pero no creo que ningún dispositivo existente lo haga activamente a nivel de hardware.

Entonces, aunque teóricamente no hay nada que le impida crear una configuración de GPU / OS que pueda permitirlo, dudo que esto sea posible en cualquier producto existente.

    
respondido por el Hector 08.01.2018 - 11:52
fuente
18

Una GPU (unidad de procesamiento gráfico) no es vulnerable a los ataques de espectro / fusión.

Esto se debe a varias razones:

  1. Una GPU es un procesador con un diseño completamente diferente.
  2. No ejecuta código privilegiado (por ejemplo, código del kernel).
  3. No ejecuta el sistema operativo.
  4. Está optimizado para cálculos de vectores.
  5. Su código micro se construye de manera completamente diferente.
  6. (la mayoría de las veces) no tiene protección para el código privilegiado (como los anillos de ejecución en una CPU).
  7. No tiene acceso a los registros de la CPU (directamente), tiene DMA (acceso directo a la memoria) pero también muchos otros dispositivos.
  8. Los expertos en seguridad realizan solo una investigación limitada, por lo que nadie está seguro de que no sea vulnerable.
  9. En cuanto a tener las mismas partes, esas partes se comparten entre muchos dispositivos o no tienen un diseño similar. La memoria o el ejemplo de una GPU se asignan de manera diferente a la memoria de una CPU (aunque comparten un estándar eléctrico).
  10. El acceso DMA debe limitarse al nivel de ejecución actual, ya que la tarjeta gráfica normalmente está controlada por el Kernel, ninguna aplicación de nivel de usuario puede acceder directamente a ella. O envíale un código. (Los controladores existen para facilitar el acceso de nivel de usuario y para limitar lo que pueden hacer. Como para maximizar las funciones utilizables. Y no explotar la tarjeta (por ejemplo, al establecer configuraciones ilegales).
  11. El código que puede ejecutarse en la GPU está muy limitado en lo que puede ejecutar (el conjunto de instrucciones es limitado), por ejemplo, DMA solo se permite de manera indirecta (primero, cárguelo en la memoria de las tarjetas gráficas que el acceso otorgado y viceversa). / li>

tldr; Las GPU no son CPU y no están diseñadas para ser multiusuario / aplicación.  Tienen alguna protección contra el abuso, pero la mayoría de esto aún no está probado por expertos en seguridad.

    
respondido por el LvB 08.01.2018 - 12:06
fuente
17

Nvidia ha publicado hoy actualizaciones relacionadas con los problemas. Así que asumo que hay riesgos, ya que han creado actualizaciones.

enlace

  

Tabla 2.1 Actualizaciones de seguridad para vulnerabilidades del software NVIDIA ID de CVE   NVIDIA Número de problema Descripción CVE-2017-5753 1975134 Sistemas informáticos   Con microprocesadores que utilizan ejecución especulativa y ramificación.   predicción puede permitir la divulgación no autorizada de información a un   atacante con acceso de usuario local a través de un análisis de canal lateral. Para más   información sobre este problema, consulte las actualizaciones de seguridad de NVIDIA GPU para   Boletín de seguridad del canal lateral especulativo publicado en NVIDIA   Página de seguridad del producto

Y específicamente menciona a GeForce en la publicación mencionada enlace

Affected Products

Product                | OS
GeForce, Quadro, NVS   | Windows, Linux, FreeBSD, Solaris
Tesla                  | Windows, Linux
    
respondido por el Viktor Mellgren 09.01.2018 - 15:43
fuente
1

Fundamentalmente Meltdown y Specter son ataques de canal lateral que aprovechan las debilidades de los procesos sin privilegios y privilegiados que comparten los mismos recursos, la disponibilidad de los recursos es información desprotegida, y donde el lado no privilegiado puede engañar al lado privilegiado para que consuma recursos de una manera que depende de un secreto, aunque y porque la solicitud se cancela o rechaza en última instancia. La GPU ciertamente comparte recursos y los procesos no privilegiados pueden ejecutar código allí. Si ese código puede detectar conflictos de recursos y solicitar datos que no debe (y no) recibir, no descartaría la posibilidad de ataques similares que involucren a la GPU.

    
respondido por el dawroq 09.01.2018 - 08:55
fuente

Lea otras preguntas en las etiquetas