Windows上的沙箱

沙箱是Windows上的一种新的轻量级工具,可让您在安全,隔离的环境中运行应用程序。

您是否曾经遇到过需要运行某种程序但无法完全确定其来源的情况? 或另一个示例-需要在Windows的“干净”版本上进行检查。 在所有这些情况下,只有一种解决方法-将OS安装在单独的物理或虚拟机上并进行必要的实验。 但是,情况已不再如此。

Microsoft已经开发了一种称为Sandbox (英语:Sandbox)的新机制。 这是一个孤立的临时环境,您可以在其中运行可疑软件,而又不会危害到您的PC。 沙盒中安装的所有软件仅保留在沙盒中,并且无法与主操作系统进行交互。 关闭沙盒后,其所有内容都会被破坏而无法恢复。

以下是沙盒的主要功能:

  • 这是Windows操作系统的一部分。 如果您使用Windows 10 Pro或Enterprise,则可以开始使用它。
  • 从一块干净的石板上。 每次启动沙箱时,您将获得相同,干净,不变的环境。 完全是您的操作系统在安装后的状态。
  • 没有踪影。 关闭沙箱时,其中安装的所有应用程序,在其中创建的所有文件都将被销毁。 他们关闭了沙箱-没有任何痕迹。
  • 安全性 它使用硬件虚拟化,后者使用虚拟机监控程序运行单独的OS内核并将其与主OS隔离
  • 效率性 它使用集成的任务计划程序,智能内存管理和虚拟GPU。

系统要求


  • Windows 10 Pro或Enterprise,内部版本18305或更高版本
  • AMD64架构
  • BIOS启用的虚拟化
  • 最小4 GB(建议8 GB)RAM
  • 至少1 GB的可用磁盘空间(建议使用SSD)
  • 双核处理器(推荐4个具有超线程支持)

快速上手


1.安装Windows 10 Pro或Enterprise build 18305或更高版本

2.打开虚拟化:

  • 如果您在物理机上工作-在BIOS中进行操作
  • 如果您在虚拟机中工作,请使用以下PowerShell命令:

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

3. (通过控制面板)打开已安装Windows组件的列表,然后在其中启用沙箱。 单击确定。 如果看到重新启动计算机的请求-确认。

图片

4.从开始菜单启动沙箱。 允许提升她的程序的权限。

5. (通过剪贴板)将要运行的二进制文件复制到沙箱中。

6.在沙盒中启动二进制文件。 如果这是安装程序,请执行安装过程并运行已安装的应用程序。

7.按预期使用该应用程序。

8.完成后-只需关闭沙箱即可。 其所有内容将被删除。

9.可选-您可以确保主操作系统中没有任何更改。

图片

沙盒的底蕴是什么


Windows沙箱基于称为Windows容器的技术构建。 容器已被开发(并已长期使用)以在云中工作。 Microsoft已经采用了相当成熟和经过测试的技术,并将其最终确定为桌面Windows用户。

在主要的改编中可以注意到:

动态生成的图像


沙箱虽然轻巧,但仍然是虚拟机。 而且,像任何虚拟机一样,它需要一个可以启动的映像。 沙箱的最重要功能是您无需从某个地方下载或创建此映像。 它将根据当前Windows操作系统的文件动态创建。

我们始终希望为沙盒获得相同的“干净”环境。 但是有一个问题:某些系统文件可能会更改。 解决方案是创建一个“动态生成的图像”:对于修改后的文件,其原始版本将包含在其中,但不可变文件将不实际包含在该图像中。 相反,他们将使用指向磁盘上实际文件的链接。 如实践所示,图像中的大多数文件都是此类链接。 它们中只有一小部分(大约100 MB)将完全包含在图像中-这就是它的大小。 此外,当您不使用沙箱时,这些文件将以压缩形式存储并占用约25 MB。 启动沙箱时,会将它们部署到大小约为100 MB的“动态映像”中。

图片

智能内存管理


沙盒内存管理是另一项重大改进。 虚拟机管理程序允许您在同一台物理计算机上运行多个虚拟机,并且通常在服务器上运行良好。 但是,与服务器不同,普通用户计算机的资源更为有限。 为了达到可接受的性能水平,Microsoft开发了一种特殊的内存模式,在这种模式下,主操作系统和沙箱在某些情况下可以使用相同的内存页。

实际上:由于主操作系统和沙箱运行相同的操作系统映像,因此它们中的大多数系统文件都是相同的,这意味着将相同的库两次加载到内存中是没有意义的。 您可以在主操作系统中执行一次此操作,并且在沙盒内存中需要相同文件时,可以为其提供指向同一页面的链接。 当然,还需要采取一些其他措施来确保此方法的安全性,但是Microsoft已对此进行了照顾。

图片

综合规划师


在使用常规虚拟机的情况下,系统管理程序控制在虚拟机中运行的虚拟处理器的操作。 为沙盒开发了一项称为“集成调度程序”的新技术,该技术使主操作系统可以决定何时以及向沙盒分配多少资源。 它的工作方式是这样的:虚拟Sandbox处理器的工作方式类似于Sandbox进程中的线程。 因此,它们具有与主操作系统中其他线程相同的“权限”。 例如,如果某些高优先级线程为您工作,那么沙盒将不会花费他们很多时间来完成其任务,而这些任务具有正常的优先级。 与Linux KVM的工作方式类似,这将使您能够使用沙盒,而不会减慢关键应用程序的工作并保持主操作系统UI的足够响应性。

主要任务是一方面使Sandbox成为普通应用程序,另一方面确保Sandbox在传统虚拟机级别上隔离。

使用快照


如上所述,沙盒使用管理程序。 实际上,我们在另一个Windows中运行一个Windows副本。 这意味着将花费一些时间来加载它。 在将虚拟OS的所有状态(已更改的文件,内存,处理器寄存器)加载到磁盘后进行保存之后,我们可以在每次启动沙箱时将其花费,也可以仅花费一次。 之后,我们将能够从该映像启动沙箱,同时保存其开始时间。

图形虚拟化


图形的基于硬件的虚拟化是实现平滑,快速的用户界面的关键,特别是对于图形应用程序中的“繁重”用户而言。 但是,经典虚拟机最初直接使用GPU的所有资源的能力受到限制。 图形虚拟化工具在这里发挥了重要作用,这些工​​具可解决此问题,并以某种形式在虚拟环境中使用硬件加速。 例如,Microsoft RemoteFX就是这种技术的一个例子。

此外,Microsoft与图形系统和驱动程序制造商积极合作,以将图形虚拟化功能直接集成到DirectX和WDDM(Windows中的驱动程序模型)中。

结果,沙盒中的图形如下工作:

  • 沙盒中的应用程序以通常的方式使用图形功能,而不知道谁以及如何执行它们
  • 收到图形渲染命令的沙盒图形子系统将其传输到主操作系统
  • 接收到图形渲染命令的主操作系统将它们视为来自本地启动的应用程序,然后执行它们,从而分配和管理必要的资源。

此过程可以表示如下:

图片

这使得虚拟环境可以完全访问硬件加速的图形,从而提高了性能,并提供了一些资源(例如,笔记本电脑的电池电量),这是因为CPU上的大量计算不再用于渲染图形。

电池使用量


沙箱可以访问有关电池电量的信息,并可以优化其工作以节省电量。

评论和错误报告


任何新技术都可能存在错误。 Microsoft要求通过“ 反馈中心”发送有关它们的消息和新功能的建议。

Source: https://habr.com/ru/post/zh-CN433706/


All Articles