wdag_logo_430x130

Windows Defender Application Guard 快速体验

        为了阻止以前出现过的以及新涌现的攻击,微软为 Windows 10 v1709 新增了一个安全功能,利用独特的硬件隔离方法来化解来自互联网的攻击。这项安全功能称之为“Windows Defender Application Guard”(以下简称:WDAG),专为 Windows 10 和 Microsoft Edge 设计,WDAG可有效隔离用户或企业不受信任的站点,从而在浏览 Internet 时提供保护。应用的隔离容器技术基于Hyper-V,简单理解就是当用户触发访问不受信任的站点时,Microsoft Edge 将在 Hyper-V 的隔离容器中打开这些网站,这样就可以将网站与主机操作系统隔离开来,使主机系统得到保护,有效阻止攻击者。

appguard-hardware-isolation

更多信息可参考:https://docs.microsoft.com/zh-cn/windows/security/threat-protection/windows-defender-application-guard/wd-app-guard-overview

        在 Windows 10 v1709 版时,要启用 WDAG 需要企业版,但自 Windows 10 v1803 开始专业版(Pro)也可直接开启 WDAG,但一些管理、数据和打印支持特性仍需要企业版。

        要安装和启用 WDAG 只需要通过 Windows 程序和功能 添加即可,如下图所示。当然我们也可以通过 PowerShell 命令行安装。

Enable-WindowsOptionalFeature -online -FeatureName Windows-Defender-ApplicationGuard

Snipaste_2018-05-11_08-31-26

        虽然 WDAG 基于 Hyper-V,但是在安装“Windows Defender 应用程序防护”时,并不需要事先安装和配置 Hyper-V Role,而且与其也并不冲突,但是如果你要在虚拟机中体验 WDAG 是不受支持的。

Snipaste_2018-05-11_08-48-10

        要使用 WDAG 只需要运行 Microsoft Edge,在菜单中点击“New Application Guard window”(新应用程序窗口,PS:由于当时测试使用的是英文系统,所以截图为英文界面。)即可启动。

Snipaste_2018-05-10_10-13-45

        在首次启动 WDAG 时会进行初始化,gOxiA 使用的是固态硬盘,所以并没有等待太久,初始化完毕后会打开一个新的 Microsoft Edge,其窗口边缘为醒目的橙色,且左上角也有醒目的“Application Guard”图标,便于用户识别。

Capture

Snipaste_2018-05-10_10-14-25

        前面已经讲过,WDAG采用了隔离技术,默认配置下是不能在 WDAG 和主机系统间交互数据的,而且在 WDAG 中下载的一些资源也无法执行,但是就目前测试看处理流程上还有待完善,例如 gOxiA 在 WDAG 中点击了一个 PDF 链接并打开,是可以在 WDAG 中阅读这个 PDF 文件的,但是如果关闭后从下载列表中再次打开时则会被拒绝,当然也无法通过右键点击复制,将其从 WDAG 环境下复制到主机系统。

Snipaste_2018-05-10_10-23-01

        另一个有意思的发现是 WDAG 呈现出来的 Edge 是基于 RDP 的,可以在任务管理器中看到这个进程“hvsirdpclient.exe”,那么 WDAG 应该还用到了 RemoteApp。继续深挖,当然是想看看 WDAG 的系统环境,因为在主机系统环境下还能看到“vmmem”这个进程,占用了 1GB 的内存,它应该就是 WDAG 实例。

Snipaste_2018-05-10_10-44-34

        要想一探 WDAG 实例环境,只能从当前打开的 WDAG Microsoft Edge 入手,如下图所示 gOxiA 成功打开了 WDAG 的资源管理器,WDAG 的磁盘大小约40GB,查看占用的容量显示为 2.34GB(PS:有意思,占用了这么少的空间,怪不得启动速度有所保障。),但是其系统盘根目录下有个名为WDAG的子目录,存放这一个目录重定向文件,占用了4GB左右,而这个文件貌似是直接映射的 WDAG 主机系统下的目录文件,从命名看应该是供用户读写的区域。

Snipaste_2018-05-10_10-26-02

Snipaste_2018-05-10_10-52-55

        之所以会有前面的说法,是因为通过对进程的监视发现 WDAG 这个虚拟机相关的资源文件相当复杂,除了常见的虚机 VHDX 外,还在其基础上生成了多个差异磁盘,而这些虚拟磁盘文件都只有几百兆的容量,要想单独拷贝出来 Mount 查看其内部结构或加载到 Hyper-V 跑一跑是不可能的。而且 WDAG 的资源目录中还有一个名为 Base 的目录,包含了完整的 Windows 目录结构,而这个目录应该就是前面提到的目录重定向的源文件。

Snipaste_2018-05-10_10-50-10

        有兴趣的朋友可以在深入挖掘,貌似微软针对 WDAG 的安全性问题还有奖励活动。最后概览一下 WDAG 这个系统环境,当前版本是 10.0.17134 即 1803 版 Windows 10,而且是个专业版,但这个专业版貌似又运行在 S Mode 下,因为无法在 WDAG 下执行传统 EXE 程序,当然 UWP 应用也被禁用了(PS:也许还应用了 AppLocker 技术进行了限制)。此外,要想在 WDAG 与主机环境交换数据或应用打印,是需要企业版支持的,且需要配合组策略(GPO)进行配置,此外通过组策略还可以为企业提供 WDAG 的统一管理特性,如果您所在的企业对 WDAG 感兴趣可联系 gOxiA 获得咨询服务。

Snipaste_2018-05-10_10-54-27

小贴士:

  • 重置容器环境,并放弃用户在WDAG中生成的所有数据
    C:\Windows\System32\wdagtool.exe cleanup RESET_PERSISTENCE_LAYER

Part3 - 使用 Windows FFU 映像部署 Windows 10

        在学习和了解 “Part1 - Windows FFU 映像格式概览”和“Part2 - 使用 Windows FFU 映像部署的准备工作”后,今天我们就要进入 FFU 部署的正题,首先启动 PE 引导要捕获的 Windows PC,执行如下命令行对 Windows 所在硬盘进行 FFU 映像的捕获。

dism /capture-ffu /imagefile:e:\oem.ffu /capturedrive:\\.\physicaldrive0 /name:Disk0-W10Pro

        上面这条命令行的重点是 /capture-ffu,即使用 FFU 进行捕获的重要参数;/imagefile 则指定 ffu 格式映像存储的路径;/capturedrive 是指定要捕获的硬盘,其中 \\.\physicaldrive0 表示硬盘 0,如果你的固态硬盘是 mSATA 接口,且本机还有机械硬盘,那么 SSD 的标识号可能是 1,当然为了准确定位硬盘号,最好是通过命令行获取“wmic diskdrive list brief”。

        捕获到的 oem.ffu 文件较大,有近 14GB。虽然在前文中提到 FFU 不支持压缩和分卷存储,但实践中还是能通过 /split-image 进行分卷存储的,具体参考如下:

dism /split-image /imagefile:oem.ffu /sfufile:winoem.sfu /filesize:3500

        执行上面的命令后,会基于原有的 oem.ffu 重新生成名为 winoem*.sfu 的多个文件,大小为 3500MB,这样我们就能方便的将其存储在 FAT32 格式的 UFlash 中。

Snipaste_2018-05-11_08-59-31

        至此 FFU 映像我们已经捕获完毕,接下来就可以部署到新 PC 上,这里 gOxiA 使用 Hyper-V 准备了一台虚拟机,分配了一个 256GB 容量的磁盘,使用 PE 引导执行如下命令行。

dism /apply-ffu /imagefile:oem.ffu /applydrive:\\.\physicaldrive0

Snipaste_2018-05-10_15-48-00

        如果是分卷存储的 FFU,则可以参考如下命令行:

Dism /apply-ffu /imagefile:winoem.sfu /sfufile:winoem*.sfu /applydrive:\\.\physicaldrive0

        FFU 释放后,会发现当前硬盘的分区和系统数据都已部署完毕,重新启动会执行 UEFI 初始化,之后就能正常启动 Windows 10 系统。

Snipaste_2018-05-10_16-00-29

        基于 FFU 映像格式的 Windows 部署,非常适合工厂部署的应用场景,因为无需再考虑磁盘分区准备的环节;由于 FFU 是基于扇区的,所以部署的效率会比 WIM 更高一些。对于一些需要大批量交付全新 Windows PC 的企业用户,其实也可以考虑采用 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 标准的分区方案。

dep-win10-partitions-uefi

        如果希望了解如何手动创建 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 为例,启动“部署和映像工具环境”开始。

copype amd64 c:\winpe_amd64

makewinpemedia /iso c:\winpe_amd64 c:\winpe_amd64\winpe_amd64.iso

makewinpemedia /ufd c:\winpe_amd64 H:

        自 Windows 7 开始制作一个可引导的 UFlash 就是非常简单的事情,只需要在 diskpart 下使用 active 激活分区即可,之后直接从 ISO 拷贝启动文件便可引导。

        如果你希望在当前 PE(PS:一些网友会使用第三方制作的 PE 工具盘)版本上来以 FFU 部署 Windows,则可以参考如下命令行,将支持 FFU 部署的 DISM 拷贝到你的 PE 中。

copy \"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\" E:\DISM_Win10 /s

        其实,还有一个比较灵活的办法就是直接使用对应版本的 Windows 10 安装盘引导,其修复模式中的 CMD 环境就能够执行 FFU 部署命令。当然在测试环境中,还可以直接通过“Reagentc”来进入 PE 环境!!!

        所有的准备工作都完成后,在 Part3 中将进入 FFU 部署正题,敬请期待!:-P

分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]