El mundo de la seguridad informática ha comenzado este nuevo año 2018 con dos peligrosas y masivas vulnerabilidades de los procesadores modernos: Meltdown y Spectre. Diferentes investigadores en el área descubrieron estos fallos desde el verano del 2017 y han intentado buscar soluciones, lo más adecuadas posibles. Y aunque es algo que se hizo público hace pocas semanas, ya estaba en conocimiento de algunas empresas tecnológicas varios meses atrás.
Como lo maneja (¿equivocadamente?) la mayoría del media stream, incluso muchas compañías consultoras de tecnología o de seguridad, estos fallos no lucen muy distintos de las innumerables vulnerabilidades encontradas diariamente sobre cualquier sistema operativo, que por muy graves, siempre obtienen parches inmediatos que tapan el problema (aunque más tarde puedan producir nuevos). Sin embargo, Meltdown y Spectre son vulnerabilidades en el hardware, no en el software. Afectan prácticamente a todos los microprocesadores en el mundo, producidos durante los últimos 20 años, pero el parche sacado recientemente por Intel para remediar el asunto, impacta sobremanera el rendimiento de la máquina o, peor aún, hay muchas situaciones donde es imposible ejecutar el patching y entonces la máquina queda expuesta permanentemente.
Bajo este panorama podríamos afirmar sin duda que Meltdown y Spectre no representan vulnerabilidades, sino fallos cruciales de diseño, lo cual ha abierto la puerta a un negro panorama en el futuro de la ciberseguridad, de por sí siempre en amplia desventaja en relación a los atacantes y sus mecanismos de explotación y ofensiva.
Una explicación más detallada acerca del funcionamiento de las vulnerabilidades puede encontrarse en los papers publicados también en la página oficial, para Meltdown y para Spectre. De todas formas lo explicaremos de forma breve.
Meltdown explota los efectos secundarios de la ejecución out-of-order execution y permite leer localizaciones arbitrarias en memoria, incluida la memoria de kernel, es decir, la privilegiada y del propio sistema operativo. En la práctica, esto quiere decir que se puede conocer cualquier contenido en memoria, rompiendo el principio de aislamiento de la memoria entre procesos, sin siquiera necesitar permisos o privilegios de administración.
¿Qué es la out-of-order execution? Es una característica de los procesadores modernos (y por modernos quiere decir desde principios de los 90 aproximadamente) la cual permite que cuando una instrucción en memoria llegue al CPU, si los operandos de dicha instrucción no están disponibles, esta instrucción deje paso a la siguiente en el queue, para ser ejecutada más adelante. El remedio para esta vulnerabilidad consiste en que los sistemas operativos implementen una serie de contramedidas conocidas como KPTI (kernel page-table isolation o «aislamiento de tablas de páginas del kernel»). Básicamente aislar de una manera diferente, mejor supuestamente, la memoria de usuario y la memoria de kernel. En teoría Meltdown estaría parchado ya, pero justo ese parche ralentiza el procesador entre un 5% y un 30%, y se debe tener precaución en la implementación del mismo.
Pero Spectre es inmensamente más complicada, por decirlo de alguna forma. Aquí nombramos brevemente una característica denominada «ejecución especulativa», que también permite mejorar el rendimiento de un procesador. En resumen, los procesadores se han vuelto tan rápidos, que pasan mucho tiempo esperando a que los datos se muevan dentro de la memoria, es por ello que el procesador «adivina» los datos que podría recibir y ejecuta instrucciones basadas en ello. Si la adivinanza resulta correcta, entonces hemos tenido un match de desempeño bueno. Si no, simplemente el procesador descarta lo que hizo y no pierde más el tiempo.
De nuevo, dado que en principio el procesador está diseñado para descartar el resultado de esta especulación, en caso de ser errónea volviendo a un estado anterior, no parecía haber problemas de seguridad. El asunto está de nuevo en que podemos llegar a leer el caché en el que se almacena usando un canal encubierto.
Y esto no puede ser arreglado mediante software como Spectre. Aquí viene el gran revuelo de la vulnerabilidad: es una falla de concepto en la ejecución especulativa, los chips tendrían que ser rediseñados completamente para eliminarla.
A medida que pasan las semanas vamos conociendo cosas nuevas acerca de este importante caso:
Por supuesto, una demanda contra Intel. Concretamente ha recibido tres de Estados Unidos y posiblemente vengan más. Los tribunales de California, Indiana y Oregón han sido los primeros en actuar por acusaciones como fallo al revelar la existencia de vulnerabilidades a tiempo, ralentizar sus procesadores mediante las actualizaciones y fallar a la hora de proteger la seguridad de los usuarios.
Las acciones de Intel caen y eso también ha dejado en evidencia una acción que de no haber ocurrido, esto hubiese pasado más o menos inadvertida. Y es que el CEO de Intel ha vendido casi la mitad de sus acciones en un mes, justo antes de que se revelase el fallo de seguridad. Brian Krzanich se ha deshecho de sus acciones y aunque dicen desde la compañía que no tiene nada que ver con la noticia, podría hacer pensar que supuestamente ya conocían el problema y por eso actuó en consecuencia.
Aparecen nuevas arquitecturas afectadas por el problema, y a pesar de que no estén tan extendidas, sí que son importantes en servidores y supercomputadoras.
Los parches para arreglar los problemas están generando otros más allá del rendimiento. En Windows, por ejemplo, están habiendo problemas con algunos antivirus y se generan pantallazos azules por el conflicto. Así que se necesitan aplicaciones compatibles con el patch.
No solo están afectados los ordenadores y dispositivos móviles, también otros dispositivos como los autos inteligentes, sistemas industriales basados en los chips afectados, ciertos productos IoT, etc.
Aunque: «por el momento» los investigadores de seguridad no creen que estos fallos hayan sido aprovechados para realizar ataques, «al menos importantes».
Pero: un ingeniero especializado en JavaScript y WebAssembly ha afirmado que han realizado pruebas, y se confirma que se pueden realizar ataques basados en JavaScript a través de los navegadores que explotan estos fallos.
Desde la perspectiva común del usuario, estas cosas solo son instalaciones de parche de rutina, aparentemente «normales». Pero hay aspectos importantes que diferencian estos fallos y que muchos no son capaces de vislumbrar.
Como lo menciona Bruce Schneier, los ataques a nivel de hardware se volverán mucho más comunes. Buscar vulnerabilidades en los microprocesadores se volverá una tendencia entre los atacantes y los mismos investigadores han reconocido que ésta es un área inexplorada, de la cual se pueden aprovechar bastante.
Luego, este tipo de fallas requiere una coordinación mucho más compleja entre las compañías para solucionarlas. Por ejemplo, si Intel o AMD sacan un parche para Spectre, los vendors como Apple o Microsoft, aún deben «customizar» el parche antes de desplegarlo a sus usuarios finales. Como consecuencia, el proceso de corrección se hace realmente lento y la ventana de explotación mucho más amplia. Además no se puede saber con certeza qué impacto tendrá dicho patch en relación al desempeño de la máquina y sus aplicaciones contenidas, como lo habíamos apuntado.
Y por último tenemos el caso de aquellas vulnerabilidades que no pueden ser corregidas. Por mucho tiempo, la industria de la seguridad ha entrado en una especie de competencia contra las amenazas en las TI, resultando una especie de retroalimentación o bucle entre los mismos, parchando y descubriendo estas debilidades en los sistemas. Ahora ya hay al menos un caso donde ese esquema se ha roto totalmente. A veces es porque existen computadoras que no tienen un mecanismo de parchado, como las webcams, o diversos productos de IoT. Y otras como en este asunto, porque el componente (procesador) es tan crucial dentro del entorno, que intentar parcharlo implicaría matar todo el sistema.
Recordemos algo muy importante: ahora absolutamente todo en nuestras vidas, para bien o para mal, es una computadora. No solamente su laptop o su celular, sino su carro, su casa, sus dispositivos médicos, la infraestructura de una ciudad. Pensemos también que eso tiene hardware y es altamente vulnerable. Spectre y Meltdown vinieron a abrir la caja de Pandora para una nueva clase de amenazas, que no pueden ser «rectificadas» y que su manejo implica costos altísimos en muchos ámbitos.
Para concluir este tema que dará para mucho más de que hablar y analizar, ¿están ustedes afectados por este error que suena tan distante de sus labores cotidianas?
Sin suda, sí.