Lek-glitch/Log-analyzer
GitHub: Lek-glitch/Log-analyzer
一个用 Python 编写的安全日志分析器,从 SSH 认证日志中自动提取失败登录记录并标记疑似暴力破解的 IP 地址。
Stars: 0 | Forks: 0
# 登录失败 / 暴力破解日志分析器
一款 Python 工具,用于解析 SSH 样式的身份验证日志,统计每个 IP 地址的失败登录尝试次数,并标记表现出暴力破解攻击迹象的 IP。
## 为什么开发此工具
SOC 分析师和蓝队花费大量时间筛选日志文件以发现攻击模式。该项目实现了这一过程的自动化——将原始嘈杂的日志数据转化为清晰、可操作的报告,这正是 Splunk 或 ELK stack 等真实 SIEM 工具中所使用的那种检测逻辑。
## 功能
- 使用 regex 解析标准的 SSH 身份验证日志格式
- 统计每个 IP 地址的失败尝试次数
- 追踪每个 IP 尝试过的唯一用户名数量(常见的暴力破解指标)
- 将超过可配置阈值的 IP 标记为“SUSPICIOUS”
- 提供可选的 CSV 导出功能以用于生成报告
## 使用的技术
- Python 3
- `re` (regex) 用于日志解析
- `collections.defaultdict` 用于计数
- `csv` (标准库) 用于导出
- `argparse` 用于 CLI 参数
## 运行方式
```
git clone https://github.com/yourusername/log-analyzer.git
cd log-analyzer
python log_analyzer.py sample_auth.log
```
更改灵敏度或导出 CSV 报告:
```
python log_analyzer.py sample_auth.log --threshold 3 --output report.csv
```
项目中包含了一个示例日志文件 (`sample_auth.log`),因此您无需自己的服务器日志即可立即进行测试。
## 示例输出
```
=================================================================
Failed Login Report
=================================================================
IP Address Attempts Unique Users Tried Status
-----------------------------------------------------------------
192.168.1.50 6 5 SUSPICIOUS
203.0.113.7 2 1 ok
10.0.0.15 1 1 ok
-----------------------------------------------------------------
Total unique IPs seen : 3
Suspicious IPs (>= 5 attempts): 1
Flagged: 192.168.1.50
=================================================================
```
## 我的收获
- 如何编写 regex 模式来可靠地解析半结构化日志数据
- 暴力破解攻击在日志层面是什么样的(来自单一 IP 的多次尝试、许多不同的用户名)
- 如何设计可配置的检测阈值,而不是硬编码规则
- 真实的 SOC/蓝队工具如何将原始日志转化为决策
## 未来改进
标签:MSSQL, 红队行动, 逆向工具