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 日志知识体系总览

为了让你对整个日志体系有个直观认识,我画了张图:

审计日志知识体系框架图 审计日志知识体系 系统日志 应用日志 安全日志 谁(Who) 什么时间(When) 做了什么(What) 来源(Source) 目标(Target) 结果(Result) 原始日志 格式化日志 结构化日志 日志的核心价值 溯源取证 | 合规审计 | 异常检测 | 故障排查 | 责任认定 安全运维决策与响应

这张图把日志的脉络理清楚了。从三大日志类型出发,到日志记录的五个核心要素,再到日志的价值,最终落到安全运维决策。后面的课程,我们会沿着这个框架一步步深入。

1.4 日志管理的基本原则

最后,分享几条我这些年总结的日志管理原则,算是给新手避坑:

  1. 能记则记,能多记别少记——硬盘便宜,日志丢了找不回来
  2. 集中管理,统一格式——别让日志散落在各个服务器上,用 ELK、Splunk 之类的工具收拢
  3. 保护日志不被篡改——日志要是被改了,等于没记。用 WORM 存储或区块链存证
  4. 定期备份,异地容灾——服务器被端了,日志还在别的地方
  5. 日志不是存了就完事——要有人看、有规则分析、有告警响应

特别提醒:千万别把日志和业务数据放在同一个磁盘上。我见过一个案例,攻击者把业务数据库删了,顺带把日志也清了,彻底变成无头悬案。日志一定要 独立存储、独立备份。

好了,第一章就到这里。日志这东西,看着简单,但真正用好它的人不多。后面的章节,我会带你一步步深入,从日志采集、解析、分析到自动化响应,把整个链路打通。