¿Qué tan protegidos están los archivos dentro de una máquina virtual encriptada en ejecución en un hipervisor / host posiblemente no seguro?

3

Tengo un conjunto de archivos de código fuente (C # compilado) a los que deseo evitar el acceso de lectura directa. El programa se ejecutará en la máquina virtual. Estaba pensando en almacenarlos en una VM de disco duro cifrada, la VM usaría estos archivos junto con un punto final HTTP / TCP.

Alguna información adicional:

  • Los archivos que deben protegerse son archivos C # 'IL' compilados (creo que se llama código de bytes).
  • El cliente ejecutará la máquina virtual en su propio entorno de host / hipervisor.

El cifrado sería un cifrado de disco (en relación con la máquina virtual), por lo que se toma lo siguiente de enlace

  

El cifrado del disco garantiza que los archivos siempre se almacenen en el disco en una   forma encriptada. Los archivos solo están disponibles para el operador.   Sistema y aplicaciones en forma legible mientras el sistema se está ejecutando.   y desbloqueado por un usuario de confianza. Una persona no autorizada que mira el   el contenido del disco directamente, solo encontrará datos confusos de apariencia aleatoria   en lugar de los archivos reales.

¿Esto significaría que un host de VM no podría ver los archivos?

También buscaría evitar cualquier otro medio de acceso además del punto final HTTP / TCP (por lo que eliminaría cualquier indicador de inicio de sesión, etc., posiblemente incluso eliminaría todo el shell si fuera posible).

No estoy demasiado preocupado por los archivos que aparecen en 'memoria', ya que creo que sería una tarea difícil revertir la ingeniería de nuevo en archivos.

Puedo apreciar que esto no es 100% seguro, solo estoy tratando de hacer que el acceso al código fuente sea lo más difícil posible (ya estoy usando ofuscación de código fuente).

El objetivo principal aquí es evitar el acceso de lectura / ingeniería inversa del código fuente de la aplicación.

Supongo que un resumen de lo anterior se puede expresar de la siguiente manera: ¿Es suficiente lo anterior para crear un blob binario 'seguro' que es una imagen de máquina virtual y solo el punto de entrada / interfaz sería un punto final HTTP?

    
pregunta Chris Stryczynski 15.03.2018 - 19:08
fuente

1 respuesta

2

No está claro de qué tipo de atacante está tratando de proteger. Pero para hacer algunas conjeturas, ¿qué podría ser?

  • Si el atacante se mete dentro de su máquina virtual, todos los archivos están en claro porque se descifran de forma transparente cuando se leen.
  • Si el atacante es root en el host de la máquina virtual, podría capturar las credenciales que debe ingresar al iniciar la máquina virtual si la clave de cifrado del disco está protegida por contraseña. Si la clave de cifrado no está protegida y reside en el sistema donde se está ejecutando la VM, será aún más fácil para la raíz en el sistema obtenerla. Una vez que el atacante tenga acceso a las credenciales, podrá descifrar el disco.
  • Si el atacante no es root en el host de VM, entonces no debería poder leer su imagen de VM en primer lugar, es decir, los permisos de archivo adecuados deberían ser una protección suficiente.

En otras palabras: no creo que gane mucho con el método propuesto.

    
respondido por el Steffen Ullrich 15.03.2018 - 19:29
fuente

Lea otras preguntas en las etiquetas