第4章:日志类型与来源——系统、应用、数据库、网络、安全设备
咱们开始聊日志类型之前,我得先问一句:你手里管的那些设备,每天产生多少日志?
我见过不少团队,一说“日志保留”,就一股脑把所有日志全开着,硬盘塞爆了再删。嗯,说白了,这是给自己埋坑。PCI DSS 要求我们保留日志,但不是所有日志都得留着过年。
我个人习惯把日志来源分成五类:系统、应用、数据库、网络、安全设备。每一类的保留周期、存储粒度、审计重点都不一样。咱们一个一个拆开看。
4.1 系统日志(System Logs)
系统日志是所有日志的基础。包括 Windows 事件日志、Linux Syslog、AIX 的 errpt 等。说白了,它记录的是操作系统层面的动作:谁登录了、谁重启了、磁盘满了没有。
PCI DSS 要求(10.2.2):记录所有对系统组件的访问,尤其是特权用户的访问。
我个人的经验是:很多公司只保留 Windows 安全日志,忽略了系统事件日志和应用事件日志。但你想想看,攻击者清除了登录记录,系统事件里可能还留有他留下的痕迹。
我在项目中遇到过,某客户只保留了 30 天系统日志,结果审计时发现一年前的入侵行为已经无法追溯。那是真头疼。
4.2 应用日志(Application Logs)
应用日志是最容易被忽视的。很多开发团队只管写业务代码,日志输出格式、保留策略根本不关心。你要知道,PCI DSS 10.2 明确要求记录所有对持卡人数据的访问。
应用日志里包含的东西太多了:
- 用户登录成败
- 交易操作的详细记录
- 访问持卡人数据的请求
- 应用异常和错误
我曾经处理过一个案例:一个电商网站被攻击,攻击者通过 SQL 注入拿到了数据库中所有卡号。幸好应用日志记录了每个请求的源 IP 和参数,配合 Web 服务器日志,我们才还原了整个攻击链。
注意:应用日志里如果包含了完整的 PAN(主账号),你记得要做截断或掩码处理。不要直接明文记录卡号,否则就算保留再久,也是个巨大的合规风险。
4.3 数据库日志(Database Logs)
数据库日志是审计的重头戏。PCI DSS 10.2.2 要求记录所有对数据库结构和持卡人数据的修改。
主要包括:
- 数据库审计日志(如 Oracle 的 FGA、SQL Server 的 Audit)
- 事务日志(Redo/Undo)
- 错误日志
- 连接日志(谁、什么时间、从哪连进来)
我个人习惯保留数据库审计日志 不少于 12 个月。因为调查一起数据泄露事件,你往往需要追溯到几个月甚至更早的数据库操作记录。
但事务日志不一样。事务日志的保留周期主要取决于你的恢复策略,一般来说 7~30 天就够了。你不用保留一年的事务日志,那是浪费空间,而且恢复时也不需要那么旧的数据。
| 数据库日志类型 | PCI DSS 保留要求 | 我的建议周期 |
|---|---|---|
| 审计日志(Access & Changes) | 至少 12 个月 | 12 个月+ |
| 连接/登录日志 | 至少 12 个月 | 12 个月 |
| 事务日志(Redo/Undo) | 取决于恢复点目标 | 7~30 天 |
| 错误日志 | 至少 12 个月 | 12 个月 |
4.4 网络设备日志(Network Devices Logs)
网络设备包括防火墙、路由器、交换机。它们产生的日志主要是网络连接记录:谁从哪来,要到哪去,被拒绝了还是被放行了。
PCI DSS 10.3 要求记录每个事件的:用户 ID、事件类型、日期时间、成功或失败标识、源 IP、受影响的系统。网络设备日志正好能覆盖这部分需求。
我常碰到的问题是:流量大,日志产生快。比如核心交换机,每秒可能产生几万条流量日志。如果全量保留,存储成本非常高。
我自己常用的做法是:对网络设备日志做分层处理。关键日志(比如防火墙拒绝事件、访问控制变更)保留 12 个月。普通流量日志(允许的流量连接)保留 3~6 个月就够了。你想想看,一年前的正常 HTTP 连接记录,审计时谁会去翻?
4.5 安全设备日志(Security Devices Logs)
安全设备包括 IPS/IDS、WAF、防病毒、DLP、蜜罐等。它们记录的是安全事件:攻击尝试、病毒爆发、策略命中。
这类日志的地位非常特殊。一方面,它是攻击发生时的第一手证据,保留周期必须长。另一方面,很多安全设备默认产生的告警量巨大,有大量的误报。
我个人的经验:安全设备日志至少保留 12 个月。而且我建议你开启日志的“误报分类”,别把正常的扫描行为也当成攻击记录。否则到了审计时,你会被海量无意义的告警淹没。
4.6 一张图看懂日志来源与保留关系
下面用一张 SVG 图,把这五类日志的关系给你捋清楚。我特地没画太复杂,捡核心的讲。
4.7 怎么判断哪种日志需要保留更久?
很多学员会问:是不是所有设备日志都得保留 12 个月?
我说不一定。PCI DSS 10.7 说的是“至少保留 12 个月”。但你可以根据风险评估来微调。比如:
- 核心持卡人数据系统:所有日志至少 12 个月,建议无限期保留关键变更记录
- 中间件和消息队列:保留 3~6 个月,除非涉及交易链路
- 外围网络设备:通常 6 个月就够了,但防火墙变更日志必须 12 个月
- 沙箱/测试环境:保留 90 天,除非你在里面处理了真实持卡人数据
我自己的原则是:拿不准的,就按 12 个月来。这比少留了被审计开项强。
4.8 本章小结
五类日志来源,五条核心要求,一套统一的保留周期策略。你不必对所有日志一视同仁,但必须确保每类日志都能回答审计师的追问:谁、做了什么、什么时候做的、结果如何。
下节课咱们会聊日志的时间同步问题。你别小看这个,很多公司日志保留得倒是够久,结果时间戳对不上,等于白留。