asherakhan/Web-Server-Log-Analyzer
GitHub: asherakhan/Web-Server-Log-Analyzer
一个无依赖的纯 Python 蓝队工具,用于扫描 Apache/Nginx 访问日志中的 Web 攻击痕迹并自动汇总最可疑的源 IP。
Stars: 0 | Forks: 0
# Web 服务器日志分析器
一个轻量级、无依赖的**蓝队**工具,用于扫描 Apache/Nginx 的
访问日志(Common 或 Combined Log Format),以发现 Web 攻击和
侦察痕迹,然后总结出最可疑的源 IP。
它是纯粹防御性的:它只**读取日志文件并报告发现**。
不执行任何请求、攻击或网络活动。其检测签名与
WAF 或 IDS 应用的规则属于同一类型。
## 为什么开发这个项目
Web 服务器不断受到探测,其访问日志是
攻击证据最丰富的来源之一——但没人会手动阅读成千上万行日志。
这个工具将这项分类工作自动化:它将攻击签名应用于每个请求,
关联每个源 IP 的行为,并筛选出少数值得调查的 IP。
它直接映射到面向 Web 的安全角色所关注的 **OWASP Top 10**
(注入、XSS、失效的访问控制)。
## 检测内容
| 类别 | 捕获示例 |
|----------|-----------------|
| **SQL 注入** | `UNION SELECT`, `' OR '1'='1`, `information_schema`, `SLEEP()` |
| **路径遍历 / LFI** | `../../etc/passwd`, `....//boot.ini`, `php://` |
| **跨站脚本攻击 (XSS)** | `
192.0.2.88 200 /profile?name=
[!] Scanner / attack-tool user-agents — 3 IP(s):
203.0.113.50 sqlmap
45.33.12.9 nuclei
185.220.101.4 nikto
[!] Directory enumeration (high 404 count) — 1 IP(s):
185.220.101.4 15 not-found responses
================================================================
TOP SUSPICIOUS SOURCE IPs
================================================================
45.33.12.9 4 category hit(s)
185.220.101.4 4 category hit(s)
203.0.113.50 3 category hit(s)
================================================================
```
## 工作原理
1. **解析** —— 将每一行与 Combined Log Format 的正则表达式进行匹配,
以提取 IP、请求路径、状态码和 user-agent。
2. **签名扫描** —— 使用分组的
正则表达式签名(SQLi、遍历、XSS、敏感路径)对 URL 解码后的请求路径进行测试。
3. **User-agent 扫描** —— 将 user-agent 与已知的
扫描器 / 攻击工具列表进行匹配。
4. **行为扫描** —— 统计每个 IP 的 `404` 响应次数,从而发现
单个请求无法揭示的目录枚举行为。
5. **关联分析** —— 对所有被标记的 IP 进行跨类别统计,并将
最严重的违规者在摘要中进行排名。
## 可能的扩展
- 对被标记的 IP 进行 GeoIP / ASN 扩充
- 基于 Rate 的检测(每秒请求数),用于应对 DoS / 爬取
- 输出为对 SIEM 友好的格式(ECS / CEF JSON)
- 根据发现的结果自动生成防火墙或 `fail2ban` 屏蔽规则
## 许可证
MIT —— 详见 [许可证](LICENSE)。
*作为一个实践安全项目而开发。`sample_access.log` 是合成的;所有
IP 均使用文档/保留地址范围 (RFC 5737 / RFC 1918)。*
标签:CISA项目, DOE合作, Python, SQL注入检测, Web安全, 无后门, 蓝队分析, 逆向工具