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),编写查询条件检索异常登录并生成简易报表。
通过以上策略与落地示例,平台可实现可追溯、可证明、可落地的审计与留存闭环,同时满足合规与成本控制需求。