🔍 高级审计策略

组策略 GPO · 第 8 篇 · 适用于 Windows Server 2019 / 2022 / 2025

📑 目录

  1. 高级审核策略概述
  2. 文件系统审计
  3. AD 对象审计
  4. 登录与账户审计
  5. 日志集中管理
  6. 常见问题

1. 高级审核策略概述

路径:计算机配置 → 策略 → Windows 设置 → 安全设置 → 高级审核策略配置 → 审核策略

⚠️ 关键设置

启用高级审核策略前,必须在 GPO 中设置:计算机配置 → 策略 → Windows 设置 → 安全设置 → 高级审核策略配置 → 审核策略 → 全局设置 → 配置以下审核策略级别 → 选择 "仅高级审核策略配置"。否则基本审核策略会覆盖高级设置。

1.1 推荐审核配置

审核类别子类别成功失败
账户登录凭据验证
账户管理用户账户管理
账户管理安全组管理
详细追踪进程创建
登录/注销登录
登录/注销特殊登录
对象访问文件系统按需按需
对象访问注册表按需按需
策略变更审核策略变更
特权使用敏感特权使用

2. 文件系统审计

文件系统审计需要 两步:① GPO 启用文件系统审核 ② 在文件/文件夹上配置 SACL。

2.1 实战:审计财务文件夹的访问

1

GPO 启用:对象访问 → 文件系统 → 成功+失败

2

在文件服务器上配置文件夹 SACL:

PowerShell - 配置文件审计 SACL
# 获取文件夹当前 ACL
$path = "E:\Finance"
$acl = Get-Acl $path -Audit

# 创建审计规则:审计 Everyone 的读取和写入操作
$auditRule = New-Object System.Security.AccessControl.FileSystemAuditRule(
    "Everyone",
    "ReadData,WriteData",
    "ContainerInherit,ObjectInherit",
    "None",
    "Success,Failure"
)

# 添加审计规则
$acl.AddAuditRule($auditRule)
Set-Acl -Path $path -AclObject $acl

# 验证审计规则
Get-Acl $path -Audit | Select-Object -ExpandProperty Audit

2.2 查看文件审计日志

PowerShell - 查询文件访问事件
# 事件 ID 4663 = 对象访问尝试
Get-WinEvent -FilterHashtable @{
    LogName = Security
    ID = 4663
    StartTime = (Get-Date).AddHours(-1)
} | Select-Object TimeCreated,
    @{N=User;E={$_.Properties[1].Value}},
    @{N=Object;E={$_.Properties[6].Value}} -First 20

3. AD 对象审计

PowerShell - 配置 AD 对象审计
# 审计 OU 中用户对象的修改
$ou = "OU=Users,OU=财务部,DC=iehang,DC=cn"
$acl = Get-Acl "AD:\$ou" -Audit

# 审计所有人修改用户对象
$auditRule = New-Object System.DirectoryServices.ActiveDirectoryAuditRule(
    "Everyone",
    "Write",
    "Success,Failure",
    "Descendents",
    "bf967aba-0de6-11d0-a285-00aa003049e2"  # user GUID
)
$acl.AddAuditRule($auditRule)
Set-Acl -AclObject $acl -Path "AD:\$ou"

4. 登录与账户审计

PowerShell - 登录事件分析
# 查看最近的登录失败事件(ID 4625)
Get-WinEvent -FilterHashtable @{
    LogName = Security
    ID = 4625
} -MaxEvents 20 | Format-List TimeCreated, Message

# 查看特殊登录(管理员登录)事件 ID 4672
Get-WinEvent -FilterHashtable @{
    LogName = Security
    ID = 4672
} -MaxEvents 10 |
    Select-Object TimeCreated,
        @{N=Account;E={$_.Properties[1].Value}}

5. 日志集中管理

生产环境建议使用 Windows Event Forwarding (WEF)Splunk/ELK 集中收集日志。

PowerShell - 配置 WEF 订阅
# 在日志收集服务器上创建订阅
wecutil qc /q

# 创建订阅 XML 文件后导入
wecutil cs C:\Temp\SecurityEvents.xml

# 在客户端启用 WEF(通过 GPO)
# 计算机配置 → 管理模板 → Windows 组件 → 事件转发
# 配置"配置目标订阅管理器"

6. 常见问题

Q1:启用审计后安全日志很快就满了

① 增大安全日志大小(建议 1GB+)② 仅审计关键目录和操作 ③ 配置日志覆盖策略 ④ 使用 WEF 集中存储 ⑤ 避免对高频访问的目录启用审计

Q2:进程创建审计产生大量日志怎么办

进程创建审计(事件 4688)确实量大。建议:① 仅在需要取证时启用 ② 配合命令行审计(事件 4688 含 CommandLine)③ 使用日志过滤工具只保留关键进程 ④ 设置日志保留天数