应急响应_日志分析篇
字数 1691 2025-08-18 11:38:32
Linux日志分析完全指南
一、Linux日志类型概述
Linux系统中的日志主要分为三大类:
1. 内核及系统日志
- 由syslog/rsyslog统一管理
- 配置文件路径:
/etc/rsyslog.conf或/etc/syslog.conf - 记录内核消息和各种系统程序消息
2. 用户日志
- 记录用户登录及退出系统的相关信息
- 包括:用户名、登录终端、登录时间、来源主机、进程操作等
3. 程序日志
- 由应用程序自行管理,不通过syslog服务
- 日志格式因程序而异,差异较大
二、关键日志文件及其位置
Linux系统日志一般存放在/var/log/目录下,以下是重要日志文件:
| 日志文件 | 用途描述 |
|---|---|
| /var/log/messages | 记录内核消息及应用程序的公共日志信息,包括启动、IO错误、网络错误等 |
| /var/log/cron | 记录crond计划任务产生的事件消息 |
| /var/log/dmesg | 记录系统引导过程中的各种事件信息 |
| /var/log/maillog | 记录电子邮件活动 |
| /var/log/lastlog | 记录最近几次成功登录和最后一次失败登录事件 |
| /var/log/rpmpkgs | 记录系统中安装的rpm包列表信息 |
| /var/log/secure | 记录用户登录认证过程中的事件信息(应急响应中最常用) |
| /var/log/wtmp | 记录用户登录、注销及系统启动/停机事件(二进制格式) |
| /var/log/utmp | 记录当前登录用户的详细信息(二进制格式) |
三、日志分析方法
1. 文本日志分析工具
对于文本格式日志(如messages、secure等):
tail:查看日志尾部more/less:分页查看cat:查看全部内容grep:查找特定内容
2. 二进制日志分析工具
对于二进制格式日志(如wtmp、utmp):
last:查看wtmp日志w/who:查看utmp日志lastlog:显示所有用户最近一次登录信息
四、安全日志分析实战
1. 分析SSH暴力破解
# 定位爆破root账号的IP及次数
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
# 提取所有爆破IP
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
# 分析爆破使用的用户名
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
2. 分析成功登录
# 登录成功的IP及次数
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
# 登录成功的详细信息(日期、用户名、IP)
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
3. 用户账户变更监控
# 监控用户添加
grep "useradd" /var/log/secure
# 监控用户删除
grep "userdel" /var/log/secure
4. 二进制日志分析
# 查看wtmp日志(用户登录历史)
last
# 查看特定时间前的登录记录
last -t 20190426120950
# 查看当前登录用户
w
who
# 查看所有用户最近登录时间
lastlog
五、Web应用日志分析
Web服务器日志(如access_log、error_log)可记录攻击者行为:
- 目录枚举攻击痕迹
- 漏洞利用尝试
- 后门文件上传
- SQL注入尝试
分析示例:
# 提取攻击者访问路径
grep -E -o "/[a-zA-Z0-9_\-]+/" access.log | sort | uniq -c | sort -nr
六、日志分析工具推荐
1. 商业平台
- 360星图
- Splunk(机器数据引擎)
- 赛克蓝德SeciLog
- 日志易
- 瀚思安全易
- LogInsight
- 江南天安彩虹WEB攻击溯源平台
2. 开源项目
- ELK Stack(Elasticsearch+Logstash+Kibana)
- Scribe(Facebook)
- Chukwa(Apache)
- Kafka
- Flume(Cloudera)
七、日志分析高级技巧
-
日志清理检测:突然缺失的日志时间段可能表明攻击者清理了日志
-
时间线分析:建立攻击时间线,还原攻击路径
-
多源日志关联:结合系统日志、应用日志、安全设备日志进行综合分析
-
异常行为检测:
- 非工作时间登录
- 异常地理位置登录
- 特权账户异常操作
-
持久化检测:
- 异常cron任务
- 异常启动项
- 隐藏后门账户
八、日志管理最佳实践
-
集中化存储:将多台服务器的日志集中存储,防止本地日志被篡改
-
日志轮转:配置logrotate防止日志文件过大
-
访问控制:严格限制日志文件的访问权限
-
完整性保护:使用数字签名或哈希值验证日志完整性
-
长期归档:重要日志长期保存,满足合规要求
九、总结
日志分析是安全应急响应的核心环节,通过分析可以:
- 发现正在发生的攻击
- 还原攻击路径
- 识别攻击者关心的系统资源
- 发现已知或未知的攻击方法
- 为后续防御提供依据
随着大数据技术的发展,日志分析正从传统的手工分析向自动化、智能化方向发展,数据驱动安全已成为必然趋势。