网络安全浙江农林大学Windows

Windows Sandbox轻量级桌面开启及使用教程

2019-01-15  本文已影响12人  小小白201302

前言

(毫无预兆地,)咱们今天来聊一聊Windows Sandbox。
俗话说王老板可能会迟到,但永远不会缺席。(大雾)
虽然功能出来有一个多月了,官方介绍和网上各种教程已经满天飞了,但一般都只是把官方给出的“特性”和“使用条件”(谷歌翻译一下然后一字不改地)搬运过来,所以我们今天还有不少东西可以聊。
之前在IT之家投稿文章的评论区,有些网友说我前言废话太多且和正文无实际联系,我们今天就尝试一下少说废话
开聊。


正文

我们将按照以下顺序介绍:

  1. 首先简单介绍一下什么是Windows Sandbox,我们会贴出官方的表述和我们自己的见解[注:为便于理解会同时列出部分英文原文。]);
  2. 如何开启并使用Windows Sandbox,搬运官方给出的步骤,之后列出我们自己的图文过程
  3. 感兴趣的小伙伴可以接下去看,我们将会以简单易懂的方式介绍Sandbox所使用的的技术
  4. 讲完上述部分,再自然而然地引出,Windows Sandbox和一般虚拟机的区别

一、什么是Windows Sandbox

1、定义

Sandbox直译是沙盘,也叫沙盒或沙箱,特点是可以推倒重来抹去使用痕迹对外部环境不产生任何影响
Windows Sandbox正是为“安全地运行应用程序”而量身定制。用户可以在这个独立封闭临时桌面环境里,运行不受信任的软件比如未知的exe文件,不会对宿主机系统造成任何影响。因为 Windows Sandbox 中安装的任何软件以及做出的任何文件变动,下次启动时将不复存在。
按照惯例我们先看一下官方给的表述:

Windows Sandbox is a new lightweight desktop environment tailored for safely running applications in isolation.

(谷歌)翻译过来:

Windows Sandbox是一种新的轻量级桌面环境,专为安全运行应用程序而量身定制。

这其实是更加侧重于功能性的描述,把侧重点放在实质上,我们会得出以下描述:

Windows Sandbox是一款轻量级的、每次启动加载固定快照的虚拟机。

为照顾到大部分读者,这里先稍微解释一下,用到哪些技术或如何实现下文再谈。

2、特征

官方介绍中已足够详细且易于理解。
Windows Sandbox具有以下属性:

二、开启与使用教程

1、官方表述

使用该功能的先决条件

快速开始

  1. 安装Windows 10 Pro或Enterprise,Insider build 18305或更新版本
  2. 启用虚拟化
    • 如果您使用的是物理机,请确保在BIOS中启用了虚拟化功能。
    • 如果您使用的是虚拟机,请使用此PowerShell cmdlet启用嵌套虚拟化:
    • Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $ true
  3. 打开Windows功能,然后选择Windows Sandbox。选择“ 确定”以安装Windows Sandbox。系统可能会要求您重新启动计算机。
  4. Windows Feature
  5. 使用“ 开始”菜单,找到Windows Sandbox,运行它并允许提升
  6. 从主机复制可执行文件
  7. 将可执行文件粘贴到Windows Sandbox的窗口中(在Windows桌面上)
  8. 在Windows Sandbox中运行可执行文件; 如果是安装程序,请继续安装
  9. 运行应用程序并像平常一样使用它
  10. 完成实验后,您只需关闭Windows Sandbox应用程序即可。所有沙盒内容都将被丢弃并永久删除
  11. 确认主机没有您在Windows Sandbox中进行的任何修改。

2、详细图文

(1)开启

使用先决条件:

(2)使用

重启之后并不能马上运行Windows Sandbox,开机之后会发现后台有镜像工具正在运行,磁盘占用很高,应该是在部署文件。
稍作等待就可以在开始菜单中找到Windows Sandbox。
首次运行开启需要一段时间,长短因机器而异,数十秒到几分钟都是可能的。
1. 进入桌面
进入后我们会看到和全新安装的系统同样的桌面,查看系统信息会发现系统版本和宿主机系统一致

Windows SandBBox桌面环境
系统信息与宿主机一致
将Windows Sandbox窗口全屏我们将看到熟悉的远程桌面操作栏,也证实了我们之前的说法。
通过RDP传输画面
Windows Sandbox桌面环境中精简掉了很多与设计目的无关的功能和服务,但Powershell命令提示符等系统工具都保留了下来。
系统工具
2. 进行文件操作
首先由于Windows Sandbox的设计目的是测试不信任的软件,所以删去了微软商店,开始菜单中的磁贴都是广告,点击无效,只可以通过.exe文件安装软件。Microsoft Store中下载的软件都是运行在APP Container中,本身就是安全的,所以这样设置也没有问题。
其次,Windows Sandbox中保留了Edge浏览器,应该是考虑到访问用户需要访问一些不信任或不行为太规矩的网站。
再次,由于安装和使用软件本质上也是对文件进行操作,所以我们这里仅通过文件的变动验证Windows Sandbox桌面环境是否如官方所说是“一次性”的。由于本质是虚拟机所以“隔离性”就不需要测了。
和其他Hyper-V虚拟机一样,Windows Sandbox与宿主机系统共享剪切板,但通过拖拽的形式传输文件是行不通的。
我们在宿主机系统新建一个文件,复制到Windows Sandbox中。
文件传输
3. 验证
我们先退出Windows Sandbox,这是系统会弹出对话框,询问是否确认关闭Windows Sandbox,提示一旦关闭临时桌面环境中所有文件将不会被保存且永久丢失
关闭前二次确认
再次开启,发现果然系统焕然一新,恢复如初,之前传输的文件也已经没有了。
第二次运行
开启及使用教程到此结束,如果您还有兴趣可以接着往下看。

三、使用了哪些技术

首先感谢您看到这里。
在这部分我们将会带您解读官方介绍中关于“Windows Sandbox内核”的章节,我会尽量以通俗易懂的方式使大家理解Windows Sandbox使用了哪些技术、实现了哪些功能或特性

1、 动态生成镜像 - Dynamically generated Image

上面我们提到,Windows Sandbox的核心是一个轻量级虚拟机,因此需要一个操作系统映像才能启动。而镜像也才100MB左右,这是如何实现的呢。
微软将Windows Sandbox所用镜像称之为“动态基本映像(dynamic base image)”,顾名思义是动态生成的,微软表示Windows Sandbox无需“像使用普通虚拟机那样下载新的VHD映像”,其实,不仅“无需”,而且不能。
Windows Sandbox镜像分为两部分,一部分是可变的(Mutable),另一部分是不可变的(Immutable)。可变文件这部分称为“基本镜像(base image)”,在未启动Windows Sandbox时以压缩包的形式存储,大小约25MB,安装后大概占用100MB的磁盘空间。
而不可变部分则是链接到宿主机系统的相关文件,也就是Windows Sandbox运行时直接调用相关文件,并不额外占用空间。这就是为何Windows Sandbox占用空间如此少的原因。

Dynamic Image
打个比方,基本动态镜像的生成和应用就像某种情况下我们去野外烧烤,我们自带食材,租用目的地商家的烤架和炭火等设施。我们自己带的食材对应可变部分,租用的设置对应的是不可变部分。
相应的,如果食材也是在目的地商家那边买的,就是云服务;如果食材和设施都是自带的就是本地计算机。

2、智能内存管理 - Smart memory management

前面我们提到Windows Sandbox是一个轻量级的桌面环境,所谓轻量级,就是占用资源较少,磁盘空间是一方面,系统性能也是一方面。
内存管理方面,微软采取的策略是“主机可以根据需要从沙盒中回收内存”。也就是说,当宿主机系统需要时间,可以将分给Windows Sandbox的内存调到更少的水平。
另外,由于Windows Sandbox基本上运行与宿主机相同的操作系统映像,微软还允许Windows Sandbox“通过我们称为“直接映射(Direct Map)”的技术使用与操作系统二进制文件的主机相同的物理内存页面”。说白了就是同一内存区域,可以同时供宿主机系统和Windows Sandbox同时访问,以此来实现节省内存。

Direct Map
打个比方就像是班主任在班里播放电影,班主任决定学生是否可以看、看多少,在看的同时班主任和学生看到的都是同样的内容。

3、集成内核调度程序 - Integrated kernel scheduler

这一项和上一项类似,让宿主机系统决定Windows Sandbox所需的虚拟处理器。
“允许以与为进程调度线程相同的方式调度沙箱的虚拟处理器。主机上的高优先级任务可以抢占沙箱中不太重要的工作。”
这样做的目的是宿主机系统将Windows Sandbox作为一个进程而不是虚拟机来管理,视为应用程序。

4、快照和克隆 - Snapshot and clone

这两种技术技术就是大家理解的虚拟机上的技术,目的是不需要每次启动时都花费启动系统的花销
快照就是首次启动后将内存、CPU等设备状态存入硬盘。
克隆是“当我们需要一个新的Windows Sandbox实例时,我们可以从磁盘恢复沙箱环境并将其放入内存而不是启动它”。

5、图形虚拟化 - Graphics virtualization

既然是虚拟机,无法访问GPU等高级设备,也就需要图形化虚拟这一技术了。
官方描述的有些复杂,简单来说就是,微软和厂商合作,将现代图形虚拟化功能直接集成到DirectX和WDDM中,利用显卡驱动和系统组件,使得Windows Sandbox中运行的程序可以直接调用图形API,相当于在宿主机系统和Windows Sandbox之间搭了一座桥。

GPU virtualization for Sandbox
打个比方就是……额,网关……

四、Windows Sandbox和一般虚拟机的区别

讲完Windows Sandbox的特点,我们来讲和一般虚拟机的区别大家就很好理解了。
简单来说,区别主要显现在镜像。

  1. 一般虚拟机运行的是完整的系统镜像,而Windows Sandbox运行的是深度精简、轻量级的“动态基本镜像”;
  2. 一般虚拟机可以随意选择镜像版本,而Windows Sandbox的镜像则必须和宿主机系统保持一致,起码现在是这样;
  3. 一般虚拟机可以手动创建、删除、应用系统快照,而Windows Sandbox则是自动创建新系统的系统快照且每次启动都会自动部署;

后记

虽说Windows Sandbox是开发来当做测试环境的,不过也不是说就可以随心所欲地测试任何项目了。
在Windows Sandbox桌面环境中对文件的操作不会影响到宿主机系统,所以可以用来测试不信任的.exe文件,甚至是激活病毒,但请不要忘记,网络是连通的(×3)
所以如果有新品种的WannaCry还是请谨慎对待,以及账号密码在哪都别轻易填写
好了,今天先聊到这。
如有更好的见解,欢迎补充。
如有错误,也请麻烦指正。
拜拜~~~

上一篇下一篇

猜你喜欢

热点阅读