Sandbox en Windows

Sandboxing es una nueva herramienta ligera en Windows que le permite ejecutar aplicaciones en un entorno seguro y aislado.

¿Alguna vez se ha encontrado en una situación en la que necesita ejecutar algún tipo de programa, pero no está completamente seguro de la fuente de su origen? O otro ejemplo: la necesidad de verificar algo en una versión "limpia" de Windows. En todos estos casos, antes solo había una salida: instalar el sistema operativo en una máquina física o virtual separada y realizar el experimento necesario. Pero este ya no es el caso.

Microsoft ha desarrollado un nuevo mecanismo llamado Sandbox (ing. Windows Sandbox). Este es un entorno temporal aislado en el que puede ejecutar software sospechoso sin correr el riesgo de dañar su PC. Cualquier software instalado en Sandbox permanece solo en Sandbox y no puede interactuar con el sistema operativo principal. Tan pronto como cierre el Sandbox, todo su contenido se destruirá irremediablemente.

Estas son las principales características de Sandbox:

  • Esto es parte del sistema operativo Windows. Si tiene Windows 10 Pro o Enterprise, ya puede comenzar a usarlo.
  • De una pizarra limpia. Cada vez que inicias Sandbox, obtienes el mismo entorno limpio e inmutable. Exactamente cuál era su sistema operativo justo después de que se instaló.
  • No hay rastro. Cuando cierra el Sandbox, todas las aplicaciones instaladas en él, todos los archivos creados allí se destruyen. Cerraron el Sandbox: no había rastros de su existencia.
  • Seguridad Utiliza la virtualización de hardware, que utiliza un hipervisor para ejecutar un núcleo de sistema operativo separado y lo aísla de su sistema operativo principal
  • Eficiencia Utiliza un programador de tareas integrado, gestión de memoria inteligente, GPU virtual.

Requisitos del sistema


  • Windows 10 Pro o Enterprise, compilación 18305 o superior
  • Arquitectura AMD64
  • Virtualización habilitada por BIOS
  • Mínimo 4 GB (se recomiendan 8 GB) de RAM
  • Mínimo 1 GB de espacio libre en disco (se recomienda SSD)
  • Procesador de doble núcleo (se recomienda 4 con soporte de hiperprocesamiento)

Inicio rápido


1. Instale Windows 10 Pro o Enterprise build 18305 o superior

2. Active la virtualización:

  • Si trabaja en una máquina física, hágalo en el BIOS
  • Si está trabajando en una máquina virtual, use el siguiente comando de PowerShell:

    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true 

3. Abra (a través del Panel de control) una lista de componentes de Windows instalados y active el Sandbox en él. Haz clic en Aceptar. Si ve una solicitud para reiniciar la computadora, confírmela.

imagen

4. Inicie el Sandbox desde el menú Inicio. Permitir la elevación de derechos para su proceso.

5. Copie (a través del portapapeles) en el Sandbox el binario que desea ejecutar.

6. Inicie el binario en el Sandbox. Si se trata de un instalador, realice el procedimiento de instalación y ejecute la aplicación instalada.

7. Use la aplicación según lo previsto.

8. Cuando termine, simplemente cierre el Sandbox. Todos sus contenidos serán eliminados.

9. Opcional: puede asegurarse de que nada ha cambiado en su sistema operativo principal.

imagen

¿Qué hay debajo del capó del Sandbox?


Windows Sandbox se basa en una tecnología llamada Contenedores de Windows. Los contenedores se han desarrollado (y se han utilizado durante mucho tiempo) para trabajar en la nube. Microsoft ya ha tomado una tecnología bastante madura y probada y la finalizó para los usuarios de Windows de escritorio.

Entre las adaptaciones clave se pueden observar:

Imagen generada dinámicamente


El sandbox es, aunque ligero, pero sigue siendo una máquina virtual. Y, como cualquier máquina virtual, necesita una imagen desde la que pueda arrancar. La característica más importante de Sandbox es que no necesita descargar o crear esta imagen desde algún lugar. Se creará sobre la marcha, a partir de los archivos de su sistema operativo Windows actual.

Siempre queremos obtener el mismo entorno "limpio" para Sandbox. Pero hay un problema: algunos archivos del sistema pueden cambiar. La solución fue crear una "imagen generada dinámicamente": para los archivos modificados, se incluirán sus versiones originales, pero los archivos inmutables no se incluirán físicamente en esta imagen. En su lugar, utilizarán enlaces a archivos reales en el disco. Como ha demostrado la práctica, la mayoría de los archivos de la imagen serán dichos enlaces. Solo una pequeña parte de ellos (aproximadamente 100 MB) se incluirá en la imagen por completo; este será su tamaño. Además, cuando no usa Sandbox, estos archivos se almacenan en forma comprimida y ocupan aproximadamente 25 MB. Cuando inicia el Sandbox, se implementan en la "imagen dinámica" de aproximadamente 100 MB de tamaño.

imagen

Gestión inteligente de la memoria


La gestión de la memoria sandbox es otra mejora importante. El hipervisor le permite ejecutar varias máquinas virtuales en la misma máquina física y esto, en general, funciona bien en los servidores. Pero, a diferencia de los servidores, los recursos de las máquinas de usuario comunes son mucho más limitados. Para lograr un nivel aceptable de rendimiento, Microsoft ha desarrollado un modo de memoria especial en el que el sistema operativo principal y el Sandbox pueden usar las mismas páginas de memoria en algunos casos.

De hecho: dado que el sistema operativo principal y el Sandbox ejecutan la misma imagen del sistema operativo, la mayoría de los archivos del sistema en ellos serán los mismos, lo que significa que no tiene sentido cargar las mismas bibliotecas en la memoria dos veces. Puede hacer esto una vez en el sistema operativo principal, y cuando se necesita el mismo archivo en la memoria de Sandbox, puede darle un enlace a la misma página. Por supuesto, se requieren algunas medidas adicionales para garantizar la seguridad de este enfoque, pero Microsoft se ha ocupado de esto.

imagen

Planificador integrado


En el caso de utilizar máquinas virtuales convencionales, el hipervisor controla el funcionamiento de los procesadores virtuales que se ejecutan en ellas. Se desarrolló una nueva tecnología para Sandbox, llamada "programador integrado", que permite que el sistema operativo principal decida cuándo y cuántos recursos asignar al Sandbox. Funciona así: los procesadores de Sandbox virtuales funcionan como hilos dentro del proceso de Sandbox. Como resultado, tienen los mismos "derechos" que los otros hilos en su sistema operativo principal. Si, por ejemplo, algunos subprocesos de alta prioridad funcionan para usted, entonces el Sandbox no les tomará mucho tiempo completar sus tareas, que tienen una prioridad normal. Esto le permitirá usar el Sandbox sin ralentizar el funcionamiento de las aplicaciones críticas y mantener una capacidad de respuesta suficiente de la interfaz de usuario del sistema operativo principal, similar a cómo funciona Linux KVM .

La tarea principal era hacer del Sandbox, por un lado, solo una aplicación ordinaria, y por otro, para garantizar su aislamiento al nivel de las máquinas virtuales clásicas.

Usar instantáneas


Como se mencionó anteriormente, el Sandbox usa un hipervisor. Básicamente ejecutamos una copia de Windows dentro de otra. Y esto significa que llevará algún tiempo cargarlo. Podemos gastarlo cada vez que inicie Sandbox, o hacerlo solo una vez, después de guardar después de cargar todo el estado del sistema operativo virtual (archivos modificados, memoria, registros del procesador) en el disco. Después de eso, podremos iniciar el Sandbox desde esta imagen, guardando al mismo tiempo su hora de inicio.

Virtualización de gráficos


La virtualización de gráficos basada en hardware es la clave para una interfaz de usuario rápida y fluida, especialmente para aplicaciones "pesadas" en términos de aplicaciones gráficas. Sin embargo, las máquinas virtuales clásicas están inicialmente limitadas en su capacidad de usar directamente todos los recursos de la GPU. Y aquí las herramientas de virtualización de gráficos juegan un papel importante que permite superar este problema y, de alguna forma, usar la aceleración de hardware en un entorno virtual. Un ejemplo de dicha tecnología podría ser, por ejemplo, Microsoft RemoteFX .

Además, Microsoft trabajó activamente con los fabricantes de sistemas gráficos y controladores para integrar las capacidades de virtualización de gráficos directamente en DirectX y WDDM (un modelo de controlador en Windows).

Como resultado, los gráficos en el Sandbox funcionan de la siguiente manera:

  • Una aplicación en Sandbox utiliza funciones gráficas de la manera habitual, sin saber quién y cómo las realizará.
  • El subsistema de gráficos Sandbox, después de haber recibido los comandos de representación de gráficos, los transfiere al sistema operativo principal
  • El sistema operativo principal, después de haber recibido los comandos de representación gráfica, los percibe como si vinieran de una aplicación lanzada localmente y, en consecuencia, los ejecuta, asignando y administrando los recursos necesarios.

Este proceso se puede representar de la siguiente manera:

imagen

Esto permite que el entorno virtual obtenga acceso completo a gráficos acelerados por hardware, lo que proporciona un aumento del rendimiento y algunos recursos (por ejemplo, energía de la batería para computadoras portátiles), debido al hecho de que los cálculos pesados ​​en la CPU ya no se utilizan para representar gráficos.

Uso de la batería


El sandbox tiene acceso a información sobre la carga de la batería y puede optimizar su trabajo para guardarlo.

Revisiones e informes de errores


Puede haber errores en cualquier tecnología nueva. Microsoft solicita enviar mensajes sobre ellos y sugerencias de nuevas características a través de Feedback Hub .

Source: https://habr.com/ru/post/es433706/


All Articles