Tomcat日志识别安全问题的实用指南
一 日志体系与关键位置
二 常见攻击在日志中的特征与排查方法
| 攻击类型 | 访问日志特征(示例) | 错误/应用日志特征 | 快速排查命令/方法 |
|---|---|---|---|
| 暴力破解管理后台 | 短时间内大量对 /manager/html 或 /host-manager/html 的 401/403/200 交替;同一 IP 多次失败后出现 200 | 应用或 catalina 日志出现登录成功/失败记录 | grep -E '"(GET |
| SQL注入 | 参数含 ’ OR ‘1’='1、UNION SELECT、ORDER BY 等;伴随 500/400 与数据库报错 | 出现 SQLException、语法错误、堆栈指向数据访问层 | grep -Ei "union |
| XSS/命令注入 | URL/参数含 、onerror=、; ls /、** | whoami** 等 | 反射/存储型触发导致异常或可疑输出 |
| 文件上传滥用 | multipart/form-data 请求体异常大;可疑扩展名 .jsp/.php/.jspx;上传路径泄露 | 上传失败异常、路径遍历或写入失败 | grep -Ei “Content-Type: multipart/form-data” ./access |
| 目录遍历/敏感文件泄露 | 频繁访问 WEB-INF/web.xml、/etc/passwd、.git/.svn 等 | 异常堆栈或 404/403 与路径拼接错误 | grep -Ei "../ |
| DoS/扫描 | 同一 IP 高并发、短时间海量请求;大量 404/405;异常 User-Agent | CPU/内存告警、线程耗尽 | awk ‘{ip[$1]++;ua[$6]++}END{for(i in ip)print ip[i],i; for(u in ua)print ua[u],u}’ ./access |
| 协议/方法滥用 | 使用 PUT/DELETE/TRACE/OPTIONS 等危险方法访问业务资源 | 方法不被允许或异常响应 | grep -Ei '" (PUT |
| 版本泄露/信息暴露 | 响应头或错误页含 Server: Apache-Coyote/1.1 及 Tomcat 版本;堆栈暴露实现细节 | 错误页打印完整堆栈与路径 | 在访问日志中检索 Server 头与异常页特征;curl -I 目标URL 检查响应头 |
三 从异常日志定位根因
四 处置与加固建议