Investigadores de la Universidad de California en San Diego han presentado un nuevo método de ataque a las microestructuras de los procesadores Intel, aplicable, entre otros, a las CPU basadas en las microarquitecturas Raptor Lake y Alder Lake. El ataque, que ha recibido el nombre en clave Indirector, permite modificar el curso de la ejecución especulativa de instrucciones en otros procesos y en otros niveles de privilegio (por ejemplo, en el núcleo o en otra máquina virtual) que se ejecutan en un mismo hilo de CPU con el código del atacante. Como demostración del funcionamiento del método, se ha preparado un prototipo de exploit que permite determinar la disposición de las direcciones de memoria para eludir el mecanismo de protección ASLR (Randomización de la Disposición del Espacio de Direcciones). Además, bajo la licencia MIT se ha publicado una herramienta diseñada para el análisis y la ingeniería inversa de la lógica microarquitectónica de la CPU.
Se han propuesto dos métodos para organizar el ataque. El primer método se basa en la alteración del contenido del búfer de predicción de saltos indirectos IBP (Indirect Branch Predictor), utilizado para predecir saltos indirectos en condiciones donde la dirección o el desplazamiento para el salto aún no se conocen y se calculan en las instrucciones que preceden a la instrucción de salto. El segundo método se ocupa del búfer de predicción de saltos BTB (Branch Target Buffer), que contiene información sobre los saltos recientes.


Las vulnerabilidades identificadas permiten al atacante determinar el contenido de las entradas en los búferes IBP y BTB, que contienen las direcciones de los saltos utilizados en procesos externos, así como realizar una sustitución de una dirección de salto arbitraria en las tablas de datos de los búferes. Como resultado, el atacante puede redirigir el flujo de ejecución de un proceso externo a una dirección deseada en la memoria durante la ejecución especulativa de instrucciones. Después de determinar la predicción incorrecta, el resultado de la ejecución especulativa se descartará, pero las direcciones y los datos leídos de la memoria durante la ejecución especulativa se mantendrán en la caché y podrán ser extraídos utilizando uno de los métodos para determinar el contenido de la caché basado en el análisis de la variación en el tiempo de acceso a datos en caché frente a no en caché. La determinación de las direcciones exactas de los saltos indirectos, en la práctica, podría utilizarse para eludir el mecanismo de protección ASLR.
Fuente: opennet.ru
