Daudk-sudo/python-security-log-analyser
GitHub: Daudk-sudo/python-security-log-analyser
一个 Python 编写的身份验证日志分析工具,通过统计失败登录和检测密码喷洒行为来发现可疑活动。
Stars: 0 | Forks: 0
# Python 安全日志分析器
## 描述
这个 Python 程序分析存储在 "auth.log" 中的身份验证日志,以识别可疑的登录活动。它通过统计 IP 地址和用户名的失败登录尝试次数,检测可能的密码喷洒行为,跳过无效的日志条目,最后将结果保存到名为 "security_report.txt" 的文档中。
这个项目帮助我练习了 Python 的文件处理、字典、循环和基本的检测逻辑。
## 功能
- 从日志文件中读取身份验证事件
- 按 IP 地址统计失败登录尝试次数
- 按用户名统计失败登录尝试次数
- 检测某个 IP 是否正在针对多个不同的用户名(密码喷洒)
- 跳过无效的日志条目
- 将结果保存到文本报告中
- 在终端中显示结果
## 日志格式
"auth.log" 中的每一行包含五个由逗号分隔的值。其结构如下:
timestamp,event_type,username,ip_address, result
例如:
2026-07-27 09:16:10,LOGIN,bob,10.0.0.15,FAILED
字段说明:
Timestamp - 登录尝试发生的时间
Event type - 事件类型
Username - 涉及的账户
IP address - 登录尝试的源地址
Result: SUCCESS 或 FAILED
## 运行方式
1. 将 auth.log 放在与 log_analyser.py 相同的文件夹中
2. 在项目文件夹中打开终端
3. 运行 log_analyser.py
4. 在终端和 security_report.txt 中查看结果
## 示例输出
--- IP ADDRESS ANALYSIS ---
ALERT: 10.0.0.15 had 6 failed login attempts
NORMAL: 192.168.1.45 had 1 failed login attempt
--- USERNAME ANALYSIS ---
ALERT: bob had 4 failed login attempts
NORMAL: alice had 1 failed login attempt
--- PASSWORD SPRAYING ANALYSIS ---
ALERT: 10.0.0.15 targeted 4 different usernames
注意:具体内容会根据 auth.log 中的实际内容而有所不同
## 检测规则
来自同一 IP 的多次失败 - 当一个 IP 地址产生 5 次或以上失败的登录尝试时生成警报
针对同一用户名的多次失败 - 当一个用户名遭到 3 次或以上失败的登录尝试时生成警报
可能的密码喷洒 - 当一个 IP 地址针对 3 个或以上不同的用户名时生成警报
## 局限性
- 该程序仅支持指定的以逗号分隔的日志格式
- 它仅分析失败的登录事件
- 密码喷洒检测可能会产生误报
## 未来改进
- 添加基于时间的检测,例如两分钟内出现五次失败
- 支持将结果导出为 CSV 或 JSON 格式
- 使程序能够分析真实的 Windows 或 Linux 身份验证日志
标签:Python, 密码喷洒检测, 无后门, 逆向工具