微软Windows Sandbox来了! 桌面环境也能创建可抛弃式沙箱

今年8月时,业界就有谣言,微软为了防范不安全软件在PC机上执行,Windows企业版可能将加入名为InPrivate Desktop的安全功能,让管理员启动可抛弃式沙箱,创建应用程序一次性执行的安全环境,而近日微软终于披露该功能,宣布推出Windows Sandbox,“这个轻量化桌面环境,能在隔离环境下,让用户安全执行应用程序。”微软表示。

尽管用户也能通过VirtualBox、VMware Player等工具创建VM隔离环境,测试下载的应用程序是否安全。不过这次微软发布的Windows Sandbox的特色就在于,原生内置在Windows 10专业版、企业版内,不用另外VHD就可执行。根据微软发布的数据,要执行Windows Sandbox最基本的硬件配置,至少要搭配4GB记忆、1GB的硬盘空间,以及2核心CPU。

每当Windows Sandbox开始执行时,都会重新创建一个干净的操作系统环境,而当应用程序结束运行时,该沙箱环境内所有的数据皆被清空,不会对用户设备产生任何影响。同时,为了加速Windows Sandbox的运行性能,微软也加入虚拟GPU、智能内存管理等功能。

微软解释,Windows Sandbox的运行是以自家Hypervisor技术为核心,并且结合硬件虚拟化技术,达到操作系统核心隔离的目的(kernel isolation)。 此外,该公司表示,Windows Sandbox也有集成Windows容器使用的技术,但由于Windows容器是针对服务器环境所打造,因此微软也针对Windows 10环境进行微调。

进一步探究Windows Sandbox的技术原理,其核心是一个轻量虚拟机,依旧需要底层Host操作系统才能打开。不若其他虚拟化软件,得要额外下载VHD镜像文件挂载,微软所进行的加强,是让Windows Sandbox直接利用安装在本机环境的Windows 10,复制另一份副本使用。在此微软也集成了快照(Snapshot)及复制(Clone)技术,当用户打开Windows Sandbox时,系统会创建该一份快照,存储至硬盘。用户下次想要使用Windows Sandbox时,系统直接从硬盘读取该份快照,配置至内存空间执行,不需再重新启动。

同时,为了让Windows Sanbox能创建干净的桌面环境,微软的解决方法是创建一套动态基础镜像文件(Dynamic base image)。该公司解释,这一套操作系统镜像文件,与底层Host操作系统链接的文件不能变更外,其余文件都能自由变更。也由于该镜像文件大部分内容都与底层Host操作系统共享,才可让其容量控制在100MB以下,“当Windows Sandbox未安装时,基础镜像文件的压缩打包文件大小只有25MB。”

而Windows Sandbox其他的亮点功能,还有智能内存管理、集成式核心调度器(Integrated kernel scheduler),以及支持绘图虚拟化等。

首先是智能内存管理,微软表示,虽然靠传统服务器虚拟化技术,就能单台实体机资源划分为多台虚拟机,但是对于桌面环境而言,可能会碰上硬件资源有限的痛点。因此,在Windows Sandbox的设计上,当Host环境需要额外内存资源时,可以径行取回。

再者是操作系统核心调度器。在传统虚拟化环境下,Hypervisor会控制虚拟机内程序的调度,但是在Windows Sandbox的架构,“我们采用一项新技术,称为集成式调度器”,让Host操作系统直接管控该沙箱的运行。如此作法的优点,可以让Windows Sandbox如同一般系统程序进行调度。而微软表示:“此功能的最终目的,要让沙箱等同一般应用程序,但是兼顾虚拟机的安全性。”

最后,Windows Sandbox也支持绘图虚拟化功能,通过底层Host操作系统,动态配置绘图资源给虚拟机,借以改善该虚拟机内应用程序的性能。

Windows Sandbox不启动时,其压缩后的镜像文件大小仅占25MB。其中的关键就在于,这个动态镜像文件和底层Host共享了许多文件,而该镜像文件内多数皆由不可变更(Immutable)的链接档组成,借此让镜像文件能大幅瘦身。图片来源:微软

微软表示,Windows Sandbox的最终目的,要让该沙箱等同一般应用程序,但是兼顾虚拟机的安全性,能在隔离环境下安全执行应用程序。图片来源:微软