日志分析入门:access.log 找攻击痕迹

从 access.log 的结构、常见攻击痕迹、过滤命令和证据保留开始,帮助初学者把 Web 日志变成可分析的安全线索。

写在前面:合法学习边界

日志分析是防守方常用技能。本文只讲如何在授权范围内分析自己系统的日志。请不要把日志内容、账号信息、用户数据或敏感路径发布到公共位置。

一、为什么 access.log 重要

Nginx/Apache 的 access.log 记录了每个 HTTP 请求的基本信息。它通常能告诉分析师:

1
2
3
4
谁在什么时候访问了什么路径
请求状态是什么
来自哪个 IP
响应大小和耗时是多少

安全分析不是只看 500,还要看:

1
2
3
4
5
6
大量 404
短时间大量 401/403
异常 User-Agent
异常路径
异常请求方法
重复失败登录

二、access.log 的基本结构

典型字段包括:

1
2
3
4
5
6
7
IP
时间
请求行
状态码
响应字节数
Referer
User-Agent

示例:

1
1.2.3.4 - - [29/Aug/2026:06:25:00 +0800] "GET /login HTTP/1.1" 200 1234 "https://example.com/" "Mozilla/5.0"

三、常见攻击痕迹

1. 扫描探测

特征:

1
2
3
4
大量 404
访问不存在路径
目录枚举
工具 User-Agent

2. 爆破尝试

特征:

1
2
3
大量 401/403
重复请求同一登录接口
短时间高频访问

3. SQL 注入尝试

特征:

1
2
3
4
5
单引号
and 1=1
union select
%27
sleep

4. XSS 尝试

特征:

1
2
3
<script>
onerror
javascript:

5. 文件遍历

特征:

1
2
../../etc/passwd
%2e%2e/

四、常用分析命令

1. 查看最近日志

1
tail -n 100 /var/log/nginx/access.log

2. 统计状态码

1
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

3. 查找 404

1
grep '" 404 ' /var/log/nginx/access.log

4. 查找可疑关键字

1
grep -Ei "select|union|script|passwd|\.env" /var/log/nginx/access.log

5. 统计高频 IP

1
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head

五、日志保留原则

1
2
3
4
不要随意删除原始日志
先备份再排查
不要把敏感信息复制到公共位置
记录分析过程

六、日志分析的结论写法

示例:

1
2
3
发现:10.0.0.20 在 10 分钟内对 /admin/login 发起 400 多次请求,返回大量 401。
风险:可能存在口令爆破尝试。
建议:锁定来源 IP;检查是否成功登录;增强 MFA 和告警。

七、小结

日志不是流水账,而是时间线。会看日志的人,能把碎片信息拼成攻击链路。