Row Hammer es un exploit que se basa en defectos de RAM para obtener acceso sin restricciones al contenido de RAM, que permite leer / escriba memoria protegida de otro modo y obtenga privilegios más altos en el sistema.
Para funcionar, este exploit accederá a una fila de memoria legítimamente accesible en un bucle a una velocidad muy alta y sin caché, y la frecuencia de esta operación inducirá un cambio en el valor de la fila restringida adyacente.
Wikipedia describe el exploit como sigue:
Al combinar los errores de perturbación con la pulverización de memoria, este exploit es capaz de modificar las entradas de la tabla de páginas (PTE) utilizadas por el Sistema de memoria virtual para mapear direcciones virtuales a físicas. Direcciones, lo que da como resultado que el exploit obtenga memoria no restringida acceso.
Según mi entendimiento, aunque esta vulnerabilidad puede proporcionarle al atacante un privilegio de superusuario en un sistema invitado (no hablo de "raíz", ya que este ataque no depende del sistema operativo), me pregunto si puede realmente permitirle escapar del huésped virtualizado y llegar a otros huéspedes o al propio sistema host.
- Si bien este ataque se describe como "acceso sin restricciones a toda la memoria física instalada en una computadora" , esta memoria aún debe ser direccionable por el proceso malicioso. Según tengo entendido, la memoria "física" virtualizada de un invitado se asigna a una región de la memoria física real y existen varias medidas, ambas en el hardware (CPU con conjuntos de instrucciones de virutalización asistida por hardware y las capas de software (el software de virtualización), para garantizar que no pueda direccionar la memoria fuera de esta área.
- Para acceder a áreas de memoria normalmente restringidas, el proceso debe modificar las PTE. Dentro del invitado, solo las PTE del sistema invitado son accesibles, no las PTE del host.
- Hay un problema de gallina y huevo: para evitar el acceso a la memoria impuesto por el software de virtualización, el proceso debe alterar su memoria. Sin embargo, dado que el software de virtualización se está ejecutando en el sistema host, el proceso malintencionado debe poder abordar la memoria del sistema host para hacer esto.
- La definición de Wikipedia menciona la modificación de las PTE (Entradas en la tabla de páginas). Las CPU modernas proporcionan una conversión de direcciones de segundo nivel ( SLAT , también conocida como paginación anidada para aislar las tablas de páginas de los invitados en el nivel de hardware). ¿Podrían evitarse mis suposiciones anteriores, mejoraría esto la resistencia de los sistemas virtualizados contra Row Hammer?