MEH1999/auth-log-analyzer

GitHub: MEH1999/auth-log-analyzer

一个无依赖的 Python 命令行工具,通过解析 Linux 身份验证日志并运用滑动窗口突发检测规则识别 SSH 暴力破解源 IP。

Stars: 0 | Forks: 0

# auth-log-analyzer [![tests](https://static.pigsec.cn/wp-content/uploads/repos/cas/6b/6b52945adbf8d9e421fe243515ae54cfbd3da263f16b1eabda37cdc0b797b8eb.svg)](https://github.com/MEH1999/auth-log-analyzer/actions/workflows/tests.yml) ![python](https://img.shields.io/badge/python-3.9%2B-blue) 一个轻量级、无依赖的 Python 工具,用于解析 Linux 身份验证日志 (`/var/log/auth.log`, `secure`),以提取**失败登录活动**并使用 滑动窗口突发规则检测**SSH 暴力破解源**。 这是我为了巩固检测工程基础知识而编写的——同样的分诊分析 流程,原本应用于 SIEM/EDR 遥测数据,现在精简到了最原始的日志层。 ## 为什么 在 Sentinel 中告警被触发之前,它最初只是日志中的一行。这个工具 重现了最初的分析步骤:将数千行嘈杂的 syslog 日志转化为 一份值得调查的简短 IP 列表。 ## 检测逻辑 1. 解析 `Failed password`、`Invalid user` 和 `Accepted password` 事件。 2. **按源 IP** 聚合失败记录,并记录被针对的用户名。 3. 计算任意 `--window` 分钟滑动窗口内最大的失败突发量 (`O(n)` 双指针扫描)。 4. 当某个 IP 的失败次数超过 `--threshold` **并且**达到该突发阈值时将其标记—— 这样缓慢、合法的重试就不会触发告警。 ## 用法 ``` python auth_log_analyzer.py examples/auth.log python auth_log_analyzer.py examples/auth.log --threshold 10 --window 5 --year 2025 python auth_log_analyzer.py examples/auth.log --csv report.csv python auth_log_analyzer.py examples/auth.log --chart top_offenders.png # optional (needs matplotlib) ``` ### 概览主要违规者 ![主要 SSH 暴力破解源](https://static.pigsec.cn/wp-content/uploads/repos/cas/83/83aa6e430fb227e232608818c21c68bbf2a6de7cfdf3d097798acc2f0a5b9e0a.png) ### 输出示例 ``` ============================================================ AUTH LOG ANALYSIS ============================================================ Unique source IPs : 29 Failed attempts : 83 Successful logins : 2 Rule : >= 8 failures in 5 min window ------------------------------------------------------------ SOURCE IP FAILS BURST TARGETED USERS 203.0.113.44 40 40 admin, deploy, git, oracle, postgres (+4) 203.0.113.88 18 17 root ------------------------------------------------------------ 2 IP(s) flagged for brute-force behaviour. ``` ## 测试 ``` python -m pytest # or: python tests/test_analyzer.py ``` ## 展示的技能 - 使用 `re` 进行日志解析、时间戳处理、dataclasses - 滑动窗口突发检测(双指针) - 使用 `argparse` 设计 CLI、CSV 报告生成 - 将原始事件映射为安全信号(MITRE ATT&CK **T1110 – Brute Force**) ## 路线图 - [ ] 对标记的源进行 GeoIP 富化 - [ ] 输出 JSON 以便接入 SIEM - [ ] 支持 `journalctl` / systemd-journal 输入
标签:PB级数据处理, Python, Web技术栈, 代码示例, 安全规则引擎, 安全运维, 数据分析, 无后门, 逆向工具