PACMAN es un nuevo ataque de hardware que puede eludir la autenticación de puntero (PAC) en la CPU Apple M1 . Presentamos las siguientes contribuciones:
- Una nueva forma de pensar sobre la composición de modelos de amenazas en la era de Spectre.
- Detalles de ingeniería inversa de la jerarquía de memoria M1.
- Un ataque de hardware para falsificar los PAC del kernel desde el espacio de usuario en M1 .
PACMAN es lo que obtiene cuando combina una mitigación de hardware para ataques de software con canales laterales de microarquitectura. «Creemos que la idea central de PACMAN será aplicable a mucho más que solo PAC«.
Aprovecha los ataques de ejecución especulativa para eludir un importante mecanismo de protección de la memoria, la autenticación de puntero ARM, una función de seguridad que se utiliza para hacer cumplir la integridad del puntero.
Joseph Ravichandran, Weon Taek Na, Jay Lang y Mengjia Yan, investigadores del MIT.
La vulnerabilidad tiene su origen en los códigos de autenticación de punteros PAC, una línea de defensa introducida en la arquitectura arm64e que tiene como objetivo detectar y proteger contra cambios inesperados en los punteros , objetos que hacen referencia a una ubicación de dirección en la memoria. Los PAC tienen como objetivo resolver las vulnerabilidades de corrupción de la memoria, que a menudo se aprovechan al sobrescribir datos de control en la memoria, para redirigir la ejecución del código a una ubicación arbitraria controlada por el atacante.
Lo que es más preocupante es que si bien los mecanismos de hardware utilizados por PACMAN no se pueden parchear con funciones de software, los errores de corrupción de la memoria pueden serlo.
Joseph Ravichandran, Weon Taek Na, Jay Lang y Mengjia Yan, investigadores del MIT.
La vulnerabilidad se hace eco de otra amenaza irreparable denominada M1RACLES (CVE-2021-30747) que salió a la luz el año pasado, que permite que dos o más aplicaciones maliciosas instaladas en la máquina creen un canal encubierto para intercambiar datos entre ellos, sin usar memoria, sockets, archivos, o cualquier otra característica típica del sistema operativo.
Recomendamos la lectura de la publicación donde se ahonda en el impacto y la profundidad del ataque
Más información:
PACMAN: Attacking ARM Pointer Authentication with
Speculative Execution https://pacmanattack.com/paper.pdf
The PACMAN https://pacmanattack.com/
ARM pointer authentication https://lwn.net/Articles/718888/
Address space layout randomization ASLR https://en.wikipedia.org/wiki/Address_space_layout_randomization