Vulnerabilidad GhostWrite Afecta a CPU RISC-V T-Head XuanTie C910

La vulnerabilidad GhostWrite permite a atacantes no privilegiados leer y escribir en cualquier parte de la memoria del ordenador y controlar dispositivos periféricos como tarjetas de red. Esta falla hace que las características de seguridad de la CPU sean ineficaces y no se puede corregir sin deshabilitar aproximadamente la mitad de la funcionalidad de la CPU.

Aislamiento de Procesos e Instrucciones de Ensamblaje

Los sistemas operativos modernos trabajan junto con la CPU para mantener cada proceso aislado de los demás. Para ello, el sistema operativo divide la memoria física en espacios de memoria virtual separados, uno para cada proceso. Esto asegura que cada proceso solo pueda acceder a su propia memoria virtual y no interfiera con otros procesos.

Los programas se ejecutan en la CPU mediante instrucciones que van desde tareas simples, como sumar dos números, hasta operaciones más complejas. Normalmente, estas instrucciones están documentadas en los manuales del proveedor de la CPU. Sin embargo, algunas veces, las CPU también contienen instrucciones no documentadas.

RISC-V: Una Nueva Arquitectura de CPU

El comportamiento de una CPU está definido por un conjunto de instrucciones (ISA), que especifica las instrucciones de ensamblaje válidas. Si dos CPUs siguen el mismo ISA, pueden ejecutar los mismos programas.

Hoy en día, el mercado de CPU está dominado principalmente por dos especificaciones ISA: x86 y ARM. Estas están controladas por unas pocas empresas, lo que limita cómo otras compañías pueden diseñar sus productos. Usar o modificar estas ISAs requiere licencias costosas y está restringido a un grupo selecto de socios.

RISC-V es una nueva ISA abierta que cualquiera puede usar y a la que puede contribuir sin restricciones. Esta apertura ha llevado a un ecosistema floreciente, con continuas mejoras de software y nuevo hardware basado en RISC-V emergiendo frecuentemente.

GhostWrite: Escritura de Memoria Física Arbitraria

GhostWrite es un error en la T-Head XuanTie C910, una de las CPU RISC-V más rápidas disponibles. A diferencia de los ataques de canal lateral o de ejecución transitoria, GhostWrite es un error directo de la CPU. Esta CPU tiene instrucciones defectuosas en su extensión vectorial, un complemento al ISA RISC-V diseñado para manejar valores de datos más grandes que el ISA base.

Estas instrucciones defectuosas trabajan directamente con la memoria física en lugar de la memoria virtual, eludiendo el aislamiento de procesos que normalmente impone el sistema operativo y el hardware. Este error está incrustado en el hardware, lo que significa que no se puede corregir con actualizaciones de software.

Un atacante no privilegiado, como un usuario normal, puede usar estas instrucciones para escribir en cualquier ubicación de memoria, eludiendo completamente las características de seguridad y aislamiento, dando al atacante acceso completo y sin restricciones al dispositivo. La única forma de mitigar este problema es deshabilitar toda la funcionalidad vectorial, lo que desactiva aproximadamente el 50% del conjunto de instrucciones, impactando gravemente en el rendimiento y las capacidades de la CPU.

Implicaciones de Seguridad

Según nuestro conocimiento, solo la CPU T-Head XuanTie C910 en el SoC TH1520 está afectada por GhostWrite. Aun así, esta vulnerabilidad impacta una amplia gama de dispositivos, incluyendo computadoras personales, laptops, contenedores y máquinas virtuales en servidores en la nube. Por lo tanto, cualquier cliente o proveedor que use máquinas con estos procesadores está en riesgo.

Dispositivos vulnerables incluyen:

  • Scaleway Elastic Metal RV1, instancias en la nube bare-metal C910
  • Lichee Cluster 4A, clúster de computación
  • Lichee Book 4A, laptop
  • Lichee Console 4A, consola de juegos
  • Lichee Pocket 4A, consola de juegos portátil
  • Sipeed Lichee Pi 4A, computadora de placa única (SBC)
  • Milk-V Meles, SBC
  • BeagleV-Ahead, SBC

Para protegerse contra esta vulnerabilidad, se puede deshabilitar completamente la extensión vectorial vulnerable.

Descubrimiento Automático de Errores: Fuzz Testing Diferencial de CPU

Descubrimos GhostWrite analizando tanto las instrucciones documentadas como las no documentadas utilizando un método llamado fuzz testing diferencial para CPUs. Este método consiste en generar pequeños programas, ejecutarlos en diferentes CPUs y comparar los resultados. Si los resultados difieren entre CPUs, sugiere que una de las CPUs podría tener un problema.

Identificamos GhostWrite cuando la CPU T-Head XuanTie C910 mostró un comportamiento inusual con una instrucción de almacenamiento vectorial codificada ilegalmente. Mientras que otras CPUs generaron excepciones de falta de página o se negaron a ejecutar la instrucción, la C910 sí la ejecutó.

Los Investigadores

  • Fabian Thomas (CISPA Helmholtz Center for Information Security)
  • Lorenz Hetterich (CISPA Helmholtz Center for Information Security)
  • Ruiyi Zhang (CISPA Helmholtz Center for Information Security)
  • Daniel Weber (CISPA Helmholtz Center for Information Security)
  • Lukas Gerlach (CISPA Helmholtz Center for Information Security)
  • Michael Schwarz (CISPA Helmholtz Center for Information Security)

Reconocimientos

Este trabajo fue apoyado en parte por el Programa de Seguridad de Hardware del Semiconductor Research Corporation (SRC) y por un premio de Google Research Scholar. Las opiniones, hallazgos, conclusiones o recomendaciones expresadas en este artículo son de los autores y no reflejan necesariamente las opiniones de las partes financiadoras.

Más información en GhostWrite Attack

Scroll al inicio