Windows Defender Application Control (WDAC) 是一种基于策略的应用程序控制机制,旨在通过定义允许或拒绝执行哪些应用程序来增强 Windows 系统的安全性。C:\Windows\System32\CodeIntegrity 文件夹与 Windows Defender Application Control (WDAC) 策略之间有着重要的关系

Windows Defender Application Control (WDAC) 是一种基于策略的应用程序控制机制,旨在通过定义允许或拒绝执行哪些应用程序来增强 Windows 系统的安全性。WDAC 可以限制未知或不受信任的代码执行,减少恶意软件的感染风险,特别是在企业环境中。

WDAC 策略通过配置和管理一组规则,控制哪些应用程序、脚本或其他可执行文件能够运行。它是 Windows 10 和 Windows Server 2016 及更高版本的一项重要安全功能。

WDAC 策略的核心概念:

  1. 策略级别

    • 应用程序控制策略:控制系统上能够运行的所有应用程序。
    • 驱动程序控制策略:控制能够加载到系统中的驱动程序。
  2. 策略模式

    • 基本模式:系统中只允许已知的应用程序运行,未明确授权的应用程序将被阻止。
    • 审计模式:虽然应用程序会被阻止,但会生成事件日志,以便管理员审计并查看哪些应用程序被阻止。
    • 强制模式:这是更严格的模式,所有未在策略中明确允许的应用程序都无法运行。
  3. 策略文件: WDAC 策略通常由一个 XML 格式的策略文件定义,管理员可以使用 PowerShell 或组策略来配置和管理。

  4. 策略配置方式

    • 基于文件哈希:通过文件的哈希值来唯一标识应用程序,确保只有预定义的文件能运行。
    • 基于证书:通过数字证书来标识合法的应用程序或驱动程序,允许运行所有通过该证书签名的应用程序。
    • 基于路径:可以允许特定路径下的应用程序运行,但通常不推荐在生产环境中使用这种方法,因为路径可能会被更改。
    • 基于Windows应用程序符号:允许指定特定的应用程序包或已知的应用程序符号。
  5. PowerShell命令: 管理员可以使用 PowerShell 来创建、修改和应用 WDAC 策略。常用命令包括:

    • New-CIPolicy:创建新的应用程序控制策略。
    • Set-CIPolicy:应用策略。
    • Get-CIPolicy:查看当前的应用程序控制策略。
    • ConvertFrom-CIPolicy 和 ConvertTo-CIPolicy:将现有的策略转换为不同的格式。

配置 WDAC 策略的步骤:

  1. 生成默认策略文件: 可以使用 PowerShell 来创建一个基本的策略文件。例如,使用以下命令创建一个基于文件哈希的策略:

    powershellCopy Code
    New-CIPolicy -Level Publisher -User
  2. 审计与测试: 在正式应用之前,建议使用审计模式来测试 WDAC 策略,确保不会误阻止合法的应用程序:

    powershellCopy Code
    Set-CIPolicy -PolicyFile "path_to_policy.xml" -AuditMode
  3. 应用策略: 一旦策略验证无误,可以将其应用到系统中:

    powershellCopy Code
    Set-CIPolicy -PolicyFile "path_to_policy.xml" -EnforceMode
  4. 监控和管理: 使用事件查看器监控 WDAC 策略的执行情况。WDAC 会记录被阻止的应用程序及其原因。

  5. 发布策略: 在组织环境中,策略可以通过组策略进行分发和应用,以便集中管理多个机器上的 WDAC 设置。

WDAC 的优势:

  • 防止恶意软件执行:通过仅允许签名且受信任的代码运行,极大降低了恶意软件通过未签名或未授权代码感染系统的风险。
  • 细粒度控制:可以基于证书、文件哈希、路径等多种方式进行配置,提供灵活的应用程序控制。
  • 增强的安全性:通过与 BitLocker、Device Guard 等技术结合,WDAC 能提供更全面的安全防护。
  • 企业合规性:适合用于政府和企业环境,确保合规性并防止未经授权的应用程序或脚本在企业系统中运行。

需要注意的事项:

  • 兼容性问题:应用程序可能会因为其未签名或不符合策略要求而无法执行,配置时需要确保所有常用和业务相关的应用程序都在策略中列出。
  • 策略管理:WDAC 策略通常需要细心维护,尤其是在频繁安装新应用程序或更新系统时,策略文件需要及时更新以适应新的变化。
  • 对用户体验的影响:在强制执行模式下,某些未授权的应用程序将无法运行,这可能会影响终端用户的工作效率。

总结:

WDAC 是 Windows 系统中的一种强大的安全控制机制,帮助管理员对应用程序的执行进行细粒度的控制,增强系统的防护能力。在使用过程中,合理配置和管理策略是确保系统安全与正常运行的关键。


在 Windows 操作系统中,C:\Windows\System32\CodeIntegrity 文件夹与 Windows Defender Application Control (WDAC) 策略之间有着重要的关系。CodeIntegrity 是 Windows 操作系统的一部分,负责处理与应用程序控制相关的安全任务,特别是在启用 WDAC(Windows Defender 应用程序控制)时,CodeIntegrity 文件夹中的组件和数据文件起到了核心作用。

1. CodeIntegrity 文件夹的作用

C:\Windows\System32\CodeIntegrity 文件夹用于存储与 Windows 代码完整性(Code Integrity, CI)相关的配置和日志。Code Integrity 是一种安全机制,旨在确保系统上的代码(如驱动程序、应用程序、脚本等)在执行时未被篡改或损坏,并且符合管理员或系统的策略要求。

WDAC 是 Code Integrity 的一个重要组成部分,主要用于控制哪些应用程序和驱动程序能够在系统上执行。CodeIntegrity 文件夹中的文件和日志帮助系统执行这些策略并验证代码的完整性。

2. WDAC 策略与 CodeIntegrity 的关系

WDAC 策略实际上是 Code Integrity 安全框架中的一种具体应用。它允许管理员制定应用程序控制策略,确保只有经过验证的应用程序或驱动程序能够运行。具体来说,WDAC 策略的执行和管理通过以下几个步骤与 CodeIntegrity 文件夹中的组件密切相关:

  • 策略存储和执行

    • WDAC 策略通常以 XML 文件形式存储并由管理员配置。该策略文件指定了哪些程序、脚本或驱动程序可以在系统上执行,通常是通过文件哈希、证书或其他标识符进行控制。
    • 当 WDAC 策略被应用到系统时,Code Integrity 驱动程序会读取这些策略并对正在运行的程序进行检查。如果某个程序不符合策略要求(如它未签名或被标记为恶意),Code Integrity 会阻止该程序的执行。
  • 策略文件存储与管理

    • WDAC 策略通常在文件系统中存储,并且与 CodeIntegrity 相关联。管理员可以使用 PowerShell 或组策略来创建、编辑和应用这些策略文件。
    • 在 CodeIntegrity 文件夹内,系统会存储由 Windows Defender 或管理员定义的策略文件,并确保这些策略的有效性和一致性。
  • 日志记录与审计

    • CodeIntegrity 文件夹还存储与 WDAC 相关的审计日志。当某个应用程序被阻止执行时,这些日志文件会记录被拒绝的事件。管理员可以通过查看这些日志来审计和诊断执行中出现的问题。
  • 驱动程序和代码签名验证

    • 除了应用程序,WDAC 还可以控制驱动程序的加载。CodeIntegrity 驱动程序会检查驱动程序是否符合 WDAC 策略的要求(例如,驱动程序是否有有效的签名)。
    • 如果没有通过验证,Code Integrity 将阻止驱动程序加载,以防止未授权或恶意的驱动程序影响系统的稳定性和安全性。

3. WDAC 策略与 CodeIntegrity 的工作流

  1. 策略定义:管理员定义 WDAC 策略,指定允许或拒绝的应用程序、驱动程序等。这个策略文件存储在某个位置,并由 CodeIntegrity 驱动程序使用。

  2. 策略应用:WDAC 策略被应用到 Windows 系统中。此时,CodeIntegrity 驱动程序会根据这些策略来控制和检查每个启动或执行的程序。

  3. 策略验证:当一个应用程序尝试执行时,CodeIntegrity 驱动程序会验证该程序是否符合 WDAC 策略。验证方式包括检查文件的哈希值、证书或路径等。

  4. 审计和记录:如果某个程序不符合 WDAC 策略要求,CodeIntegrity 会阻止它的执行,并将事件记录到日志中,供管理员后续审计和分析。

4. WDAC 策略的实际效果

  • 强制执行:在强制模式下,所有不符合策略要求的程序都将被拒绝执行,包括未经签名或不在允许列表中的应用程序和驱动程序。
  • 审计模式:在审计模式下,虽然程序会被阻止,但 CodeIntegrity 会将这些拒绝事件记录到日志文件中,而不会中断程序的执行。

5. 常见的 CodeIntegrity 文件和目录

  • **C:\Windows\System32\CodeIntegrity\CI**:存储 Windows 系统生成的代码完整性和应用程序控制策略日志文件。
  • C:\Windows\System32\CodeIntegrity\CIPolicy.xml:存储 WDAC 策略文件,包含所有的允许或拒绝规则。

6. PowerShell 命令和 WDAC 策略管理

管理员可以使用 PowerShell 来管理 WDAC 策略,并将其与 CodeIntegrity 文件夹中的日志文件进行交互。例如:

  • Get-WdacPolicy:查看当前的 WDAC 策略。
  • Set-WdacPolicy:设置和应用 WDAC 策略。
  • New-CIPolicy:创建新的 Code Integrity 策略文件。

总结

C:\Windows\System32\CodeIntegrity 文件夹是 Windows 系统中实现代码完整性验证和执行控制的核心组件之一,WDAC 策略的执行离不开该文件夹中的配置文件和日志。通过 Code Integrity 驱动程序,WDAC 策略能够有效地限制恶意软件、未签名或未经授权的程序和驱动程序的执行,从而增强 Windows 系统的安全性。


C:\Windows\System32\CodeIntegrity>dir /s /b
C:\Windows\System32\CodeIntegrity\CIPolicies
C:\Windows\System32\CodeIntegrity\driver.stl
C:\Windows\System32\CodeIntegrity\driversipolicy.p7b
C:\Windows\System32\CodeIntegrity\previous.driver.stl
C:\Windows\System32\CodeIntegrity\Tokens
C:\Windows\System32\CodeIntegrity\Update
C:\Windows\System32\CodeIntegrity\CIPolicies\Active
C:\Windows\System32\CodeIntegrity\CIPolicies\Internal
C:\Windows\System32\CodeIntegrity\CIPolicies\Staged
C:\Windows\System32\CodeIntegrity\CIPolicies\Active\{784C4414-79F4-4C32-A6A5-F0FB42A51D0D}.cip
C:\Windows\System32\CodeIntegrity\CIPolicies\Active\{A072029F-588B-4B5E-B7F9-05AAD67DF687}.cip
C:\Windows\System32\CodeIntegrity\Tokens\Active
C:\Windows\System32\CodeIntegrity\Tokens\Staged
C:\Windows\System32\CodeIntegrity\Update\Previous

 

posted @ 2024-12-26 00:54  suv789  阅读(11)  评论(0编辑  收藏  举报