Los investigadores del Centro Helmholtz de Seguridad Informática (CISPA) publicaron los resultados de un estudio sobre la seguridad de los procesadores basados en la arquitectura RISC-V y revelaron información sobre una vulnerabilidad denominada GhostWrite. Esta vulnerabilidad afecta a los procesadores RISC-V XuanTie C910, fabricados por la empresa china T-Head (una subsidiaria de Alibaba) y desarrollados como proyectos de código abierto. La vulnerabilidad permite a un atacante con acceso limitado y no privilegiado al sistema lograr leer y escribir en cualquier área de la memoria física, así como acceder al control de dispositivos periféricos, como las tarjetas de red que utilizan MMIO (Entrada/Salida Mapeada en Memoria).
La vulnerabilidad es causada por deficiencias en la arquitectura del procesador relacionadas con el aislamiento de las instrucciones del procesador agregadas por el fabricante, que amplían el conjunto de instrucciones RISC-V y permiten el acceso directo a la DRAM, eludiendo los mecanismos de memoria virtual. El uso de algunas de estas instrucciones extendidas directamente con la memoria física en lugar de con la memoria virtual permite evadir el aislamiento de memoria entre procesos.
La técnica de ataque preparada es 100% reproducible y requiere que se ejecute su código en solo unos pocos microsegundos. Los métodos de aislamiento de software, como los contenedores y los entornos sandbox, no impiden la explotación de la vulnerabilidad. Para bloquear la vulnerabilidad, solo ayuda la desactivación completa del soporte para las extensiones vectoriales, lo que conduce a una reducción del 33% en el rendimiento en las pruebas rvv-bench (en el resumen del informe se indica el 77%, mientras que en la página resumida se menciona el 33%, y en los detalles se menciona una reducción del 33% en el rendimiento de memcpy y del 8% en memset), además de reducir aproximadamente a la mitad el conjunto de instrucciones del procesador disponible para las aplicaciones.
La CPU XuanTie C910 es uno de los chips RISC-V más potentes disponibles en el mercado y ya se utiliza activamente en como en entornos de nube públicos o privados. sistemas en la nube y laptops. Por ejemplo, el problema se manifiesta en los servidores Scaleway Elastic Metal RV1, en los clústeres Lichee Cluster 4A, en la laptop Lichee Book 4A, en la consola de juegos Lichee Console 4A, en la computadora portátil Lichee Pocket 4A, en las PC de placa única Sipeed Lichee Pi 4A, Milk-V Meles y BeagleV-Ahead.
Como ejemplo, los investigadores han preparado un exploit que permite a un usuario no privilegiado obtener derechos de root en Linux. El exploit modifica el contenido de la tabla de páginas en la memoria utilizada para la traducción de direcciones virtuales a físicas, para obtener direcciones virtuales asociadas a cualquier dirección física. También se ha preparado un ejemplo de exploit para leer el contenido de la memoria del núcleo y otros procesos, lo que permite extraer las claves de cifrado y contraseñas almacenadas en la memoria.
Además, los investigadores han identificado dos vulnerabilidades arquitectónicas menos peligrosas: una afecta a los procesadores T-Head XuanTie C906 y la otra a T-Head XuanTie C908. Ambas vulnerabilidades están limitadas a un ataque de denegación de servicio debido a la detención del CPU. Las vulnerabilidades pueden representar un peligro para las plataformas en la nube construidas sobre chips T-Head XuanTie, ya que al tener acceso para ejecutar código en el entorno de la nube, es posible detener la operación de otros usuarios que son atendidos en el mismo. servidor.
Los problemas fueron identificados utilizando el marco RISCVuzz, diseñado para realizar pruebas de fuzzing en CPU. El marco identifica diferencias en la implementación de las mismas instrucciones extendidas en diferentes CPU, bajo el supuesto de que, debido a la falta de un registro único para las extensiones del conjunto de instrucciones RISC-V, las instrucciones codificadas de manera idéntica en chips de diferentes fabricantes pueden llevar a la ejecución de diferentes acciones. La verificación consistió en comparar el comportamiento al procesar instrucciones de CPU en diferentes CPU RISC-V y analizar posibles vulnerabilidades en situaciones donde se observaba divergencia en el comportamiento.
Fuente: opennet.ru
