Table of Contents

使用 Windows Defender 应用程序控制 WDAC 加固 Windows

注意事项:

  • Windows Server 2016/2019 或 1903 版本之前的系统仅支持一次使用单个传统策略。
  • Windows Server Core 版本支持 WDAC ,但某些依赖 AppLocker 的组件将无法工作。
  • 请在实施或测试前阅读 推荐阅读 。

本集合使用的脚本和工具列表:

参考的其他配置来源:

说明:

XML 与 BIN:

  • 简单来说,“XML” 策略用于本地应用于机器,“BIN” 文件用于通过 组策略 或 Microsoft Intune 强制执行。虽然本地部署可以使用 XML、BIN 或 CIP 策略,但一般建议尽可能使用 XML,尤其是在审计或故障排除时。

策略说明:

  • 默认策略:
    • “默认”策略仅使用 WDAC-Toolkit 中的默认功能。
  • 推荐策略:
    • “推荐”策略使用默认功能以及微软推荐的 阻止 和 驱动阻止 规则。
  • 审计策略:
    • “审计”策略仅记录规则的例外情况。用于在您的环境中测试,以便您可以根据需要修改策略以适应环境需求。
  • 强制策略:
    • “强制”策略不允许任何规则例外,应用程序、驱动程序、dll 等如果不符合将被阻止。

可用策略:

  • XML:
    • 仅审计:
      • WDAC_V1_Default_Audit_{version}.xml
      • WDAC_V1_Recommended_Audit_{version}.xml
    • 强制执行:
      • WDAC_V1_Default_Enforced_{version}.xml
      • WDAC_V1_Recommended_Enforced_{version}.xml
  • BIN:
    • 仅审计:
      • WDAC_V1_Default_Audit_{version}.bin
      • WDAC_V1_Recommended_Audit_{version}.bin
    • 强制执行:
      • WDAC_V1_Default_Enforced_{version}.bin
      • WDAC_V1_Recommended_Enforced_{version}.bin
  • CIP:
    • 仅审计:
      • WDAC_V1_Default_Audit\{uid}.cip
      • WDAC_V1_Recommended_Audit\{uid}.cip
    • 强制执行:
      • WDAC_V1_Default_Enforced\{uid}.cip
      • WDAC_V1_Recommended_Enforced\{uid}.cip

在脚本中更新以下行以本地使用您想要的策略:

$PolicyPath = "C:\temp\Windows Defender\CIP\WDAC_V1_Recommended_Enforced\*.cip"
#https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/deployment/deploy-wdac-policies-with-script
ForEach ($Policy in (Get-ChildItem -Recurse $PolicyPath).Fullname) {
  $PolicyBinary = "$Policy"
  $DestinationFolder = $env:windir+"\System32\CodeIntegrity\CIPolicies\Active\"
  $RefreshPolicyTool = "./Files/EXECUTABLES/RefreshPolicy(AMD64).exe"
  Copy-Item -Path $PolicyBinary -Destination $DestinationFolder -Force
  & $RefreshPolicyTool
}

或者,您可以使用 组策略 或 Microsoft Intune 来强制执行 WDAC 策略。

审计:

您可以在事件查看器中查看 WDAC 事件日志,路径如下:

Applications and Services Logs\Microsoft\Windows\CodeIntegrity\Operational

推荐阅读:

如何运行脚本:

手动安装:

如果是手动下载,必须从包含所有文件的目录中以管理员权限的 PowerShell 启动脚本,文件来自 GitHub 仓库

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force
Get-ChildItem -Recurse *.ps1 | Unblock-File
.\sos-wdachardening.ps1