启用漏洞保护
适用于:
提示
希望体验 Defender for Endpoint? 注册免费试用版。
漏洞保护 有助于防止恶意软件利用漏洞来感染设备和传播。 漏洞保护包含多种可应用于操作系统或单个应用的缓解措施。
重要
.NET 2.0 与某些漏洞保护功能不兼容,具体而言,与导出地址筛选 (EAF) 和导入地址筛选 (IAF) 不兼容。 如果已启用 .NET 2.0,则不支持使用 EAF 和 IAF。
增强型减灾体验工具包 (EMET) 中的许多功能都包含在漏洞保护中。
先决条件
本部分包括成功部署 Exploit Protection 的建议。
为应用程序崩溃设置监视, (事件 ID 1000 和/或事件 ID 1001) 和/或挂起 (事件 ID 1002)
启用 完全用户模式转储 收集
查看哪些应用程序已使用“控制流防护” (CFG) 编译,这些应用程序主要侧重于缓解内存损坏漏洞。 使用 dumpbin 工具查看它是否使用 CFG 编译。 对于这些应用程序,可以跳过为 DEP、ASRL、SEHOP 和 ACG 启用强制实施。
使用安全部署做法。
警告
如果不进行测试,也不遵循安全部署做法,可能会导致最终用户工作效率中断。
安全部署做法
安全部署实践 (SDP) :安全部署过程和过程定义如何安全地对工作负载进行更改和部署。 实现 SDP 需要从管理风险的角度考虑部署。 可以通过实现 SDP 来最大程度地降低部署中最终用户工作效率中断的风险,并限制有问题的部署对用户的影响。
从一小部分 (开始,例如,10 到 50) 的 Windows 设备,并将其用作测试环境,以查看 21 种缓解措施中的哪一项与攻击保护不兼容。 删除与应用程序不兼容的缓解措施。 使用要面向的应用程序重申。 一旦觉得策略已准备好投入生产。
首先,首先推送到用户验收测试 (UAT) 由 IT 管理员、安全管理员和技术支持人员组成。 然后是 1%,5%,10%,25%,50%,75%,最后是 100% 的环境。
启用攻击防护缓解措施
可以使用以下任一方法单独启用每个缓解措施:
在 Windows 10 和 Windows 11 中默认配置漏洞保护。 可以将每个缓解设置为打开、关闭或设置为其默认值。 某些缓解措施具有更多选项。 可以将 这些设置导出为 XML 文件,并将其部署到其他设备。
还可以将缓解设置为 审核模式。 审核模式允许你测试缓解措施的工作原理(并查看事件),且不会影响设备的正常使用。
Windows 安全应用
通过选择任务栏中的防护图标或在“开始”菜单搜索“安全性”以打开 Windows 安全应用。
选择 应用和浏览器控制 磁贴(或左侧菜单栏上的应用图标),然后选择 漏洞保护设置。
转到 “程序”设置,然后选择要向其采取缓解措施的应用。
- 如果要配置的应用已列出,请选择它,然后选择“编辑”。
- 如果未列出应用,请在列表顶部选择“ 添加要自定义的程序 ”,然后选择要添加应用的方式。
- 使用“按程序添加名称”将缓解措施应用于具有该名称的任何正在运行的进程。 指定具有扩展名的文件。 可以输入完整路径,以仅将缓解措施限制为该位置中具有该名称的应用。
- 使用“选择确切的文件路径”,以使用标准 Windows 资源管理器文件选取器窗口查找并选择所需的文件。
选择应用后,你将看到可采取的所有缓解措施的列表。 选择 “审核 ”仅在审核模式下应用缓解措施。 如果需要重启进程或应用,或者需要重启 Windows,你将收到通知。
对要配置的所有应用和缓解措施重复步骤 3-4。
在“系统设置”部分下,找到要配置的缓解措施,然后指定以下设置之一。 未在“程序设置”部分单独配置的应用使用此处配置的设置。
- 默认启用:对未在特定于应用的“程序设置”部分中设置此缓解措施的应用启用缓解措施
- 默认关闭:对未在特定于应用的“程序设置”部分中设置此缓解措施的应用关闭缓解措施
- 使用默认值:根据 Windows 10 或 Windows 11 安装设置的默认配置,启用或禁用缓解;默认值(打开 或 关闭)始终在每个缓解措施的“使用默认”标签旁边指定
对要配置的所有系统级缓解措施重复步骤 6。 设置完配置后,选择“应用”。
如果将应用添加到 “程序设置” 部分并在其中配置单个缓解设置,则这些设置将优先于 “系统设置” 部分中指定的相同缓解措施的配置。 以下矩阵和示例有助于说明默认值的工作原理:
在程序设置中启用 | 在系统设置中启用 | 行为 |
---|---|---|
是 | 否 | 如程序设置中所定义 |
是 | 是 | 如程序设置中所定义 |
否 | 是 | 如系统设置中所定义 |
否 | 否 | 默认如使用默认选项中所定义 |
示例 1:Mikael 将系统设置部分中的数据执行防护配置为默认关闭
Mikael 将应用 test.exe 添加到程序设置部分。 在该应用的选项中,在“数据执行防护 (DEP)”下,Mikael 启用“替代系统设置”选项,并将开关设置为“开”。 “ 程序设置 ”部分中未列出其他应用。
结果是仅为 test.exe 启用 DEP。 所有其他应用都不会应用 DEP。
示例 2:Josie 在系统设置中将数据执行防护配置为默认关闭
Josie 将应用 test.exe 添加到 “程序设置” 部分。 在该应用的选项中,在“数据执行防护 (DEP)”下,Josie 启用“替代系统设置”选项,并将开关设置为“开”。
Josie 还会将应用 miles.exe 添加到“程序设置”部分,并将 控制流防护 (CFG) 配置为“开”。 Josie 不会为 DEP 启用 替代系统设置 选项,也不会为该应用启用任何其他缓解措施。
结果是为 test.exe 启用了 DEP。 不会为任何其他应用启用 DEP,包括 miles.exe。 将对 miles.exe 启用 CFG。
通过选择任务栏中的防护图标或搜索 Windows 安全性的“开始”菜单,打开 Windows 安全应用。
选择 应用和浏览器控制 磁贴(或左侧菜单栏上的应用图标),然后选择 漏洞保护。
转到 “程序”设置,然后选择要向其采取缓解措施的应用。
- 如果要配置的应用已列出,请选择它,然后选择“编辑”。
- 如果未列出应用,请在列表顶部选择“ 添加要自定义的程序 ”,然后选择要添加应用的方式。
- 使用“按程序添加名称”将缓解措施应用于具有该名称的任何正在运行的进程。 指定具有扩展名的文件。 可以输入完整路径,以仅将缓解措施限制为该位置中具有该名称的应用。
- 使用“选择确切的文件路径”,以使用标准 Windows 资源管理器文件选取器窗口查找并选择所需的文件。
选择应用后,你将看到可采取的所有缓解措施的列表。 选择 “审核 ”仅在审核模式下应用缓解措施。 如果需要重启进程或应用,或者需要重启 Windows,你将收到通知。
对要配置的所有应用和缓解措施重复步骤 3-4。 设置完配置后,选择“应用”。
Intune
登录到 Azure 门户 并打开 Intune。
转到 “设备配置>配置文件”“>创建配置文件”。
为配置文件命名,选择Windows 10及更高版本,选择“配置文件类型”的模板,然后在模板名称下选择“终结点保护”。
选择 “配置>Windows Defender 攻击防护>攻击保护”。
上传具有漏洞保护设置的 XML 文件:
选择“确定”以保存每个打开的边栏选项卡,然后选择“创建”。
选择配置文件 分配 选项卡,将策略分配给“所有用户和所有设备”,然后选择“ 保存”。
MDM
使用 ./Vendor/MSFT/Policy/Config/ExploitGuard/ExploitProtectionSettings 配置服务提供程序 (CSP) 启用或禁用攻击保护缓解或使用审核模式。
Microsoft Configuration Manager
终结点安全性
在“Microsoft Configuration Manager”中,转到“终结点安全>攻击面减少”。
选择“ 创建策略>平台”,对于 “配置文件”,选择“ Exploit Protection”。 然后选择“创建”。
指定名称和说明,然后选择“下一 步”。
选择“选择 XML 文件”,然后浏览到漏洞保护 XML 文件的位置。 选择该文件,然后选择“下一步”。
如有必要,请配置“作用域标记”和“分配”。
在“查看 + 创建”下,查看配置设置,然后选择“创建”。
资产和合规性
在“Microsoft Configuration Manager”中,转到“资产和符合性>终结点保护>”“Windows Defender 攻击防护”。
选择“ 开始>创建攻击防护策略”。
指定名称和说明,选择 Exploit Protection,然后选择“下一步”。
浏览到漏洞保护 XML 文件的位置,然后选择“下一步”。
查看设置,然后选择“下一步”以创建策略。
创建策略后,选择“关闭”。
组策略
在组策略管理设备上,打开组策略管理控制台。 右键单击要配置的组策略对象,然后选择“编辑”。
在 策略管理编辑器中, 计算机配置 并选择 管理模板。
将树展开到 Windows 组件>Windows Defender 攻击防护>攻击防护>使用一组常见的攻击防护设置。
选择“已启用 ”并键入 XML 文件 的位置,然后选择“确定”。
PowerShell
可以将 PowerShell 谓词 Get
或 Set
与 cmdlet ProcessMitigation
一起使用。 使用 Get
列出设备上启用的任何缓解措施的当前配置状态。
-Name
添加 cmdlet 和应用 exe,查看该应用的缓解措施:
Get-ProcessMitigation -Name processName.exe
重要
尚未配置的系统级缓解措施将显示 NOTSET
状态。
- 对于系统级别设置,
NOTSET
表示已应用该缓解措施的默认设置。 - 对于应用级别设置,
NOTSET
表示将应用缓解措施的系统级别设置。 每个系统级缓解措施的默认设置都可在 Windows 安全中心查看。
使用 Set
以以下格式配置每个缓解措施:
Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>
其中:
-
<范围>:
-
-Name
表示应将缓解措施应用于特定应用。 在此标志之后指定应用的可执行文件。-
-System
表示应在系统级别应用缓解措施
-
-
-
<操作>:
-
-Enable
以启用缓解措施 -
-Disable
以禁用缓解措施
-
-
<缓解措施>:
- 缓解措施的 cmdlet 以及任何子选项(首尾加空格)。 每个缓解措施用逗号隔开。
例如,若要在文件夹 C:\Apps\LOB\tests 中使用 ATL thunk 仿真和名为 testing.exe 的可执行文件启用数据执行防护 (DEP) 缓解,并防止该可执行文件创建子进程,可以使用以下命令:
Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation
重要
用逗号隔开每个缓解措施选项。
如果要在系统级别应用 DEP,请使用以下命令:
Set-Processmitigation -System -Enable DEP
若要禁用缓解,可以将 -Enable
替换为 -Disable
。 但是,对于应用级缓解措施,此操作强制仅对该应用禁用缓解。
如果需要将缓解还原回系统默认值,则还需要包括 -Remove
cmdlet,如以下示例所示:
Set-Processmitigation -Name test.exe -Remove -Disable DEP
下表列出了要与 -Enable
或 -Disable
cmdlet 参数一起使用的各个 缓解措施(以及可用的审核)。
缓解措施类型 | 适用对象 | 缓解措施 cmdlet 参数关键字 | 审核模式 cmdlet 参数 |
---|---|---|---|
控制流保护 (CFG) | 系统和应用级别 |
CFG , StrictCFG , SuppressExports |
审核不可用 |
数据执行保护(DEP) | 系统和应用级别 |
DEP , EmulateAtlThunks |
审核不可用 |
强制图像随机化(强制 ASLR) | 系统和应用级别 | ForceRelocateImages |
审核不可用 |
随机内存分配(由下而上 ASLR) | 系统和应用级别 |
BottomUp , HighEntropy |
审核不可用 |
验证异常链(SEHOP) | 系统和应用级别 |
SEHOP , SEHOPTelemetry |
审核不可用 |
验证堆完整性 | 系统和应用级别 | TerminateOnError |
审核不可用 |
任意代码防护(ACG) | 仅限应用级别 | DynamicCode |
AuditDynamicCode |
阻止低完整性图像 | 仅限应用级别 | BlockLowLabel |
AuditImageLoad |
阻止远程图像 | 仅限应用级别 | BlockRemoteImages |
审核不可用 |
阻止不受信任的字体 | 仅限应用级别 | DisableNonSystemFonts |
AuditFont , FontAuditOnly |
代码完整性防护 | 仅限应用级别 |
BlockNonMicrosoftSigned , AllowStoreSigned |
AuditMicrosoftSigned, AuditStoreSigned |
禁用扩展点 | 仅限应用级别 | ExtensionPoint |
审核不可用 |
禁用 Win32k 系统调用 | 仅限应用级别 | DisableWin32kSystemCalls |
AuditSystemCall |
不允许子进程 | 仅限应用级别 | DisallowChildProcessCreation |
AuditChildProcess |
导出地址筛选(EAF) | 仅限应用级别 |
EnableExportAddressFilterPlus 、 EnableExportAddressFilter [1] |
审核不可用 [2] |
导入地址筛选(IAF) | 仅限应用级别 | EnableImportAddressFilter |
审核不可用 [2] |
模拟执行(SimExec) | 仅限应用级别 | EnableRopSimExec |
审核不可用 [2] |
验证 API 调用(CallerCheck) | 仅限应用级别 | EnableRopCallerCheck |
审核不可用 [2] |
验证处理使用情况 | 仅限应用级别 | StrictHandle |
审核不可用 |
验证映像依赖项完整性 | 仅限应用级别 | EnforceModuleDepencySigning |
审核不可用 |
验证堆栈完整性(StackPivot) | 仅限应用级别 | EnableRopStackPivot |
审核不可用 [2] |
[1]:使用以下格式为进程启用 DLL 的 EAF 模块:
Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll
[2]:无法通过 PowerShell cmdlet 对此缓解措施进行审核。
自定义通知
有关在触发规则并阻止应用或文件时自定义通知的信息,请参阅 Windows 安全中心。
删除攻击防护缓解措施
若要重置 (撤消或删除) 攻击防护缓解措施,请参阅 Exploit Protection 参考。
另请参阅
提示
想要了解更多信息? Engage技术社区中的Microsoft安全社区:Microsoft Defender for Endpoint技术社区。