19.6.6 审计策略、合规与留存策略

在平台化日志管理中,审计策略、合规与留存策略是保障业务连续性与满足监管要求的核心环节。本节从审计范围、合规映射、留存分级与执行落地给出可执行方案,配套安装、配置、命令与排错示例。

审计策略要明确“谁、做了什么、在何时、对什么对象、结果如何”,并确保不可否认与可追溯。常见审计范围包括系统级、应用级、数据级与平台级操作。下图展示审计日志从采集到留存与合规证明的闭环路径。

文章图片

合规策略需映射到可验证的控制点,例如账号实名、权限可追溯、日志防篡改、访问控制与脱敏。建议建立“合规矩阵”,将监管条款与系统控制、证据字段一一对应并固化为配置模板。

留存策略建议按日志类型分级:安全审计与高风险操作 12–36 个月,业务访问与应用运行日志 3–12 个月,调试与低价值日志 7–30 天。冷数据可使用对象存储或低成本块存储,热数据用于检索与告警。对于监管要求的日志应启用 WORM 或对象存储版本化、哈希链校验。

以下为可落地的安装与配置示例(Linux + auditd + Filebeat + Elasticsearch/OpenSearch):

1)安装与启动 auditd(系统审计)

# RHEL/CentOS
sudo yum install -y audit
sudo systemctl enable --now auditd

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y auditd
sudo systemctl enable --now auditd

2)配置审计规则(系统级与关键文件)
文件路径:/etc/audit/rules.d/audit.rules

# 记录所有登录相关事件
-w /var/log/secure -p wa -k auth_log
-w /var/log/auth.log -p wa -k auth_log

# 记录sudo与配置变更
-w /etc/sudoers -p wa -k priv_esc
-w /etc/ssh/sshd_config -p wa -k ssh_cfg

# 记录用户管理与权限变更
-w /etc/passwd -p wa -k user_mgmt
-w /etc/group  -p wa -k user_mgmt

# 记录关键目录的写入与属性变更
-w /var/lib -p wa -k data_mgmt

加载规则并验证:

sudo augenrules --load
sudo auditctl -l     # 查看当前规则

3)Filebeat 采集与注入标准字段(统一审计字段)
文件路径:/etc/filebeat/filebeat.yml

filebeat.inputs:
  - type: log
    paths:
      - /var/log/audit/audit.log
    fields:
      log_type: audit
      system: linux
    fields_under_root: true

processors:
  - add_fields:
      target: ""
      fields:
        platform: ops
        env: prod
        audit_required: true

output.elasticsearch:
  hosts: ["http://es01:9200"]
  index: "audit-%{+yyyy.MM.dd}"

启动并确认采集:

sudo systemctl enable --now filebeat
sudo filebeat test output

4)索引生命周期策略(留存分级示例)

# 创建ILM策略:热30天,冷至365天,删除
curl -X PUT "http://es01:9200/_ilm/policy/audit_ilm" -H 'Content-Type: application/json' -d '{
  "policy": {
    "phases": {
      "hot":  { "actions": { "rollover": { "max_age": "30d" } } },
      "cold": { "min_age": "30d", "actions": { "allocate": { "require": { "data": "cold" } } } },
      "delete": { "min_age": "365d", "actions": { "delete": {} } }
    }
  }
}'

5)对象存储版本化与WORM(留存不可篡改示例)

# 以S3兼容存储为例:开启版本化与WORM保留
aws s3api put-bucket-versioning --bucket audit-logs \
  --versioning-configuration Status=Enabled

aws s3api put-object-lock-configuration --bucket audit-logs \
  --object-lock-configuration "ObjectLockEnabled=Enabled,Rule={DefaultRetention={Mode=COMPLIANCE,Days=365}}"

6)审计报表查询示例(字段标准化后可直接查询)

# 查询某用户过去24小时高风险操作
curl -X GET "http://es01:9200/audit-*/_search" -H 'Content-Type: application/json' -d '{
  "query": {
    "bool": {
      "must": [
        { "match": { "user.name": "alice" } },
        { "match": { "result": "fail" } }
      ],
      "filter": [
        { "range": { "@timestamp": { "gte": "now-24h" } } }
      ]
    }
  }
}'

排错与核查(常见问题快速定位)

# auditd 未生效
sudo systemctl status auditd
sudo ausearch -k auth_log | tail

# filebeat 采集失败
sudo journalctl -u filebeat -n 200 --no-pager
sudo filebeat test config -e

# ES/OS索引未生成
curl -s http://es01:9200/_cat/indices?v | grep audit

关键字段与命令说明
- -w 路径 -p 权限 -k key:auditd 监控指定文件的写入/属性变更并打上 key 便于检索。
- fields_under_root: true:将业务字段提升到根级,便于统一检索。
- ILM rollover:控制索引滚动,结合 delete 实现留存周期。

练习
1. 为 /etc/hosts 添加审计规则,验证在修改时生成审计日志并在 ES 中检索到。
2. 将审计日志留存从 365 天调整为 180 天,修改 ILM 后验证策略生效。
3. 模拟一个跨区域登录(更换出口 IP),编写查询条件检索异常登录并生成简易报表。

通过以上策略与落地示例,平台可实现可追溯、可证明、可落地的审计与留存闭环,同时满足合规与成本控制需求。