第4章:日志类型与来源——系统、应用、数据库、网络、安全设备

咱们开始聊日志类型之前,我得先问一句:你手里管的那些设备,每天产生多少日志?

我见过不少团队,一说“日志保留”,就一股脑把所有日志全开着,硬盘塞爆了再删。嗯,说白了,这是给自己埋坑。PCI DSS 要求我们保留日志,但不是所有日志都得留着过年。

我个人习惯把日志来源分成五类:系统、应用、数据库、网络、安全设备。每一类的保留周期、存储粒度、审计重点都不一样。咱们一个一个拆开看。

4.1 系统日志(System Logs)

系统日志是所有日志的基础。包括 Windows 事件日志、Linux Syslog、AIX 的 errpt 等。说白了,它记录的是操作系统层面的动作:谁登录了、谁重启了、磁盘满了没有。

PCI DSS 要求(10.2.2):记录所有对系统组件的访问,尤其是特权用户的访问。

我个人的经验是:很多公司只保留 Windows 安全日志,忽略了系统事件日志和应用事件日志。但你想想看,攻击者清除了登录记录,系统事件里可能还留有他留下的痕迹。

我在项目中遇到过,某客户只保留了 30 天系统日志,结果审计时发现一年前的入侵行为已经无法追溯。那是真头疼。

我给你的建议:把系统日志的保留周期设为至少 12 个月。如果你磁盘吃紧,至少确保 3 个月内能在线检索,9 个月可以归档存储。这是 PCI DSS 10.7 条的底线。

4.2 应用日志(Application Logs)

应用日志是最容易被忽视的。很多开发团队只管写业务代码,日志输出格式、保留策略根本不关心。你要知道,PCI DSS 10.2 明确要求记录所有对持卡人数据的访问。

应用日志里包含的东西太多了:

  • 用户登录成败
  • 交易操作的详细记录
  • 访问持卡人数据的请求
  • 应用异常和错误

我曾经处理过一个案例:一个电商网站被攻击,攻击者通过 SQL 注入拿到了数据库中所有卡号。幸好应用日志记录了每个请求的源 IP 和参数,配合 Web 服务器日志,我们才还原了整个攻击链。

注意:应用日志里如果包含了完整的 PAN(主账号),你记得要做截断或掩码处理。不要直接明文记录卡号,否则就算保留再久,也是个巨大的合规风险。

避坑指南:我曾经见过一个团队,把所有应用日志直接写入同一个文件,也不切割。然后文件越滚越大,最后导致应用崩溃。我建议你做日志轮转,按天或按 100MB 切割,保留至少 90 天在线,12 个月归档。

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 连接记录,审计时谁会去翻?

老手的小秘密:网络设备日志一定要设置 NTP 同步。我做过一个项目,防火墙时间慢了 8 小时,结果日志和数据库日志对不上时间戳,整个调查白费了力气。

4.5 安全设备日志(Security Devices Logs)

安全设备包括 IPS/IDS、WAF、防病毒、DLP、蜜罐等。它们记录的是安全事件:攻击尝试、病毒爆发、策略命中。

这类日志的地位非常特殊。一方面,它是攻击发生时的第一手证据,保留周期必须长。另一方面,很多安全设备默认产生的告警量巨大,有大量的误报。

我个人的经验:安全设备日志至少保留 12 个月。而且我建议你开启日志的“误报分类”,别把正常的扫描行为也当成攻击记录。否则到了审计时,你会被海量无意义的告警淹没。

4.6 一张图看懂日志来源与保留关系

下面用一张 SVG 图,把这五类日志的关系给你捋清楚。我特地没画太复杂,捡核心的讲。

PCI DSS 日志类型与来源核心结构 PCI DSS 日志保留要求 系统日志 应用日志 数据库日志 网络设备日志 安全设备日志 这五类日志覆盖了持卡人数据环境的全部边界 每一类都必须满足 PCI DSS 10.2-10.7 的保留和审计要求 建议保留周期:12 个月 部分日志可缩短至 90 天 但必须满足审计追溯需求

4.7 怎么判断哪种日志需要保留更久?

很多学员会问:是不是所有设备日志都得保留 12 个月?

我说不一定。PCI DSS 10.7 说的是“至少保留 12 个月”。但你可以根据风险评估来微调。比如:

  • 核心持卡人数据系统:所有日志至少 12 个月,建议无限期保留关键变更记录
  • 中间件和消息队列:保留 3~6 个月,除非涉及交易链路
  • 外围网络设备:通常 6 个月就够了,但防火墙变更日志必须 12 个月
  • 沙箱/测试环境:保留 90 天,除非你在里面处理了真实持卡人数据

我自己的原则是:拿不准的,就按 12 个月来。这比少留了被审计开项强。

特别提醒:日志保留周期不是一成不变的。我记得有一次审计,QSA 要求我们提供测试数据库的两年前的变更记录。为什么?因为那次变更涉及了持卡人数据的迁移。所以,任何可能接触持卡人数据的系统,它的日志我都建议至少保留 12 个月。

4.8 本章小结

五类日志来源,五条核心要求,一套统一的保留周期策略。你不必对所有日志一视同仁,但必须确保每类日志都能回答审计师的追问:谁、做了什么、什么时候做的、结果如何。

下节课咱们会聊日志的时间同步问题。你别小看这个,很多公司日志保留得倒是够久,结果时间戳对不上,等于白留。