第一章:审计日志与异常检测概述
各位同学好,我是老周。今天咱们来聊聊这门课的第一个话题——审计日志和异常检测。
先讲个我自己的事吧。几年前我接手一个安全审计项目,客户说他们的系统被黑了,但翻遍所有日志什么也没发现。我去了现场才发现,他们压根没开审计功能。嗯,这其实挺常见的。很多人觉得日志是存来应付合规检查的,但说白了,它更像是系统的“黑匣子”。
什么是审计日志?
审计日志,就是系统里谁、在什么时候、从哪、干了什么、结果什么样的记录。它不是普通的业务日志,而是专门用来做事后追溯和问责的。
- 谁:用户ID、服务账号、进程名
- 什么时候:时间戳,最好精确到毫秒
- 从哪:源IP、终端设备、地理位置
- 干了什么:操作类型、执行命令、访问资源
- 结果:成功、失败、异常中断
你想想看,一条完整的审计日志应该像一份合同签名记录:时间、地点、人物、事件、结果,一个都不能少。
为什么要做异常检测?
我举个例子。有一次我在监控一个电商平台的后台日志,发现凌晨三点有个账号连续登录了一百多次,每次都输错密码。这种模式叫“暴力破解”。如果用肉眼去翻,每天几千万条日志,根本不可能。这就是为什么我们要用异常检测——让机器帮我们发现那些“不对劲”的事。
| 场景 | 正常行为 | 异常行为 |
|---|---|---|
| 登录系统 | 工作时间内,1-3次尝试 | 凌晨批量登录,失败率高 |
| 文件访问 | 读取自己负责的部门文件 | 频繁访问高层人事档案 |
| 数据导出 | 一次导出不超过1000条 | 半夜导出全量用户表 |
| 命令执行 | 日常运维操作 | 执行rm -rf / 等危险命令 |
异常检测的核心挑战
我在实际项目里遇到过三个最头疼的问题:
- 标签难拿:什么是“正常”什么是“异常”,很多时候得靠人肉打标。我曾经在金融项目里,让安全团队花了整整两周标注了五万条日志,才勉强够用。
- 概念漂移:系统行为在变。比如双十一期间流量暴增,之前的正常阈值全都不准了。
- 误报率:如果模型一天给你报一千个“异常”,你就不会再信它了。
避坑提醒:我曾经见过一个团队,一上来就上深度学习模型,结果调了三个月,精度始终上不去。后来发现,他们连最基本的基线都没建好。记住:先做规则,后做模型。
本章知识体系
下面这张图,是把审计日志异常检测的整体流程串起来。你看,从最底层的日志采集,到特征提取,再到模型训练和告警响应,每一步都有它的门道。
关键点:审计日志异常检测不是单纯的机器学习问题,而是系统工程。从日志格式统一、时序对齐、特征工程到模型上线,每一步都可能踩坑。我在项目里习惯先搭一个最简单的统计基线——比如每小时登录次数超过3倍标准差就算异常——再逐步加规则和模型。
什么时候需要上模型?
不是所有场景都需要AI。我的建议是:
- 规则能搞定:比如禁止凌晨访问——写个if判断就够了,别折腾模型。
- 规则搞不定:比如发现一个员工突然在周末下载了平时从没碰过的项目代码——这种模式匹配不了,需要模型去学“他到底在干嘛”。
我的习惯:先拉三个月的历史日志做基线分析,算出每个维度的均值、标准差和分位数。这一步做扎实了,后续无论是上规则还是上模型,心里都有底。