使用 Windows Defender 应用程序控制

您所在的位置:网站首页 shell引入脚本 使用 Windows Defender 应用程序控制

使用 Windows Defender 应用程序控制

2023-06-07 06:31| 来源: 网络整理| 查看: 265

使用 Windows Defender 应用程序控制 项目 06/01/2023

Windows 10 包括两种技术:可用于控制应用程序的 Windows Defender 应用程序控制 (WDAC) 和 AppLocker。 它们使你能够创建锁定体验,以帮助保护 PowerShell 环境

AppLocker 的构建基于软件限制策略的应用程序控制功能。 AppLocker 包含的功能和扩展,使你能够基于文件的唯一标识创建允许或拒绝应用运行的规则,并指定允许运行这些应用的用户或组。

注意

当在 WDAC 或 AppLocker 之间进行选择时,建议使用 WDAC(而不是 AppLocker)来实现应用程序控制。 Microsoft 正在不断改进 WDAC,并且 Microsoft 管理平台正在扩展对 WDAC 的支持。 尽管 AppLocker 可能会继续接收安全修补程序,但它不会接收功能增强功能。

WDAC 是随 Windows 10 引入的,允许组织控制哪些驱动程序和应用程序可以在其 Windows 设备上运行。 WDAC 设计为安全功能,遵循 Microsoft 安全响应中心 (MSRC) 定义的服务标准。

有关 AppLocker 和 WDAC 的详细信息,请参阅适用于 Windows 的应用程序控制以及 WDAC 和 AppLocker 功能可用性。

WDAC 策略实施

当 PowerShell 在 WDAC 策略下运行时,它会根据定义的安全策略更改其行为。 在 WDAC 策略下,PowerShell 在全语言模式下运行策略允许的受信任脚本和模块。 所有其他脚本和脚本块都不受信任,并在受约束的语言模式下运行。 当不受信任的脚本尝试执行受约束的语言模式下不允许的操作时,PowerShell 会引发错误。 很难知道脚本为何无法在受约束的语言模式下正确运行。

WDAC 策略审核

PowerShell 7.4-preview.4 添加了新的实验性功能 PSConstrainedAuditLogging。 启用此功能时,PowerShell 支持“审核”模式下的 WDAC 策略。 在审核模式下,PowerShell 在受约束的语言模式下运行不受信任的脚本且没有任何错误,但会将消息记录到事件日志中。 日志消息描述了如果策略处于“强制”模式,将应用哪些限制。

查看审核事件

PowerShell 将审核事件记录到 PowerShellCore/分析事件日志中。 必须启用分析日志。 若要在 Windows 事件查看器中启用分析日志,请右键单击“PowerShellCore/分析”日志,然后选择“启用日志”。

或者,可以从权限提升的 PowerShell 会话运行以下命令。

wevtutil.exe sl PowerShellCore/Analytic /enabled:true /quiet

可以在 Windows 事件查看器中查看事件,也可以使用 Get-WinEvent cmdlet 检索事件。

Get-WinEvent -LogName PowerShellCore/Analytic -Oldest | Where-Object Id -eq 16387 | Format-List TimeCreated : 4/19/2023 10:11:07 AM ProviderName : PowerShellCore Id : 16387 Message : WDAC Audit. Title: Method or Property Invocation Message: Method or Property 'WriteLine' on type 'System.Console' invocation will not be allowed in ConstrainedLanguage mode. At C:\scripts\Test1.ps1:3 char:1 + [System.Console]::WriteLine("pwnd!") + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FullyQualifiedId: MethodOrPropertyInvocationNotAllowed

事件消息包括将应用限制的脚本位置。 此信息可帮助你了解需要更改脚本的位置,使其在 WDAC 策略下运行。

重要

查看审核事件后,应禁用分析日志。 分析日志增长迅速,占用大量磁盘空间。

在 PowerShell 调试器中查看审核事件

如果将交互式 PowerShell 会话的 $DebugPreference 变量设置为 Break,则 PowerShell 将中断至发生审核事件的脚本中当前位置的命令行脚本调试器。 这样,就可以调试代码并实时检查脚本的当前状态。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3