第1章 审计日志概述
审计日志?说白了就是系统里那些“谁、在什么时候、对什么资源、做了什么事”的全量记录。很多团队一开始觉得这东西就是合规部门拿来背锅用的,直到出了安全事件翻不到日志,才发现……原来命根子在这儿。
我个人的习惯是:任何系统上线之前,先问清楚日志怎么落、落多久、谁看得懂。这章我们先聊聊审计日志到底是什么,为什么我们非要搞自动化巡检,以及哪些场景最离不开它。
什么是审计日志
审计日志,也叫 audit log,是所有用户操作和管理行为的原始凭证。它跟应用日志不一样——应用日志关心“程序出了什么错”,审计日志关心“谁做的、什么时候做的、结果对不对”。
一句话概括:审计日志是系统操作行为的不可篡改的流水账。
一个典型的审计日志条目至少包含这几个字段:
| 字段 | 含义 | 示例 |
|---|---|---|
| 时间戳 | 操作发生的精确时间 | 2025-03-18 14:23:07.123 |
| 用户/身份 | 操作发起者 | admin@company.com |
| 事件类型 | 操作类别 | 登录、文件删除、权限变更 |
| 目标资源 | 被影响的对象 | /etc/passwd, 数据库表 user |
| 源 IP/设备 | 操作发起位置 | 192.168.1.100 |
| 结果状态 | 成功/失败/拒绝 | 失败(权限不足) |
我在项目中遇到过最典型的反面教材:某客户数据库被删了,查日志发现根本没有记录操作者,因为日志表每天凌晨被自动清空。嗯,从那时候起我就把日志保存策略锁死在24小时不可删改。
为什么需要自动化巡检
人工翻日志查问题?一天两天还行,量大了直接崩溃。我统计过一个中型公司的数据:每天产生约500万条审计日志,光登录事件就有80万条。人眼去扫?不现实。
自动化巡检的核心价值其实就三个:
- 降低漏检风险:规则引擎24小时扫,不会犯困、不会偷懒
- 缩短异常发现时间:人工可能要几小时甚至隔天,自动化做到秒级告警
- 标准化合规检查:不再依赖某个老员工的“经验判断”
我的经验:刚开始做巡检时总想搞个“万能规则”,其实分场景写几个小规则比一个大而全的规则更靠谱。我曾经一个正则表达式写太长,结果把正常操作全误报了。
为什么必须自动化?你想想看,合规审计要求“每个管理员操作都要能追溯到人”,手动去翻日志根本满足不了SLA。再加上云原生环境下服务实例会频繁扩缩容,日志源动态变化,不自动化你连日志从哪来都找不齐。
典型应用场景
我接触过的项目中,用得最多的场景是下面几个:
- 权限异动监控:半夜有人给普通账号加管理员权限,立刻告警
- 敏感数据访问审计:谁读了客户个人信息表,导出次数是否超标
- 违规登录检测:同一个IP在5分钟内失败登录超过10次
- 配置变更追踪:防火墙规则被改了、数据库备份策略被禁了
- 合规日结报表:每天自动生成当天的审计摘要,发给合规负责人
注意:不要等出了事再开巡检。我曾经接手过一个项目,系统上线两年从来没看过审计日志,直到被监管机构罚款……那天晚上我和运维兄弟一起从几十TB冷存储里捞数据,差点没累死。
下面这张图直观展示了从原始日志到自动化巡检的完整链路。你看,日志先采集,然后进规则引擎做模式匹配,命中规则后触发告警,同时写入可视化仪表板。整个过程不需要人碰数据——这才是自动化。
我个人建议,刚入门不要贪多,先挑一个场景做试点(比如权限异动监控),跑通以后再复制到其他场景。自动化巡检不是一蹴而就的事,但一旦跑起来,你可能会跟我一样——再也不想回到手动翻日志的日子。