El gigante de la fabricación de semiconductores se vio sacudido por Meltdown y Spectre a principios de año. El caos provocado por estas vulnerabilidades afectaba a chips de otros fabricantes y diseñadores como AMD y ARM, pero Intel era la más castigada por dichos problemas de seguridad.
La empresa se puso a trabajar de forma frenética para atajar los riesgos de seguridad asociados a ese descubrimiento, y dos meses y medio despúes tienen buenas noticias que darnos: ya hay solución para todos los procesadores de los últimos cinco años, pero además tienen ya versiones de sus procesadores que eliminan este problema desde la raíz, desde el hardware.
Atajar el problema causó nuevos problemas (al principio)
Los graves errores de diseño desvelados nada más estrenarse 2018 sembraron el pánico entre usuarios en todos los ámbitos. Las vulnerabilidades de seguridad críticas conocidas como Meltdown (variante 3) y Spectre (variantes 1 y 2) podían ser aprovechadas para lograr acceder a zonas protegidas de memoria y, por tanto, a datos confidenciales y a la ejecución de código no autorizado.

Eso provocó una rápida reacción por parte de Intel, que recibió numerosas demandas por el problema. En las últimas semanas hemos visto como Intel publicaba parches no del todo efectivos y que de hecho causaron problemas colaterales a los usuarios de ciertos tipos de combinaciones hardware. Microsoft, que también intentó publicar actualizaciones para mitigar el problema, se encontró también con que sus soluciones afectaban negativamente a usuarios de procesadores AMD.
Tras ese caos inicial, no obstante, estas empresas lograron solventar esos conflictos. Intel presentaba a finales de febrero de 2018 sus parches finales para mitigar los problemas, y con ellos por fin llegaba una solución estable que, combinada con las actualizaciones entre los desarrolladores de sistemas operativos —con Microsoft a la cabeza— planteaba un buen mecanismo para mitigar el problema de forma definitiva.
En Intel aseguran que ya tienen solución final
Tras esas semanas de incertidumbre, Intel ha indicado que a día de hoy el 100% de sus procesadores lanzados en los últimos cinco años están ya protegidos contra estas amenazas.
Ese anuncio se une a otro que es también importante para la futura resolución definitiva del problema: Intel indicó que estaba trabajando en procesadores inmunes a Meltdown y Spectre, y sus ingenieros confirman ahora que dichos procesadores, que estarán protegidos por hardware contra las variantes 2 y 3 de este problema, comenzarán a aparecer en la segunda mitad del año.
Los primeros en hacerlo serán los procesadores Xeon SP para servidores (Cascade Lake), mientras que después llegarán los primeros procesadores para usuarios finales, los Intel Core de 8ª Generación que también contarán con esa protección hardware contra esas variantes de Meltdown y Spectre.
¿Qué ocurre con la primera variante, que es una de las dos presentes en Spectre? Pues como explicaban en Google, el problema conocido como 'bounds check bypass' (CVE-2017-5753) tiene una mitigación software (y no hardware con algún tipo de microcódigo para las CPUs afectadas), tanto a nivel de sistema operativo como de aplicaciones. Como explicaban estos investigadores:
La mitigación requiere el análisis y la recompilación de modo que no se emita código binario vulnerable. Ejemplos de objetivos que podrían requerir el parcheado incluyen tanto al sistema operativo como a apliaciones que ejecuten código no fiable.
Los parches sí afectan al rendimiento, pero no mucho
Una de las preocupaciones que imponían estos parches desde que comenzaron a aparecer fue el impacto que tendrían sobre el rendimiento de nuestros PCs y de los servidores a los que accedemos continuamente en internet y en redes locales y empresariales.

¿Por qué pasa esto? La razón es que uno de los pilares del problema está en la llamada ejecución especulativa, un sistema que básicamente convierte al procesador en una especie de adivino: la CPU trata de adelantarse a nuestras necesidades precalculando cosas que así no tendrá que calcular cuando le llegue el momento. Esa técnica con la que el procesador ahorraba esperas "innecesarias" ha acabado siendo la condena de Intel.
Con los parches Intel deja de aprovechar ventajas como la ejecución especulativa, lo que hace que ahora esas esperas sean necesarias. Hay otro factor esencial en esa potencial pérdida de rendimiento. Hasta ahora, el espacio de memoria de usuario y del kernel no estaban separados, pero estos parches precisamente los separan para evitar accesos no autorizados a regiones privilegiadas de memoria.
Eso significa que los cambios de contexto que los procesos hacen continuamente en nuestro trabajo frente al PC (pasando del espacio de memoria de usuario al del kernel para ciertas operaciones) consumen unos ciclos de CPU que antes no se consumían. Esa sobrecarga u overhead es la que causa el impacto, que puede ser o mayor dependiendo en gran medida del número de interrupciones que estemos activando en nuestras aplicaciones.

¿Qué impacto podemos esperar entonces? Pues depende totalmente del escenario software en el que nos encontremos y también del tipo de configuración hardware con la que contemos. Los primeros datos apuntaban a bajadas de rendimiento que podían ir desde el 5 al 30%, y se sabe que el impacto en usuarios que usan discos duros tradicionales es menor que en usuarios de SSD, aunque eso no importa tanto ya que los usuarios SSD siguen teniendo una mejora de rendimiento significativa frente a los de discos duros mecánicos.
Algunas de las grandes implicadas en este ámbito daban ya hace semanas su estimación del impacto. En Google, por ejemplo, indicaron cómo llevaban tiempo trabajando en el problema para atajarlo sin que nos enterásemos de nada. El impacto en sus servicios, aseguran, es minúsculo, con ejemplos como Gmail y Google Drive ya protegidos gracias a soluciones como Retpoline que se han aplicado en otras plataformas software y que la propia Intel ha revisado.
Microsoft hizo sus propias pruebas al respecto y confirmó que Metldown y Spectre sí tendrían impacto tras ser parcheados en diversas versiones de Windows. Según esos datos, los usuarios de procesadores más antiguos (citaban los Haswell de 2015 o anteriores) serían los que podrían ver "desaceleraciones importantes".

Los responsables de Intel publicaban sus estimaciones al respecto al poco de desvelarse los errores. En las primeras pruebas realizadas confirmaban sus impresiones iniciales, en las que "no anticipábamos un impacto significativo sobre el rendimiento para el usuario medio".
Lo bueno: que (casi) nunca usamos nuestras CPUs al 100%
Lo cierto es que como decíamos el impacto sobre nuestra actividad existe, pero todo apunta a que será reducido o nulo salvo en casos excepcionales. Aquí los analistas aclaran algo interesante: los benchmarks que ejecutamos para analizar el impacto en el rendimiento se encargan de tener la CPU funcionando al 100% constantemente.

En esos benchmarks es donde efectivamente se nota una pérdida de rendimiento en algunos casos, como apuntaban las pruebas iniciales de Intel o los datos de Microsoft, pero es que tanto en el ámbito del usuario final como en el de un servidor esas situaciones de utilización máxima del procesador son raras.
El caso típico de "estrés" al que sometemos a nuestros PCs y portátiles es el que afecta sobre todo al mundo de los videojuegos, y ahí los procesadores no están tan ocupados como las GPUs, que no están afectadas directamente por el problema —aunque sí indirectamente—.
En la mayoría de situaciones el margen de maniobra de la CPU es tan grande —porque no la usamos casi nunca al 100%— que será difícil que notemos una pérdida sensible de rendimiento. Lo demostraban análisis como los de TechReport en los que las pruebas apuntaban a diferencias no especialmente llamativas entre un equipo sin proteger y el mismo equipo protegido.
Lo mismo ocurre con los servidores, cuyos responsables suelen "sobreaprovisionar" para dotar a sus máquinas de margen de maniobra para casos en los que reciban un número de peticiones más elevada de lo normal. Eso mismo hace que el impacto en estas máquinas, aunque exista, no sea notable en muchos casos.

Tenemos un buen ejemplo en las pruebas publicadas por Red Hat recientemente: mientras que el impacto que midieron en enero de 2018 se situaba entre el 1 y el 20% en sus soluciones con los últimos parches ese impacto se ha reducido a un rango de entre el 1 y el 8%.
Con esto no queremos decir que estemos a salvo de problemas de rendimiento: en situaciones específicas —mucha entrada/salida, mucho cambio de contexto— sí puede haber una bajada de rendimiento apreciable, y cada usuario, sea profesional o no, debería evaluar las cargas de trabajo de sus máquinas.
Las conclusiones, aún así, son esperanzadoras: los parches disponibles ya cubren una amplia cantidad de PCs, portátiles y servidores, y el impacto sobre el rendimiento, aunque sensible en casos específicos, no parece tan preocupante como se planteaba inicialmente. Eso se une a la salida de los futuros procesadores que corregirán estos problemas directamente desde el hardware, algo que irá atajando gradualmente un problema que aún así podría seguir coleando durante muchos años.
Aquí, eso sí, los usuarios también tenemos trabajo: debemos actualizar nuestros procesadores y nuestros sistemas operativos cuanto antes para mitigar potenciales amenazas. El proceso puede plantear aún conflictos —por ejemplo, con antivirus—, pero el panorama es mucho más halagüeño que hace pocas semanas.
Más información | Intel Microcode Update Guidance (PDF)
En Xataka | Cómo actualizar todos tus sistemas operativos y navegadores para frenar a Meltdown y Spectre
Ver 25 comentarios
25 comentarios
cefalopodo
Decir que el impacto es reducido es no saber muy bien de que se habla. Llevamos meses aplicando parches en toda nuestra infraestructura (Linux 95%) y en varios casos hemos tenido que hacer rollback por bajada de rendimiento. En mi empresa hay unas 5-6 personas que llevan dedicándose casi en exclusiva 3 meses para que nos digas que el impacto es mínimo ...
bioacler
¡Que extraño! Que saliera esta noticia de la "solución del problema", después de aquella noticia de procedencia dudo sobre AMD.
awsomo
🦊 💬 Intel = 👑 =👍🏻
🦊 🗯 AMD =🇨🇳 = ☠️💩
sologizmos
"En Intel aseguran que ya tienen solución final"
Si, comprar los mas nuevos y esperar que hostia traeran ahora.
dalo1989
¿Cuanto os han pagado para soltar esta mentira y no contar la trama sobre los errores de AMD?
mszerox
¿Impacto reducido? ¡Sera en entorno Windows!
Porque en Unix y Linux el impacto es variable dependiendo del caso.
Hay casos donde el impacto no es tan fuerte, incluso de antes y otros donde el impacto es notorio.
biturrizar
Hay varias cosas que no termino de comprender. Cito 2 por ejemplo.
A) La ejecuciones predictivas y especulativas van adelantándose y tratando de adivinar por dónde irá el flujo de instrucciones a futuro y por si acaso van trazando rutas de ejecución. Cuando una de las ejecuciones se hace real, ya están los datos y se usan. Las otras ejecuciones se abandonan, y así de forma sofisticada, todo le tiempo.
Si el flujo especulativo no detecta en hardware que está invadiendo direcciones lógicas no sólo del kernel sino de procesos del mismo privilegio, no se trataría de un error, sino de algo burdo y que no sabemos el por qué.
B) El problema es de hardware y por lo tanto cualquier parche o solución se las tiene que ver con privilegio de nivel 0. Cuando desde otro nivel se trata de accesar al hardware se producen excepciones que lo impiden (por ello los drivers elevan su nivel jerárquico). Osea, el software normal no tiene forma de accesar el hardware.
Entonces ¿Cómo puede google parchear el problema desde software de aplicación? ¿Para qué necesita Google correr en nivel 0? Me entra la temblorina.
ttkoete
y se queda tan ancho
whisper5
¿De verdad podemos cantar victoria?
Las variantes 2 y 3 se parchearon a toda prisa (y a veces mal) y posteriormente Intel ha ido corrigiendo distintas generaciones de sus microprocesadores y ahora dice que los producirá ya corregidos.
La variante 1 se está corrigiendo por software, y hasta donde yo sé, se está haciendo creando versiones nuevas de compiladores para que generen código ejecutable que no sea vulnerable a la variante 1. Así, que me queda una duda: ¿qué pasa sin alguien genera un ejecutable con un compilador viejo, que genera código vulnerable a la variante 1?
¿Alguien experto sabe decir si esto es posible? Porque si lo fuese realmente no estaríamos protegidos contra la variante 1.
hectorh.quispe
El impacto es mínimo porque la capacidad usada siempre era menor que la capacidad total...
Parece que no se entera de que ahora que hay mas capacidad usada... habrá que incrementar la capacidad total, lo que redunda en mayores costes.
Un 1% en industrias de $100 000 000 de dolares no es despreciable en muchos sentidos.
mr.robotic
Lo que se evita decir:
"La empresa se puso a trabajar de forma frenética para atajar los riesgos de seguridad" que no hizo en los 8 meses y medio atrás, al ser notificada de los mismos, "y dos meses y medio despúes tienen buenas noticias que darnos: ya hay solución para todos los procesadores de los últimos cinco años". Aún no se confirma desde qué generación, porque seguro es la siguiente a la exitosa 4ta.