songagona2017-ops/soc-toolkit
GitHub: songagona2017-ops/soc-toolkit
一个纯标准库实现的 Python SOC 工具包,用于解析 SSH 日志、检测暴力破解与凭证失陷,并输出可操作的分诊报告。
Stars: 0 | Forks: 0
# SOC 分析师工具包
一个小巧且**无外部依赖的 Python 工具包**,它可以读取原始的 SSH `auth.log`,检测暴力破解活动,对恶意 IP 进行富化分析,并输出一份可直接用于分诊的报告。构建此工具是为了展示我能将检测逻辑转化为实际可用的代码——而不仅仅是在 SIEM 中点击操作。
## 功能
- **解析器** (`log_parser.py`) — 基于 regex 的 OpenSSH 日志解析器 → 类型化的 `AuthEvent` 记录。
- **检测器** (`bruteforce_detector.py`) — 按源 IP 对失败记录进行分组,标记暴力破解行为,并在连续登录失败后出现成功登录时,标记**疑似凭证失陷**。
- **情报富化** (`ioc_enrich.py`) — 在本地离线检查 IP 是否匹配 CIDR 黑名单;如果设置了 `ABUSEIPDB_API_KEY`,可选开启实时的 **AbuseIPDB** 评分查询。
- **CLI** (`cli.py`) — 输出文本或 JSON 格式的报告;当发生疑似凭证失陷时以非零状态码退出(对 SOAR/CI 友好)。
- **测试** — 包含 `pytest` 测试套件,覆盖了解析、检测和富化功能。
## 快速开始
无需安装——核心代码仅使用了 Python 标准库。
```
cd soc-toolkit
# 文本报告
python -m soc_toolkit.cli --logfile sample_data/auth.log --blocklist sample_data/blocklist.txt
# JSON(通过管道传递给 jq、SIEM 或 ticketing webhook)
python -m soc_toolkit.cli --logfile sample_data/auth.log --json
# 更严格的阈值
python -m soc_toolkit.cli --logfile sample_data/auth.log --threshold 5
```
### 示例输出
```
================================================================
SOC TOOLKIT — BRUTE FORCE REPORT
================================================================
Log file : sample_data/auth.log
Events parsed : 17
Fail threshold : > 10
Findings : 1
----------------------------------------------------------------
[HIGH] 45.146.164.110
failed attempts : 12
successful logins : 1
targeted users : admin, jsmith, root
⚠ LIKELY COMPROMISE — success after failure burst
enrichment : BLOCKLISTED
----------------------------------------------------------------
```
## 运行测试
```
pip install pytest
python -m pytest -q
```
## 可选:实时威胁情报富化
```
export ABUSEIPDB_API_KEY=your_key_here
pip install requests
python -m soc_toolkit.cli --logfile sample_data/auth.log --blocklist sample_data/blocklist.txt
# enrichment 行现在包含 AbuseIPDB=
```
## 设计说明
- **离线优先:** 网络调用均为可选且尽力而为,因此可以在高度锁定的安全环境中运行。
- **可组合性:** 每个模块(解析 → 检测 → 富化)均可独立导入和测试。
- **映射至 ATT&CK:** 检测逻辑对标 [T1110](https://attack.mitre.org/techniques/T1110/),确保代码与 SIEM 规则讲述的是同一个故事。
## 路线图
- [ ] Windows Security EVTX 解析(4625/4624),以直接匹配 Sigma 规则
- [ ] 时间窗口检测(5 分钟滚动时间桶),取代全文件聚合
- [ ] 输出为 STIX / MISP 格式以便进行情报共享
标签:Python, 威胁情报, 子域名暴力破解, 安全规则引擎, 安全运营, 开发者工具, 扫描框架, 无后门, 红队行动, 自动化检测, 逆向工具