¿Los entornos virtualizados son vulnerables al ataque de Hammeril?

12

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?
pregunta WhiteWinterWolf 22.06.2016 - 11:58
fuente

3 respuestas

3

Depende de tu adversario, aunque diré que no.

En este momento, no hay vulnerabilidades conocidas para este vector de ataque. Por lo tanto, si tus adversarios son niños de escritura, entonces estás a salvo.

Será una caja de bombones (sin saber lo que podrías obtener), por lo tanto, un ataque inútil:

  • Es probable que una vulnerabilidad le permita a alguien leer o modificar una fila diferente, pero no saber qué información es la que la hace casi inútil, eliminando así a casi cualquier adversario.
  • La capa HV puede volver a mapear o incluso intercambiar memoria en cualquier momento
  • El HV puede tener una docena o un centenar de máquinas virtuales diferentes, no hay forma de apuntar a una.
  • El HV podría hacer algo como VMotion y moverlo a un host de hardware diferente
  • Incluso hacer Row Hammer en la misma máquina virtual para obtener privilegios elevados está sujeto a lo anterior, lo que lo hace impredecible.

Cuando su amenaza / adversario tiene financiamiento ilimitado y se dirige específicamente a usted, todas las apuestas están canceladas, aunque es probable que busquen un camino más fácil hacia el medio ambiente, incluidos los ataques físicos.

Dada la cantidad de vulnerabilidades de 0 días, incluso las de los hipervisores, Row hammer parece un poco inútil.

    
respondido por el MikeP 22.07.2016 - 23:52
fuente
1

Creo que esto debe dividirse en preguntas más pequeñas que puedan responderse razonablemente.

¿Puede una VM tener acceso repetidamente a la misma dirección de memoria lo suficientemente rápido como para activar el efecto de remate de fila?

No veo ninguna razón por la que eso sería imposible. Es ciertamente posible que algo sobre el entorno virtualizado pueda terminar interfiriendo con ese proceso. Un entorno virtualizado podría, en teoría, monitorear ese tipo de patrón de acceso e intentar bloquearlo, pero sospecho que la sobrecarga sería bastante mala y tendría un impacto negativo en el rendimiento. No sé de ninguna mano que realmente implementa esto. También es ciertamente posible que pueda interferir con el proceso accidentalmente. Como mencionó MikeP, simplemente podría suceder que se vuelva a asignar la memoria en medio del ataque o que desencadene una migración a otro servidor en medio del ataque o simplemente que se aplace la VM para permitir que se ejecute otra VM. Asumiría que la VM intentaría evitar la reasignación de la memoria que está siendo muy utilizada, ya que probablemente tendría un impacto negativo en el rendimiento, pero la migración de la VM podría activarse si el entorno virtual considera el ataque de la fila como una presión de memoria y está intentando "Arregla eso.

La siguiente pregunta es si puedes obtener un poco para voltear, ¿puedes usarlo para lograr algo?

OMI esto se vuelve mucho más complicado. El entorno virtualizado agrega al menos una capa adicional de traducción de direcciones que hace que la identificación de un objetivo de remate de fila y ese objetivo pueda cambiar en cualquier momento. También puede ocultar información sobre la disposición física subyacente necesaria para identificar correctamente un objetivo. Creo que estos desafíos además de los desafíos potenciales, incluso al desencadenar la inversión de bits, hacen que esto sea poco práctico y, probablemente, imposibiliten la elaboración de una explotación confiable. Es mucho más probable que esencialmente cree un ataque DoS al bloquear una máquina virtual o todo el entorno virtual que una escalada de privilegios confiable.

    
respondido por el Evan Steinbrenner 23.07.2016 - 00:19
fuente
0

El éxito teórico de un Row Hammer Attack se da en su escenario. Pero las posibilidades prácticas pueden ser limitadas o la complejidad de la cadena de ataque es muy alta. Esto no es una limitación de Row Hammer per se , es una dependencia del escenario del mundo real. Un atacante en un Invitado tendría que afectar al Host para obtener privilegios elevados o para afectar a otro Invitado directamente. Esto podría ser posible en algunas circunstancias, pero requeriría una muy buena preparación, mucho tiempo e incluso algo de suerte.

    
respondido por el Marc Ruef 26.06.2016 - 09:01
fuente

Lea otras preguntas en las etiquetas