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, 密码喷洒检测, 无后门, 逆向工具