Windows Defender Application Guard 快速体验
为了阻止以前出现过的以及新涌现的攻击,微软为 Windows 10 v1709 新增了一个安全功能,利用独特的硬件隔离方法来化解来自互联网的攻击。这项安全功能称之为“Windows Defender Application Guard”(以下简称:WDAG),专为 Windows 10 和 Microsoft Edge 设计,WDAG可有效隔离用户或企业不受信任的站点,从而在浏览 Internet 时提供保护。应用的隔离容器技术基于Hyper-V,简单理解就是当用户触发访问不受信任的站点时,Microsoft Edge 将在 Hyper-V 的隔离容器中打开这些网站,这样就可以将网站与主机操作系统隔离开来,使主机系统得到保护,有效阻止攻击者。
在 Windows 10 v1709 版时,要启用 WDAG 需要企业版,但自 Windows 10 v1803 开始专业版(Pro)也可直接开启 WDAG,但一些管理、数据和打印支持特性仍需要企业版。
要安装和启用 WDAG 只需要通过 Windows 程序和功能 添加即可,如下图所示。当然我们也可以通过 PowerShell 命令行安装。
虽然 WDAG 基于 Hyper-V,但是在安装“Windows Defender 应用程序防护”时,并不需要事先安装和配置 Hyper-V Role,而且与其也并不冲突,但是如果你要在虚拟机中体验 WDAG 是不受支持的。
要使用 WDAG 只需要运行 Microsoft Edge,在菜单中点击“New Application Guard window”(新应用程序窗口,PS:由于当时测试使用的是英文系统,所以截图为英文界面。)即可启动。
在首次启动 WDAG 时会进行初始化,gOxiA 使用的是固态硬盘,所以并没有等待太久,初始化完毕后会打开一个新的 Microsoft Edge,其窗口边缘为醒目的橙色,且左上角也有醒目的“Application Guard”图标,便于用户识别。
前面已经讲过,WDAG采用了隔离技术,默认配置下是不能在 WDAG 和主机系统间交互数据的,而且在 WDAG 中下载的一些资源也无法执行,但是就目前测试看处理流程上还有待完善,例如 gOxiA 在 WDAG 中点击了一个 PDF 链接并打开,是可以在 WDAG 中阅读这个 PDF 文件的,但是如果关闭后从下载列表中再次打开时则会被拒绝,当然也无法通过右键点击复制,将其从 WDAG 环境下复制到主机系统。
另一个有意思的发现是 WDAG 呈现出来的 Edge 是基于 RDP 的,可以在任务管理器中看到这个进程“hvsirdpclient.exe”,那么 WDAG 应该还用到了 RemoteApp。继续深挖,当然是想看看 WDAG 的系统环境,因为在主机系统环境下还能看到“vmmem”这个进程,占用了 1GB 的内存,它应该就是 WDAG 实例。
要想一探 WDAG 实例环境,只能从当前打开的 WDAG Microsoft Edge 入手,如下图所示 gOxiA 成功打开了 WDAG 的资源管理器,WDAG 的磁盘大小约40GB,查看占用的容量显示为 2.34GB(PS:有意思,占用了这么少的空间,怪不得启动速度有所保障。),但是其系统盘根目录下有个名为WDAG的子目录,存放这一个目录重定向文件,占用了4GB左右,而这个文件貌似是直接映射的 WDAG 主机系统下的目录文件,从命名看应该是供用户读写的区域。
之所以会有前面的说法,是因为通过对进程的监视发现 WDAG 这个虚拟机相关的资源文件相当复杂,除了常见的虚机 VHDX 外,还在其基础上生成了多个差异磁盘,而这些虚拟磁盘文件都只有几百兆的容量,要想单独拷贝出来 Mount 查看其内部结构或加载到 Hyper-V 跑一跑是不可能的。而且 WDAG 的资源目录中还有一个名为 Base 的目录,包含了完整的 Windows 目录结构,而这个目录应该就是前面提到的目录重定向的源文件。
有兴趣的朋友可以在深入挖掘,貌似微软针对 WDAG 的安全性问题还有奖励活动。最后概览一下 WDAG 这个系统环境,当前版本是 10.0.17134 即 1803 版 Windows 10,而且是个专业版,但这个专业版貌似又运行在 S Mode 下,因为无法在 WDAG 下执行传统 EXE 程序,当然 UWP 应用也被禁用了(PS:也许还应用了 AppLocker 技术进行了限制)。此外,要想在 WDAG 与主机环境交换数据或应用打印,是需要企业版支持的,且需要配合组策略(GPO)进行配置,此外通过组策略还可以为企业提供 WDAG 的统一管理特性,如果您所在的企业对 WDAG 感兴趣可联系 gOxiA 获得咨询服务。
小贴士:
- 重置容器环境,并放弃用户在WDAG中生成的所有数据
C:\Windows\System32\wdagtool.exe cleanup RESET_PERSISTENCE_LAYER