OpenBSD desactiva la tecnología Hyper-Threading de Intel

20/06/2018

OpenBSD ha desactivado la tecnología Hyper-Threading de Intel, debido a preocupaciones de seguridad.

Como se detalla en esta publicación, el responsable de OpenBSD, Mark Kettenis, escribió que "las implementaciones SMT (Simultanious Multi Threading) generalmente comparten los TLB y los cachés L1 entre subprocesos".

"Esto puede hacer que los cache timing attacks sean mucho más fáciles y sospechamos fuertemente que esto hará que varios errores tipo Spectre sean explotables".

Así que OpenBSD decidió desactivar el Hyper-Threading, con "un nuevo hw.smt sysctl".

"Por ahora, esto solo funciona en las CPU Intel cuando se ejecuta OpenBSD / amd64", escribió Kettenis. "Pero estamos planeando extender esta característica a las CPU de otros proveedores y otras arquitecturas de hardware". 

No hay mucho a modo de explicación para la decisión en la publicación de Kettenis, aparte de la observación de que "Realmente no deberíamos ejecutar diferentes dominios de seguridad en diferentes subprocesos de procesador del mismo núcleo".

Hay, sin embargo, otra pista sobre el motivo en la publicación de Philip Guenther de OpenBSD, que se comprometió a un cambio para "borrar los GPR al ingresar el kernel desde el espacio de usuario para que los valores controlados por el usuario no puedan participar en la ejecución especulativa en el kernel en rutas que terminan 'no tomadas' pero que pueden causar efectos visibles para el usuario (caché, etc.)".

Esa confirmación fue acompañada por una solicitud para deshabilitar Hyper-Threading de Intel.

También hemos visto esta publicación de Seclists mencionando la decisión de OpenBSD y haciendo alusión a una divulgación relacionada del 27 de junio.

La publicación de Kettenis sugiere que desactivar Hyper-Threading no será un gran problema porque "SMT no necesariamente tiene un efecto positivo en el rendimiento; depende en gran medida de la carga de trabajo. Lo más probable es que ralentice la mayoría de las cargas de trabajo si tienes una CPU con más de dos núcleos ".

Él no está equivocado: a menos que el código esté escrito para Hyper-Threading, el beneficio de rendimiento no es enorme, y no muchos códigos aprovechan la función.

Sin embargo, Intel comercializa el hyper-threading como una virtud distinta: sus hojas de especificaciones de CPU siempre mencionan el núcleo y el conteo de hilos. Por lo tanto, las sugerencias de nuevas preocupaciones de seguridad tipo Spectre serán más desagradables, especialmente porque la comunidad de OpenBSD se molestó por el método utilizado para divulgar Meltodwn y Spectre y pidió que tales revelaciones se manejen de manera diferente en el futuro.

Artículos relacionados: