1. 审计日志基础:什么是审计日志、日志的重要性、常见日志类型
各位同学好,我是老张。干安全运维这行十几年了,今天咱们聊聊最基础但也最容易被忽视的东西——审计日志。
说白了,审计日志就是系统里发生过的所有事情的“黑匣子”。谁、在什么时间、从哪台机器、干了什么事、结果怎么样,全记在里面。我经常跟团队说一句话:没有日志,安全就是瞎子摸象。
一句话定义:审计日志是按时间顺序记录的、不可篡改的、描述系统或用户行为的数字证据。
1.1 为什么日志这么重要?
你可能觉得日志就是些文本文件,占硬盘又没啥用。嗯,我以前也这么想。直到有一次,客户的生产环境被勒索病毒加密了,业务全停。老板急得团团转,问我“谁干的?怎么进来的?”
我打开日志系统,从防火墙日志、服务器登录日志、应用访问日志一路追下去。花了三个小时,终于定位到:一台跳板机的弱口令被爆破,攻击者用运维账号登录后横向移动,最后投毒。
你看,没有日志,你连攻击路径都还原不了。日志的重要性,我总结了几点:
- 溯源取证——出了事,日志是唯一的“目击证人”
- 合规审计——等保、ISO 27001、GDPR,哪个不要求日志留存?
- 异常检测——正常行为有规律,异常行为藏不住
- 故障排查——系统崩了,不看日志你靠猜?
- 责任认定——谁删了库?谁改了配置?日志说了算
避坑指南:我曾经见过一家公司,日志只保留7天。结果被监管部门检查时,半年前的攻击事件根本查不到记录。罚款+通报,惨痛教训。我个人建议:核心日志至少保留180天,关键系统建议保留1年以上。
1.2 常见日志类型
日志不是只有一种。你想想看,系统里跑着操作系统、应用软件、安全设备,它们各自都会产生日志。我习惯把它们分成三大类:
| 日志类型 | 来源 | 典型内容 | 我关注的重点 |
|---|---|---|---|
| 系统日志 | 操作系统、内核、驱动 | 登录事件、进程启动、磁盘错误、系统重启 | 异常重启、非工作时间登录、权限变更 |
| 应用日志 | Web服务器、数据库、中间件 | HTTP请求、SQL查询、API调用、业务操作 | SQL注入尝试、越权访问、高频请求 |
| 安全日志 | 防火墙、IDS/IPS、WAF、杀毒软件 | 攻击告警、恶意流量、病毒查杀、策略变更 | 告警误报率、漏报、策略被绕过 |
1.2.1 系统日志
系统日志是最底层的。Linux 下看 /var/log/messages 或 /var/log/secure,Windows 下看事件查看器。我举个例子:
# Linux 系统日志示例(/var/log/secure)
Mar 15 02:33:17 web01 sshd[12345]: Failed password for root from 192.168.1.100 port 54321 ssh2
Mar 15 02:33:20 web01 sshd[12345]: Accepted password for admin from 192.168.1.100 port 54322 ssh2
Mar 15 02:33:22 web01 sudo: admin : TTY=pts/0 ; PWD=/home/admin ; USER=root ; COMMAND=/bin/rm -rf /data/backup
看到没?凌晨2点33分,有人用 root 尝试登录失败,然后换成 admin 登录成功,接着执行了删除命令。这明显有问题——正常运维谁会半夜删备份?
我的习惯:系统日志重点关注 认证事件 和 特权操作。我会写一个定时脚本,每天凌晨扫描 /var/log/secure 中所有 sudo 执行记录,发现异常直接告警。
1.2.2 应用日志
应用日志最复杂,也最有价值。因为攻击者最终的目标是应用层的数据。拿 Nginx 访问日志举例:
# Nginx 访问日志示例
192.168.1.100 - - [15/Mar/2025:02:33:17 +0800] "GET /admin/login.php?user=admin&pass=123456 HTTP/1.1" 200 5324
192.168.1.100 - - [15/Mar/2025:02:33:18 +0800] "GET /admin/user_list.php?id=1%20UNION%20SELECT%20*%20FROM%20users HTTP/1.1" 500 234
第一行是暴力破解登录,第二行是 SQL 注入尝试。应用日志里藏着大量攻击痕迹,关键是你得会看。
1.2.3 安全日志
安全设备产生的日志,通常告警级别最高。但有个问题——告警太多,全是误报。我遇到过最夸张的一次,某 WAF 一天产生 50 万条告警,安全团队根本看不过来。
所以我的建议是:安全日志要分级处理。高危告警(如 RCE 攻击、提权成功)立即响应;中危告警(如扫描探测)汇总分析;低危告警(如合规检查)归档留底。
1.3 日志知识体系总览
为了让你对整个日志体系有个直观认识,我画了张图:
这张图把日志的脉络理清楚了。从三大日志类型出发,到日志记录的五个核心要素,再到日志的价值,最终落到安全运维决策。后面的课程,我们会沿着这个框架一步步深入。
1.4 日志管理的基本原则
最后,分享几条我这些年总结的日志管理原则,算是给新手避坑:
- 能记则记,能多记别少记——硬盘便宜,日志丢了找不回来
- 集中管理,统一格式——别让日志散落在各个服务器上,用 ELK、Splunk 之类的工具收拢
- 保护日志不被篡改——日志要是被改了,等于没记。用 WORM 存储或区块链存证
- 定期备份,异地容灾——服务器被端了,日志还在别的地方
- 日志不是存了就完事——要有人看、有规则分析、有告警响应
特别提醒:千万别把日志和业务数据放在同一个磁盘上。我见过一个案例,攻击者把业务数据库删了,顺带把日志也清了,彻底变成无头悬案。日志一定要 独立存储、独立备份。
好了,第一章就到这里。日志这东西,看着简单,但真正用好它的人不多。后面的章节,我会带你一步步深入,从日志采集、解析、分析到自动化响应,把整个链路打通。