Windows Defender 漏洞利用防护(上)评估一个新的安全数据源的有效性
代码小侠客
2024-04-23 23:47
Windows Defender 漏洞利用防护(WDEG)是一套预防和侦查控制,用于识别和减少针对 Windows 主机的主动攻击尝试。 基于先前增强的缓解经验工具包(EMET)的成功经验,WDEG 不仅提供了一系列广泛的攻击缓解方案,而且还通过提供与异常事件相关的丰富的上下文事件日志充当调查资源。
Palantir 的计算机应急响应小组(CIRT)在端点遥测和检测能力方面严重依赖于安全供应商产品,而调查和开发新的与安全相关的数据源是我们成功的基础。 这篇博客文章分析了将“漏洞利用防御”作为一个新的数据源,包括警报和检测策略(ADS)。 我们还将详细介绍企业配置和转出策略,并提供检测假设的抽样。
我们提供了一个新的 GitHub 存储库,其中包含了以前不可用的事件文档作为本文的支持文档。
Windows Defender 安全漏洞防护介绍
Windows Defender 安全漏洞防御系统是 Windows 10中的一系列基于主机的入侵防范和检测能力。 这些功能可以锁定设备以抵御各种各样的攻击载体,并尝试阻止恶意软件攻击中常用的行为,而不需要依赖于传统的基于签名的检测。
WDEG 有四个主要特性:
· 漏洞利用保护: 针对常见漏洞利用攻击技术的缓解措施。 替换、补充和增强 EMET 的功能
· 攻击面缩小: 利用 Windows Defender 防病毒能力(WDAV)来审计和阻止应用程序的异常或恶意行为。
· 网络保护: 利用 WDAV 扩展了 Windows Defender SmartScreen 提供的安全特性,使你的主机上的任意程序和网络连接都可以使用
· 控制文件夹访问: 利用 WDAV 防止勒索软件和恶意应用程序修改关键的系统和用户文件夹。
这篇博客文章将主要关注于理解和探索 WDEG 的漏洞利用保护和攻击表面缩小能力。 此外,虽然这篇文章意图保持解决方案的“不可知论”,但值得注意的是,所有 WDEG 事件都自动进入微软 Defender 高级威胁保护,并拥有自己独特的 MiscEvent ActionType,使用高级威胁查询很容易查询到。
漏洞利用保护
漏洞利用保护(EP)是 EMET 的自然继承者,并在 Windows 10 v1709中引入。 EP 为漏洞利用尝试提供了以下本地缓解能力:
· 任意代码保护(ACG)
· 阻止远程镜像的加载
· 阻止不可信的字体
· 施行数据执行预防(DEP)
· 导出地址过滤(EAF)
· 强制图像的随机化(强制 ASLR)
· NullPage 安全性缓解
· 内存分配的随机化(自底向上的 ASLR)
· 执行模拟(SimExec)
· API 调用验证(CallerCheck)
· 异常链的验证(SEHOP)
· 堆栈完整性验证(StackPivot)
· 认可证书
· 堆喷射分配
· 阻止低完整性图像
· 代码完整性保护
· 禁用扩展点
· 禁用 Win32K 系统调用
· 禁用子进程创建
· 导入地址筛选(IAF)
· 确认句柄的使用
· 堆完整性验证
· 图像依赖完整性的验证
EP 策略在 XML 文件中配置,并通过组策略对象(GPO)或其他方式(例如 InTune)分发到端点。 在大多数情况下,策略文件使用 PowerShell 构建在引用机器上,然后导出配置并在其他地方使用。 更多关于配置和部署 EP 策略的信息将在本博客的后面讨论。
许多策略是粒度策略,可以在系统范围内或在每个进程的基础上应用。 此外,许多策略选项提供了一种审计模式来记录违规行为,而不发生具有潜在破坏性的缓解行为。 此审计功能可用于在执行 EP 策略之前验证 EP 策略的部署,或者简单地用作检测工程师的遥测信息源。
攻击面缩小
在 Windows 10 v1709中引入了攻击面缩小(ASR) ,并利用 WDAV 来破坏常被滥用的攻击原语。
ASR规则的例子包括:
· 阻止电子邮件客户端和网络邮件的可执行内容
· 阻止所有 Office 应用程序创建子进程
· 阻止 Office 应用程序创建可执行内容
· 阻止 Office 应用程序将代码注入其他进程
· 阻止 Javascript 或 VBScript 启动下载的可执行内容
· 阻止执行可能混淆的脚本
· 阻止来自 Office 宏的 Win32 API 调用
· 阻止可执行文件运行,除非它们满足普遍性、年龄或可信列表条件
· 针对勒索软件使用高级的防御手段
· 阻止从 Windows 本地安全权限子系统中窃取凭证(lsass.exe)
· 阻止源于 PSExec 和 WMI 命令的进程创建
· 阻止从 USB 运行的不受信任和未签名的进程
· 阻止创建子进程的 Office 通信应用程序
· 阻止 Adobe 阅读器 创建子进程
与 EP 不同,ASR 策略的形式不是 XML 文件,而是通过 GPO、 InTune 或 PowerShell 进行管理,并且每个规则都有相应的 GUID。 与 EP 一样,许多 ASR 规则可以在执行和审计模式中应用。 在触发时,ASR 事件在“ Microsoft-Windows-Windows Defender\\Operational”日志中分别用事件 id 1121和1122填充,用于审计和执行操作。
漏洞利用保护事件文档
WDEG 最有价值的特性之一是在触发安全特性时生成的 Windows 事件日志。 虽然关于 WDEG 的配置和部署的文档很容易访问,但是关于 WDEG 支持哪些事件以及围绕这些事件的上下文的文档并不存在。 Palantir CIRT 认为,事件源的价值只有通过记录每个字段、应用围绕事件的上下文,并将其作为分立的检测能力加以利用才能实现。
WDEG 提供来自多个事件源(ETW 提供程序)和目的端(事件日志)的事件。 在下面的文档中,事件是按照各自的事件目的端组织的。 此外,许多事件使用相同的事件模板并相应地进行分组。 微软目前还没有记录这些事件,获取这些知识的方式有:通过使用已记录过的 ETW 的方法、逆向工程以及安全研究人员(James Forshaw 和 Alex Ionescu)关于 Windows 内部机制的慷慨解答。
作为这篇博客文章的一部分,我们已经在 GitHub 上开源了我们的漏洞利用保护事件文档。
现在我们已经深入了解了 WDEG 提供的可用功能和事件日志,是时候开始部署到环境中了。 这个部署工作将从一个初始审计配置开始,该配置用于估计事件量并评估启用实施模式的实用性。 在集中收集和分析事件日志之后,我们可以补救任何已识别的问题并启用实施模式。 更多的的违规行为可能被视为潜在的安全事件,并为探测管道提供燃料。
一般部署指南
请记住,WDEG 的部署是非常特定于环境的,这里的流程、建议或配置需要根据你的特定需求、环境或用例进行调整。
在较高的层次上,我们的方法侧重于开发单个 WDEG 基线配置。 我们通过活动目录组策略应用这个基线。 我们最后,通过多次迭代稳定地部署 ASR 和 EP 控制,稳定地提高了部署到工作站的保护级别。
· 使用针对你的环境的标准桌面构建新部署的Windows机器作为开始。
· 首先,配置系统范围的规则,建议使用PowerShell。
· 我们最初的系统范围规则配置如下:
· “Set-ProcessMitigation -System -Enable DEP,BottomUp,SEHOP"
· 接下来,为系统配置每个应用程序的规则。
· 使用 “Excel.exe” 作为示例:
· “Set-ProcessMitigation -Name excel.exe -Enable DEP,BottomUp,AuditDynamicCode,CFG,AuditRemoteImageLoads,AuditLowLabelImageLoads,SEHOP,AuditChildProcess"
· 对于你希望在环境中具有额外保护的所有应用程序重复此操作。 在我们的例子中,我们应用了相同的规则集,在流程名称中替换了我们的公司管理应用程序。 我们的建议将在下一节中展示。
· 将配置导出到 XML 文件。
· Powershell 导出示例:
· Get-ProcessMitigation -RegistryConfigFilePath ExploitGuardSettings.xml
· 将 XML 文件保存到所有 Windows 客户机都可以访问的位置。 你在下一步中应用的组策略将引用此位置。
· 配置一个新的漏洞利用保护组策略,将 XML 设置部署到目标机器(为了缩小范围,可以通过“应用组策略” ACL 或 OU 过滤此策略)。
· 组策略: 计算机设置> Windows组件> Windows Defender 漏洞利用保护->“使用一组常用的漏洞利用保护设置”->启用
· 指定包含导出的 XML 文件的共享。
· 监视应用程序失败的环境。
· 我们建议使用SIEM可视化Windows 事件转发 事件。 但是,任何在端点上查看利用保护日志的设施都可以工作。
· 根据自己的需要调整每个应用程序的设置。 例如,如果你发现应用程序不能处理系统范围的设置,那么可以将单个进程排除在系统范围的设置之外,并放松对每个应用程序的一些利用保护。 在引用计算机上进行配置更改,重新导出 XML 文件(步骤4) ,并通过组策略重新部署。
推荐的初始配置设置
对以下进程应用特定漏洞利用的设置:
· iexplore.exe
· MicrosoftEdge.exe
· chrome.exe
· outlook.exe
· winword.exe
· excel.exe
· powerpnt.exe
· AcroRd32.exe.
具体而言,在审计模式中首先考虑应用以下缓解措施:
· 子进程创建
· 任意代码保护(又称块动态代码)
· 导出地址表(EAT)
· ROP 缓解
· 控制流保护
· 在审计模式下在全系统应用以下设置:
· 非微软镜像加载
· 远程镜像加载
· 字体加载
Palantir 部署
最初,本文档的“推荐初始配置设置”部分的指导意见被应用于使用 PowerShell 的新的 Palantir Windows 映像。 我们的安全团队使用 Windows 事件转发和 SIEM 在“仅审计”模式下监视应用程序。 在监测阶段结束后不久,我们将少数”金丝雀”系统移至执行模式,并提供以下全系统范围的保护:
· DEP
· BottomUp
· CFG
· SEHOP
我们注意到在少数几台探测器上出现了一些应用程序故障,因此决定退回 CFG 的实施,作为一种全系统的保护。之后,我们提供了以下全系统范围的保护:
· DEP
· BottomUp
· SEHOP
(我们将在稍后评估重新引入CFG对大多数应用程序的影响。)
我们还对最常见的业务应用程序线应用了更具体的针对每个应用程序的指导。 我们当前的配置脚本可在这里参考。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341