Ubuntu Tomcat日志中如何识别攻击行为
导读:Ubuntu Tomcat日志识别攻击行为的实用指南 一 日志位置与关键文件 常见路径:Tomcat 日志通常位于 /var/log/tomcatX/(X 为版本号)或 /opt/tomcatX/logs/(取决于安装方式)。 关键日志与...
Ubuntu Tomcat日志识别攻击行为的实用指南
一 日志位置与关键文件
- 常见路径:Tomcat 日志通常位于 /var/log/tomcatX/(X 为版本号)或 /opt/tomcatX/logs/(取决于安装方式)。
- 关键日志与作用:
- catalina.out:标准输出与错误,适合排查异常堆栈、启动失败、可疑报错。
- localhost_access_log:访问日志,记录每次 HTTP 请求的 IP、时间、方法、URL、状态码、UA、Referer 等,是识别扫描与攻击的主战场。
- localhost..log / catalina..log:按日期滚动的本地日志,便于按时间段定位事件。
- 建议:统一收集与备份日志,便于取证与复盘。
二 快速排查命令与示例
- 实时查看与关键字定位:
- 实时看控制台输出:
tail -f /var/log/tomcat9/catalina.out - 错误与异常:
grep -i "ERROR\|Exception" /var/log/tomcat9/catalina.out - 统计错误数量:
awk '/ERROR/ { count++} END { print "ERROR count:", count} ' /var/log/tomcat9/catalina.out
- 实时看控制台输出:
- 访问日志高频异常:
- 高频 404(扫描特征):
awk '{ ip[$1]++; } END { for(i in ip) if(ip[i]> 100) print i, ip[i]} ' /opt/tomcat9/logs/localhost_access_log.* | sort -nrk2 - 可疑 UA(爬虫/工具):
grep -iE "nmap|sqlmap|burp|python-requests|curl|scanner" /opt/tomcat9/logs/localhost_access_log.* - 可疑路径(备份、敏感、管理):
grep -Ei "\.(jsp|jspx|war|zip|bak|old)$|/manager/html|/host-manager|/jmx-console|/axis2|/solr|/struts|/shell|\.env|\.git" /opt/tomcat9/logs/localhost_access_log.* - 可疑上传(multipart):
grep -i "multipart/form-data" /opt/tomcat9/logs/localhost_access_log.* - 管理接口探测(401/403 频繁):
grep -E "/manager/html|/host-manager" /opt/tomomcat9/logs/localhost_access_log.* | awk '{ code[$9]++; } END { for(c in code) print c, code[c]} '
- 高频 404(扫描特征):
- 时间线定位(配合文件系统取证):
- 发现可疑文件后,用
stat查看时间戳,回到访问日志按分钟级检索同 IP 的相邻请求,还原攻击链。
- 发现可疑文件后,用
- 说明:Tomcat 默认访问日志不记录 POST 请求体,若需还原利用细节,需结合应用日志、WAF/反向代理日志或流量镜像。
三 常见攻击在日志中的特征与排查要点
| 攻击类型 | 日志特征关键词或模式 | 排查要点 |
|---|---|---|
| 目录遍历/敏感文件读取 | 大量 …/、/etc/passwd、.git/、.env、.bak 等 | 关注 200/206 与 404 的比例,结合 UA 与来源 IP 聚类 |
| SQL 注入 | 参数含 '、"、UNION、SELECT、INSERT、–、%27 等 | 观察 5xx/4xx 异常波动与相似参数反复尝试 |
| XSS/命令注入 | 参数含 、onerror=、; 、** | 、$()、%3C** 等 |
| 文件上传漏洞 | multipart/form-data、异常扩展名 .jsp/.jspx/.war/.php | 即使 200,也要核对上传目录与落盘文件 |
| WebShell 后门访问 | 访问 .jsp/.jspx 后门、含 cmd、shell、exec、eval 等 | 结合文件时间戳与访问日志定位首次落地与后续利用 |
| 管理接口探测/暴力 | /manager/html、/host-manager、401/403 高频 | 若同 IP 多次尝试,结合防火墙/安全组封禁 |
| 框架漏洞利用 | /struts、/showcase.action、/doUpload.action 等 | 关注异常 200 与后续可疑文件写入 |
| CSRF 可疑线索 | Referer 来自外部站点、同参数重复提交 | 与业务正常参数对比,确认是否为诱导提交 |
| DDoS/暴力扫描 | 同一 IP 短时间高并发、状态码异常集中 | 统计每分钟请求数与失败率,联动限流/封禁 |
| 反序列化/未授权访问 | JMX、AJP 异常访问、异常堆栈 | 核对是否启用 AJP/未授权 JMX,必要时关闭或加固 |
| 以上特征需结合多日志源与上下文验证,避免误报。 |
四 集中化分析与告警
- 使用 ELK Stack(Elasticsearch + Logstash + Kibana) 或 Graylog 集中采集与可视化:
- Logstash 示例(解析 catalina.out):
- input: file 路径指向 catalina.out
- filter: grok 解析时间戳、日志级别、类名与消息
- output: 写入 ES,按日创建索引(如 tomcat-logs-YYYY.MM.dd)
- Kibana/Graylog 建立仪表盘:错误趋势、高频 IP、可疑路径 TopN、上传请求占比、管理接口 401/403 告警。
- Logstash 示例(解析 catalina.out):
- 自动化监控:编写脚本定时检索 ERROR/Exception、高频 404、可疑 UA/路径,触发邮件/钉钉/企业微信告警。
五 处置与加固建议
- 立即处置:对确认的恶意 IP/网段 实施封禁(iptables/firewalld/云安全组),保留现场日志与取证材料(原始日志、文件时间戳、快照)。
- 访问控制:
- 限制管理接口访问(仅内网/跳板机),禁用默认账号,强口令与多因素。
- 未使用则关闭 AJP Connector(或设为 -1),减少攻击面。
- 协议与端口:启用 HTTPS/TLS,禁用不必要的 HTTP 方法(PUT/DELETE/TRACE 等),限制并发连接数。
- 运行与部署:关闭 autoDeploy,移除未使用组件(如示例应用、未使用 Connector/JMX),及时打补丁修复已知漏洞(如反序列化类漏洞)。
- 纵深防护:在 Tomcat 前部署 WAF(如 ModSecurity + OWASP CRS) 过滤常见注入与 WebShell 上传特征。
- 日志与监控:开启详尽的日志记录与滚动策略,持续审计与告警,形成闭环。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Tomcat日志中如何识别攻击行为
本文地址: https://pptw.com/jishu/768242.html
