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, 红队行动, 逆向工具