TLBleed

TLBleed  es una vulnerabilidad de hardware en algunos procesadores modernos que tienen un búfer de traducción de comandos y admiten subprocesos múltiples simultáneos. La vulnerabilidad permite que una aplicación de usuario (un atacante local, cuando se inicia un programa especial) que se ejecuta en uno de los subprocesos de hardware extraiga información sin autorización sobre la ejecución de otro subproceso utilizando un canal encubierto . La fuga de información se puede utilizar potencialmente para acceder de forma segura a datos confidenciales que otro subproceso está procesando.

Breve descripción

TLBleed es un ataque de canal lateral y, por lo tanto, comparte similitudes con otras vulnerabilidades de microprocesadores como Meltdown y Spectre . El enfoque tradicional para explotar dichas vulnerabilidades se basa en medir el tiempo de acceso a las celdas de la memoria caché del procesador individual para determinar qué celdas específicas fueron cargadas en la memoria caché por el proceso atacado. De esta forma, es posible extraer información indirecta sobre la ejecución y datos protegidos del proceso víctima. En el caso de un ataque TLBleed, el canal lateral no es un caché de datos regular, sino el búfer de traducción asociativo (TLB), un caché especial que almacena correspondencias entre las páginas de memoria virtual y las páginas de memoria física del procesador, que se utiliza para acelerar la traducción. de direcciones virtuales. Una oportunidad de ataque clave la proporciona el hecho de que en la implementación del modo de subprocesos múltiples simultáneos (SMT) en los procesadores Intel, el búfer de traducción asociativo se comparte y es utilizado por todos los subprocesos de hardware simultáneamente (puede existir un canal de terceros similar en el microprocesador). implementaciones de otras empresas, pero dicho análisis aún no se ha producido).

La esencia del ataque es la siguiente. El tiempo de acceso a las celdas TLB individuales determina a qué páginas de memoria accede el proceso atacado. Al mismo tiempo, incluso la granularidad mínima de direccionamiento (4096 bytes en los sistemas modernos) no es suficiente para obtener directamente los datos del proceso atacado (por ejemplo, la vulnerabilidad Meltdown utiliza el direccionamiento indirecto para cargar y luego identificar una celda de caché específica, el cuya dirección determina parte del secreto ). Sin embargo, al analizar la naturaleza del acceso a la memoria (orden de acceso a las páginas de memoria, intervalos entre accesos) utilizando métodos de aprendizaje automático , es posible identificar una sección del código ejecutable. Si, por ejemplo, en el algoritmo de encriptación, al procesar un "1" lógico, se llama a una sección del código, y al procesar un "0" lógico, otra, resulta posible restaurar completamente los datos encriptados.

Historia

El estudio original fue hecho público por un grupo de científicos de la Universidad Libre de Ámsterdam el 22 de junio de 2018. Los detalles de la vulnerabilidad fueron revelados más tarde por el líder del proyecto, Ben Gras, en la conferencia de seguridad informática Black Hat . [1] [2] A pesar de que la vulnerabilidad se demostró en muchos procesadores Intel de varias arquitecturas modernas, la empresa se negó a solicitar un identificador CVE para la vulnerabilidad, citando su insignificancia. Según los investigadores, esta posición no refleja el estado real de las cosas, ya que TLBleed es un tipo de ataque significativamente nuevo, representa una amenaza importante y puede servir como punto de partida para la búsqueda de otras vulnerabilidades similares. [3]

Mecanismo

Para implementar el ataque descrito, es necesario resolver una serie de problemas técnicos:

Influencia

A partir de agosto de 2018, la vulnerabilidad solo se demostró en los procesadores Intel. Se supone que los procesadores de otras empresas, en los que los subprocesos de hardware comparten el búfer de traducción de páginas, también pueden ser vulnerables a este tipo de ataque, pero no se han presentado implementaciones del concepto. [7] AMD afirma que sus procesadores no se ven afectados por la vulnerabilidad. [3]

Después de la publicación de información sobre la vulnerabilidad, el proyecto OpenBSD deshabilitó por completo el soporte para subprocesos múltiples simultáneos en el sistema. [8] [9] El jefe de OpenBSD Theo de Raadt cree que, a pesar de que la vulnerabilidad puede eliminarse teóricamente al prohibir que los procesos de diferentes contextos se ejecuten en núcleos de procesador comunes, en la práctica tal solución no es factible debido a la complejidad. . [ocho]

Mecanismos de defensa

Véase también

Notas

  1. Black Hat EE. UU. 2018 . www.blackhat.com Fecha de acceso: 19 de diciembre de 2018. Archivado desde el original el 7 de enero de 2019.
  2. Ataque de CPU de canal lateral TLBleed detallado en Black Hat . eSEMANA. Recuperado: 19 de diciembre de 2018.
  3. 12Williams , Chris . Conozca TLBleed: un ataque de CPU con fuga de claves criptográficas del que Intel cree que no deberíamos preocuparnos , The Register (  22 de junio de 2018). Archivado desde el original el 8 de diciembre de 2018. Consultado el 19 de diciembre de 2018. 
  4. WikiChip-  WikiChip . es.wikichip.org. Consultado el 19 de diciembre de 2018. Archivado desde el original el 26 de octubre de 2020.
  5. [ https://www.cs.vu.nl/~giuffrida/papers/revanc_eurosec17.pdf RevAnC: un marco para cachés de tablas de página de hardware de ingeniería inversa]  //  el décimo taller europeo. Archivado desde el original el 20 de diciembre de 2018.
  6. sched_setaffinity(2) - Página del manual de Linux . man7.org. Consultado el 19 de diciembre de 2018. Archivado desde el original el 20 de diciembre de 2018.
  7. Halfacree, Gareth . Los investigadores advierten sobre la vulnerabilidad TLBleed Hyper-Threading  (inglés) , bit-tech.net  (25 de junio de 2018). Archivado desde el original el 13 de febrero de 2019. Consultado el 19 de diciembre de 2018.
  8. 1 2 3 El jefe de OpenBSD, de Raadt, dice que no hay una solución fácil para el nuevo  error de la CPU de Intel . www.itwire.com (25 de junio de 2018). Consultado el 25 de junio de 2018. Archivado desde el original el 25 de junio de 2018.
  9. OpenBSD deshabilita la compatibilidad con hyperthreading para CPU Intel debido a posibles  filtraciones de datos . www.itwire.com (21 de junio de 2018). Fecha de acceso: 19 de diciembre de 2018. Archivado desde el original el 9 de julio de 2018.

Enlaces