¿Habilitando la virtualización, abordando el riesgo de Bluepill?

6

El trasfondo de esta pregunta es la ambivalencia que asumo con la virtualización. También para comenzar directamente con claridad: el término bluepill debería ser aquí un marcador de posición para denotar "malware que utiliza la virtualización para ocultarse y fijarse en un sistema atacado ".

Mi pregunta es cómo debo lidiar con el riesgo de un bluepill cuando ¿Está habilitada la virtualización en mi computadora ? ¿Y más específico si hay una manera de habilitar la función vt-x de la CPU de Intels x86 / i64 compatible con hardware que aún me protegería de los ataques de bluepill? Para contrarrestar / abordar el riesgo de que no sea una respuesta 100% definida , consideraría que es un gran paso adelante (y un anser aceptado) la enumeración de un conjunto de hechos "reglas de mejores prácticas para habilitar vt-x y prevenir el malware de tipo bluepill" .

Esto podría incluir, por ejemplo, una sugerencia de una forma de detectar una infección por Bluepill. (es decir, usar eso durante las paradas / reinicios que bluepill necesitaría para almacenarse / conservarse y ser detectable en el disco duro)

La motivación para la pregunta es: En mi sistema, el procesador Intel iCore, la función vt-x cpu se puede habilitado y deshabilitado en el kernel .

  • deshabilitado: el ataque de bluepill es impracticable, pero no hay beneficios de seguridad basados en la virtualización
  • habilitado: posible ataque de bluepill, pero habilitados los beneficios de seguridad basados en la virtualización.

He revisado " The ¿Qué tan seguras son las máquinas virtuales realmente? ¿Falsa sensación de seguridad? ", que tiene no se le ha dado ninguna consideración al aspecto bluepill todavía. Por lo tanto, creo que esta pregunta puede enriquecer el tema de la virtualización-seguridad.

    
pregunta humanityANDpeace 06.04.2014 - 11:47
fuente

1 respuesta

2

Bluepill tiene dos aspectos: cómo ocurre la infección y si puedes detectarla una vez que sucedió.

El primer aspecto es el mismo que para todo el malware realmente. El aspecto novedoso de bluepill fue la afirmación "es indetectable".

Se realizó una extensa investigación al respecto, y se han diseñado varios métodos para la detección.

Debe tener en cuenta que, hasta el momento, no se observaron amenazas de Bluepill en su hábitat natural.

Detectar si el sistema operativo se está ejecutando dentro de una máquina virtual

Los primeros métodos publicados para la detección involucraron el tiempo. De una entrevista con Anthony Liguori :

  

La virtualización de hardware requiere una técnica conocida como "captura y   emulación". La idea es que el hardware atrape ciertas instrucciones.   y el VMM emula esas instrucciones de tal manera que hace que el   El software cree que se está ejecutando en una máquina virtual.

     

La emulación de software implica que estas instrucciones demoran mucho más   completa cuando se ejecuta bajo un VMM luego en hardware normal. Este hecho   es lo que se puede usar para detectar la presencia de una VMM.

     

Me acerqué a Rutkowska sobre esto y ella intentó abordarlo en   su prototipo ajustando uno de los relojes de los procesadores en cada salida.   Sin embargo, no hay nada que pueda sobre las fuentes de tiempo externas.   y ella ha sido admitida a esto en su blog.

     

Ella se refiere a esto como una debilidad teórica en su sistema pero yo   Asegúrate de que es bastante práctico explotar.

La autora original del concepto bluepill (Joanna Rutkowska) también publicó otro artículo (RedPill) que podría aprovecharse para detectar un rootkit de BluePill.

No pude encontrar el documento, pero encontré este excelente resumen :

 int swallow_redpill () {
   unsigned char m[2+4], rpill[] = "\x0f\x01\x0d\x00\x00\x00\x00\xc3";
   *((unsigned*)&rpill[3]) = (unsigned)m;
   ((void(*)())&rpill)();
   return (m[5]>0xd0) ? 1 : 0;
 }
     

El corazón de este código es en realidad la instrucción SIDT (codificada como   0F010D [addr]), que almacena el contenido del descriptor de interrupción   registro de tabla (IDTR) en el operando de destino, que es en realidad un   ubicación de la memoria. Lo que es especial e interesante sobre SIDT   La instrucción es que se puede ejecutar en modo no privilegiado (ring3).   pero devuelve el contenido del registro sensible, utilizado internamente   por sistema operativo.

     

Porque solo hay un registro IDTR, pero hay al menos dos sistemas operativos   ejecutándose simultáneamente (es decir, el host y el SO huésped), VMM necesita   reubicar el IDTR del huésped en un lugar seguro, para que no   conflicto con el de un host. Desafortunadamente, VMM no puede saber si (y   cuándo) el proceso que se ejecuta en el SO huésped ejecuta la instrucción SIDT, ya que   no tiene privilegios (y no genera excepciones). Por lo tanto, la   El proceso obtiene la dirección reubicada de la tabla IDT. Se observó que   en VMWare, la dirección reubicada de IDT es la dirección 0xffXXXXXX,   Mientras que en Virtual PC es 0xe8XXXXXX. Esto fue probado en VMWare   Workstation 4 y Virtual PC 2004, ambos ejecutándose en el sistema operativo Windows XP.

Otro método se revisa en este artículo es de 2008:

  

La idea es interceptar el inicio de un hipervisor por otro hipervisor   (Llamemos a este último un Sistema Virtual de Prevención de Intrusiones, o   VIPS). Cuando se inicia cualquier hipervisor (malicioso o legítimo), se vuelve   Modo raíz de VM en. Este evento puede ser fácilmente interceptado por un VIPS. Asi que   ¿que sigue? Hay 2 formas de manejar este evento: bloqueando un   hipervisor completamente, o permitir que funcione a través de la emulación.

     

La primera forma consiste en emular una PC con la función HVT desactivada en   BIOS. Esto bloqueará el funcionamiento de un rootkit HVT.

     

La segunda forma consiste en permitir que un hipervisor funcione a través de   Virtualización de hardware emulado (o anidamiento). Esto debe hacerse para   software de virtualización legítimo.

     

En ambos casos (bloqueando o emulando), un VIPS intercepta un hipervisor   En el momento trata de empezar. VIPS puede leer el cuerpo del hipervisor   y analizarlo. Se puede mostrar un mensaje de notificación.

¿Es esto realmente una amenaza

Luego están los aspectos prácticos del ataque a considerar.

Un rootpit de bluepill necesita implementar xen o algo similarmente complejo, lo cual es un gran esfuerzo. Dado que realmente no hay garantía de que no se detectará ni se bloqueará de todos modos, los atacantes elegirán una ruta más fácil que sea la de los rootkits clásicos.

Creo que esto es parte de la razón por la que los rootkits de Bluepill no se han visto en la naturaleza.

    
respondido por el GnP 24.08.2016 - 17:44
fuente

Lea otras preguntas en las etiquetas