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安全, 无后门, 蓝队分析, 逆向工具