Windows Defender Application Guard 快速体验
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
Part3 - 使用 Windows FFU 映像部署 Windows 10
Part3 - 使用 Windows FFU 映像部署 Windows 10
在学习和了解 “Part1 - Windows FFU 映像格式概览”和“Part2 - 使用 Windows FFU 映像部署的准备工作”后,今天我们就要进入 FFU 部署的正题,首先启动 PE 引导要捕获的 Windows PC,执行如下命令行对 Windows 所在硬盘进行 FFU 映像的捕获。
上面这条命令行的重点是 /capture-ffu,即使用 FFU 进行捕获的重要参数;/imagefile 则指定 ffu 格式映像存储的路径;/capturedrive 是指定要捕获的硬盘,其中 \\.\physicaldrive0 表示硬盘 0,如果你的固态硬盘是 mSATA 接口,且本机还有机械硬盘,那么 SSD 的标识号可能是 1,当然为了准确定位硬盘号,最好是通过命令行获取“wmic diskdrive list brief”。
捕获到的 oem.ffu 文件较大,有近 14GB。虽然在前文中提到 FFU 不支持压缩和分卷存储,但实践中还是能通过 /split-image 进行分卷存储的,具体参考如下:
执行上面的命令后,会基于原有的 oem.ffu 重新生成名为 winoem*.sfu 的多个文件,大小为 3500MB,这样我们就能方便的将其存储在 FAT32 格式的 UFlash 中。
至此 FFU 映像我们已经捕获完毕,接下来就可以部署到新 PC 上,这里 gOxiA 使用 Hyper-V 准备了一台虚拟机,分配了一个 256GB 容量的磁盘,使用 PE 引导执行如下命令行。
如果是分卷存储的 FFU,则可以参考如下命令行:
FFU 释放后,会发现当前硬盘的分区和系统数据都已部署完毕,重新启动会执行 UEFI 初始化,之后就能正常启动 Windows 10 系统。
基于 FFU 映像格式的 Windows 部署,非常适合工厂部署的应用场景,因为无需再考虑磁盘分区准备的环节;由于 FFU 是基于扇区的,所以部署的效率会比 WIM 更高一些。对于一些需要大批量交付全新 Windows PC 的企业用户,其实也可以考虑采用 FFU 方式。
Part2 - 使用 Windows FFU 映像部署的准备工作
Part2 - 使用 Windows FFU 映像部署的准备工作
在之前的分享中“Part1 - Windows FFU 映像格式概览” gOxiA 简单介绍了了什么是 FFU(Windows Full Flash Update images)格式,其使用限制,以及与其他映像格式的特性比较。今天就要进行一次实践,具体感受一下 FFU 部署来带的便利性。
要通过 FFU 部署 Windows 首先需要去捕获一台计算机的系统映像,这里 gOxiA 准备了一台自用的 UEFI 引导方式的 Windows 10 电脑,使用的是 128G 的 SSD 硬盘,因为是 UEFI 引导,所以硬盘采用 GPT 格式,包含启动分区、恢复分区,MSR 以及一个系统分区,是 Windows 标准的分区方案。
如果希望了解如何手动创建 UEFI-based PCs,可参考官方文档:https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/configure-uefigpt-based-hard-drive-partitions
Windows 10 版本是最新的 1803,不过从 1709 开始对 FFU 的支持就已经相当完善,此外 Windows SKUs 方面并没有特殊要求,因为 FFU 毕竟属于工厂模式部署,所以不论是家庭版、专业版、企业版还是教育版,都受 FFU 支持。(PS:FFU 概览中曾提到仅支持捕获经过 Sysprep 的 Windows PC,但实践中并非如此。)
Windows PC 准备好后,我们还要准备一个 PE 引导盘,该 PE 需要基于 1709 版本,所以安装 Windows ADK 时要注意版本号。从下面的官方页面可以轻松下载到我们需要的 ADK。
Windows ADK 下载:https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install
如何制作 PE?怎么打包成 ISO 格式?怎么 UFlash 引导 PE?这些问题就用如下命令行来快速解答,以 x64 为例,启动“部署和映像工具环境”开始。
自 Windows 7 开始制作一个可引导的 UFlash 就是非常简单的事情,只需要在 diskpart 下使用 active 激活分区即可,之后直接从 ISO 拷贝启动文件便可引导。
如果你希望在当前 PE(PS:一些网友会使用第三方制作的 PE 工具盘)版本上来以 FFU 部署 Windows,则可以参考如下命令行,将支持 FFU 部署的 DISM 拷贝到你的 PE 中。
其实,还有一个比较灵活的办法就是直接使用对应版本的 Windows 10 安装盘引导,其修复模式中的 CMD 环境就能够执行 FFU 部署命令。当然在测试环境中,还可以直接通过“Reagentc”来进入 PE 环境!!!
所有的准备工作都完成后,在 Part3 中将进入 FFU 部署正题,敬请期待!:-P