DrVerzide/log-sentinel

GitHub: DrVerzide/log-sentinel

一款零依赖的 SSH 认证日志分析工具,用于检测暴力破解、用户枚举及可能的账号失陷。

Stars: 0 | Forks: 0

# log-sentinel 一款蓝队工具,用于分析 **SSH 认证日志**(`auth.log` / syslog 格式)并检测经典攻击模式,生成人类可读的报告和 JSON 报告。零运行时依赖 — 纯标准库实现。 ## 检测规则 | 规则 | 捕获内容 | 严重程度 | |------|-----------------|----------| | `brute_force` | 单个 IP 在滑动时间窗口内发生 N 次以上登录失败 | High / Critical | | `user_enumeration` | 单个 IP 尝试探测多个不同的用户名(`admin`、`oracle`、`postgres`…) | Medium | | `success_after_failures` | 累积了多次失败尝试的 IP 发生**成功**登录 — 表明暴力破解已得手的特征 | Critical | 所有阈值(尝试次数、窗口大小)均可通过 CLI 配置。 ## 安装 ``` git clone https://github.com//log-sentinel.git cd log-sentinel pip install . ``` ## 用法 ``` # 分析 log file log-sentinel /var/log/auth.log # 立即使用包含的 sample log 进行尝试 log-sentinel data/sample_auth.log # 针对 SIEM/dashboard 的自定义阈值 + JSON 报告 log-sentinel data/sample_auth.log --brute-threshold 8 --window 5 --json report.json ``` 输出示例: ``` ============================================================== LOG SENTINEL - SSH Authentication Analysis ============================================================== Events parsed : 20 Failed logins : 12 Accepted logins : 3 Invalid users : 4 Unique source IPs : 3 Top attacker IPs (by failed logins): 203.0.113.45 8 failures 198.51.100.23 4 failures Findings: 3 -------------------------------------------------------------- [CRIT] success_after_failures: Successful login as 'root' from 203.0.113.45 after 8 failed attempts - possible compromise [HIGH] brute_force: 8 failed logins within 10 min (8 total) from 203.0.113.45 [MED ] user_enumeration: 198.51.100.23 probed 4 distinct usernames: admin, oracle, postgres, test ============================================================== ``` 当存在检测结果时,进程将以状态码 `1` 退出,因此它可以作为脚本或 CI/监控任务的拦截条件。 ## 设计说明 - **Parser** (`parser.py`):基于 regex 将 syslog 解析为类型化的 `AuthEvent` dataclass。无法识别的行会被安全跳过。 - **Detector** (`detector.py`):每条规则都是针对事件列表的独立纯函数;brute force 使用 O(n) 滑动窗口算法。 - **Report** (`report.py`):渲染与检测完全分离,使得添加新的输出格式变得非常简单。 ## 运行测试 ``` pip install -e ".[dev]" pytest ``` ## 道德声明 这是一款**防御性**工具:它处理你已经拥有的日志,以揭示*针对*你系统的攻击。示例数据使用的是 RFC 5737 文档 IP。 ## 许可证 MIT
标签:Python, SSH, 安全规则引擎, 安全运营, 异常检测, 扫描框架, 文档结构分析, 无后门, 红队行动, 逆向工具