Foreshadow es un tipo de ataque de ejecución especulativa que pone en sus miras los procesadores dotados con tecnología Software Guard Extensions o SGX de Intel. Estas extensiones permiten crear entornos seguros para proteger la confidencialidad del software alojado en una memoria caché de un procesador, evitando así su interceptación mediante ataques como Spectre, pero no resulta el menor de los problemas para Foreshadow o L1 Terminal Fault (L1TF), que es como prefiere llamarlo Intel.
Como buen ataque especulativo, Foreshadow y sus variantes se aprovecha de la presencia de vulnerabilidades en la forma en la que (grosso modo) los procesadores conectan los comportamientos de sus arquitecturas y microarquitecturas, que presentan pequeñas diferencias. Puesto que puede haber diferencias en la forma en la que trabajan, los chips modernos "especulan" para averiguar la forma en la que un proceso se va a llevar a cabo, adelantándose para realizar las operaciones necesarias de forma más eficiente.
El funcionamiento de Foreshadow es considerablemente más complejo que el de sus predecesores, pero el daño es igual de grave. Un atacante puede utilizar sus variantes para acceder a la información protegida en el enclave seguro SGX, así como a la memoria del kernel del sistema operativo y la del SMM. Con estos datos usuario malicioso tiene básicamente el sistema rendido a sus pies. Y puesto que se trata de un fallo residente en el propio hardware, no es posible hablar de soluciones absolutas, sino de estrategias de mitigación.
A diferencia de lo que sucedió con la debacle de Meltdown y Spectre la revelación de Foreshadow/L1TF ha sido concertada con Intel, así que compañía ha tenido tiempo para elaborar una serie de parches del microcódigo que de hecho comenzaron a ser distribuidos hace varias semanas. Como sucedió con las vulnerabilidades anteriores, el sistema operativo también deberá ser actualizado; no basta con solo actualizar la UEFI/BIOS.
Según señala ArsTechnica, el mayor riesgo reside en los sistemas que utilizan hyperthreading y se acrecienta si hablamos de máquinas virtuales, puesto que unas pueden espiar a las otras. Para solucionarlo habría que desactivar el hyperthreading (que permite acceder a la caché de nivel 1 evitando el mecanismo de purgado introducido por los parches) o asegurarse de que las máquinas virtuales funcionen utilizando únicamente núcleos físicos no compartidos. Y ninguna de estas soluciones impide los ataques sobre el enclave SGX (realizados con la variante L1 Terminal Fault-SGX o CVE-2018-3615).