当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 Windows Defender 应用程序控制

作者:精品下载站 日期:2024-12-14 02:59:12 浏览:16 分类:玩电脑

使用 Windows Defender 应用程序控制


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 添加了一项新功能,以支持审核模式下的 WDAC 策略。在审核模式下,PowerShell 在受限语言模式下运行不受信任的脚本,不会出现错误,但会将消息记录到事件日志中。日志消息描述了策略处于强制模式时将应用哪些限制。

查看审核事件

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

或者,您可以从提升的 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 将在脚本中审核事件所在的当前位置中断到命令行脚本调试器发生。这允许您调试代码并实时检查脚本的当前状态。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯