微软推出WindowsSandbox在一次性虚拟机中运行任何应用程序

断线纸鸢悲余手中线
阅读

微软推出WindowsSandbox在一次性虚拟机中运行任何应用程序

几个月前,微软泄露了 Windows 10 即将推出的一项功能,当时该功能称为 InPrivate Desktop:一种轻量级虚拟机,用于在隔离环境中运行不受信任的应用程序。该功能现已正式宣布,并使用新名称 Windows Sandbox。

Windows 10 已经使用虚拟机来增加某些组件之间的隔离并保护操作系统。这些 VM 已以几种不同的方式使用。例如,自最初发布以来,适当配置的系统使用一个与主操作系统一起运行的小型虚拟机来托管 LSASS 的部分内容。LSASS 是一个关键的 Windows 子系统,除其他外,它知道各种秘密,例如密码哈希、加密密钥和 Kerberos 票证。在这里,VM 用于保护 LSASS 免受黑客工具的攻击,这样即使基本操作系统遭到破坏,这些关键机密也可以保持安全。

另一方面,微软增加了在虚拟机中运行Edge 选项卡的功能,以降低访问恶意网站时受到攻击的风险。这里的目标与 LSASS 虚拟机相反——它旨在阻止任何令人讨厌的东西从虚拟机中脱离并污染主操作系统,而不是防止已经被污染的主操作系统闯入虚拟机。

Windows Sandbox 类似于 Edge 虚拟机,但专为任意应用程序设计。在虚拟机中运行软件,然后将该软件集成到主操作系统中并不是什么新鲜事——VMware 在 Windows 上已经这样做了二十年——但 Windows Sandbox 正在使用许多技术来减少虚拟机的开销,同时也最大限度地提高在 VM 中运行的软件的性能,而不影响它提供的隔离。

传统的虚拟机将自己的操作系统安装存储在虚拟磁盘映像中,并且该操作系统必须与主机操作系统分开更新和维护。相比之下,Windows Sandbox 使用的磁盘映像与主机操作系统共享其大部分文件;它包含少量可变数据,其余是对主机操作系统文件的不可变引用。这意味着它始终运行与主机相同版本的 Windows,并且随着主机的更新和修补,沙箱操作系统也同样更新和修补。

共享也用于内存;虚拟机中加载的操作系统可执行文件和库与加载到主机操作系统中的相同可执行文件和库使用相同的物理内存。

运行完整操作系统的标准虚拟机包括自己的进程调度程序,可在所有正在运行的线程和进程之间分配处理器时间。对于常规 VM,此调度程序是不透明的;主机只知道来宾操作系统正在运行,而无法深入了解来宾操作系统中的处理器和线程。沙盒虚拟机不同;它的进程和线程直接暴露给主机操作系统的调度程序,它们就像机器上的任何其他线程一样被调度。这意味着如果沙箱有一个低优先级的线程,它可以被来自主机的更高优先级的线程取代。结果是主机通常响应更快,沙箱的行为就像一个普通的应用程序,而不是一个黑盒虚拟机。

最重要的是,带有 WDDM 2.5 驱动程序的显卡可以为在沙箱中运行的软件提供硬件加速的图形。对于较旧的驱动程序,沙箱将使用虚拟机典型的软件模拟图形运行。

综上所述,Windows Sandbox 结合了虚拟机和容器的元素。沙箱和主机操作系统之间的安全边界是硬件强制边界,就像虚拟机一样,沙箱具有虚拟化硬件,很像 VM。与此同时,其他方面——例如与主机共享磁盘和内存中的可执行文件以及运行与主机相同的操作系统版本——使用来自 Windows Containers 的技术。

至少就目前而言,沙盒似乎完全是短暂的。每当它关闭时它就会被销毁和重置,因此在运行之间不会有任何更改。Edge 虚拟机在其第一个版本中的工作方式类似;在后续版本中,Microsoft 添加了对从虚拟机向主机传输文件的支持,以便它们可以持久存储。我们期待沙盒也有类似的演变。

从版本 18305 开始,Windows 10 专业版和企业版的 Insider 版本将提供 Windows Sandbox。在撰写本文时,该版本尚未交付给内部人员,但我们预计它会很快推出。

阅读
本文由用户上传,如有侵权请联系删除!

撰写回复
更多知识