Chips Intel afectados por nuevo ataque “PortSmash”

Investigadores finlandeses y cubanos han descubierto en conjunto un exploit que utiliza una característica de los chips Intel, la cual permite robar llaves criptográficas secretas.
Esta característica es conocida como ataque de canal lateral (side channel attack), mediante la cual un proceso espía a otro mientras se ejecuta.
El ataque se vale de una característica llamada Simultaneous Multi Threading (SMT), la cual permite que dos programas se ejecuten paralelamente en un sólo núcleo de CPU. Aunque este concepto se encuentra presente desde finales de los años ’60, este ataque se enfoca en la versión desarrollada por Intel, Hyper-Threading, la cual comenzó a ser incorporada en sus procesadores en el año 2002.
El ataque side channel no revisa al proceso víctima directamente. En vez de eso, un hilo (el de ataque) busca por pistas que puedan revelar lo que el otro hilo (la víctima) está realizando, y trabaja secretamente desde ahi. Puede utilizar diversas señales, incluyendo el tiempo de las instrucciones. El ataque PortSmash utiliza el tiempo de las instrucciones basado en los contenidos del puerto.
Cada núcleo físico tiene un número de puertos, los cuales sn las regiones en el chip que realizan el proceso físico. Cuando dos hilos están corriendo en un chip ellos a menudo deben esperar a que el otro utilice estos puertos primero.
PortSmash explota esta situación. Su hilo de ataque toma un puerto repetitivamente con instrucciones inservibles a menos que el controlador de la CPU detiene su ejecución y le pasa ese puerto a otras instrucciones para su ejecución, entonces mide el tiempo que el otro hilo toma para procesar sus propias instrucciones. Esto puede ayudar a inferir los secretos de un programa a través del tiempo.
La Prueba De Concepto muestra como robar la llave privada de OpenSSL desde un servidor TLS. Ese es sólo un ejemplo de lo que el ataque puede realizar, y de que el código puede ser reconfigurado fácilmente para también robar otra información.
Para mitigar este riesgo, se debe deshabilitar el SMT mencionado al comienzo de este artículo. Muchos equipos no permiten realizar esto desde la configuración de la BIOS, por lo cual OpenBSD ya ha programado la deshabilitación de su soporte de SMT. Esto apareció días después de la divulgación de otra falencia en el side channel llamada TLSBleed, donde investigadores holandeses extrajeron llaves criptográficas desde hilos víctima en chips Intel.
Este ataque es distinto a SPECTRE y MELTDOWN, ya que estos utilizan la ejecución especulativa para robar los datos. Aún no está claro en como afecta esto a los procesadores AMD.
Impacto
Si usted es un usuario de un PC portátil o de escritorio, el cual utiliza para labores rutinarias como juegos, navegación en internet, trabajo de oficina, etc. El impacto no es tan grande. Este ataque involucra ejecutar código en su máquina, y si el atacante consigue realizar esto entonces ahí recién empieza el problema, dado que puede utilizar su propio código para llegar a su información de forma mas fácil.
Pero el peligro real de esto es para aquellos que ejecutan una gran cantidad de carga de transacciones de diferentes clientes en la misma máquina. Entornos en la nube que utilizan tenencia múltiple podrían ser un objetivo clave en esto. De cualquier forma, el atacante aún debe lograr que su código se ejecute en el mismo núcleo físico que el programa al cual quiere espiar.
Intel ha comunicado que es responsabilidad de los desarrolladores la creación de código más seguro para detener a las personas que abusan de esta característica.

El antiguo oficial de seguridad para el Sistema Operativo FreeBSD, en twitter profundizó acerca de esto, explicando que este concepto es conocido por años, y que las buenas prácticas de código son cruciales
OpenSSL ya emitió un parche para este problema mientras Intel retiró el Hyper.Threading de sus procesadores i7 9700k.