mahmed2017/socguard-pro
GitHub: mahmed2017/socguard-pro
SOCGuard Pro 是一款面向 SOC 分析师的命令行事件响应工具,支持多源日志解析、攻击检测、威胁情报关联、MITRE ATT&CK 映射及自动化报告生成。
Stars: 0 | Forks: 0
# SOCGuard Pro
**SOC 检测、威胁情报与事件响应 CLI**
SOCGuard Pro 是一款适用于 SOC(安全运营中心)分析师的生产级命令行工具。它能够解析异构日志源,检测真实世界的攻击模式,利用威胁情报丰富入侵指标(IOC),对事件严重性进行评分,并生成供分析师直接使用的事件报告。
## 功能
- **多源日志标准化** — Windows 事件日志(文本导出)、Linux `auth.log`、Apache/Nginx 访问日志、JSON 应用程序日志以及 CSV SIEM 导出文件,全部标准化为单一的内部 schema。
- **高级检测引擎**
- 暴力破解检测(基于 IP、基于用户名、自适应阈值、滑动时间窗口)
- 凭据填充检测(分布式 IP → 大量账户)
- 不可能旅行检测(地理距离 + 时间增量分析)
- 权限提升检测(sudo 激增、组成员身份变更、敏感命令)
- 恶意软件行为检测(PowerShell 编码命令、temp/AppData 执行、可疑进程链)
- 成功入侵检测(登录失败后紧接着登录成功)
- 反取证检测(审计日志清除)
- **威胁情报丰富** — VirusTotal 风格和 AbuseIPDB 风格的 IP/域名/哈希信誉评分,结合基于 WHOIS 的域名年龄分析。如果设置了 `VT_API_KEY` / `ABUSEIPDB_KEY` 环境变量,则使用实时 API,否则回退到真实的模拟层。
- **MITRE ATT&CK 映射** — 每个发现都会映射到一个技术 ID、技术名称和战术。
- **事件严重性评分** — 跨登录失败、成功入侵、恶意软件指标、权限提升和 IOC 匹配的加权 0–100 分数。
- **自动化 SOC 报告生成** — 执行摘要、时间线、受影响资产、攻击链、MITRE 映射、IOC 列表和建议操作,可导出为 `.txt`、`.json` 或 `.html`。
- **实时监控模式** — `tail -f` 风格的连续日志监控,具有即时告警功能。
- **响应建议引擎** — 基于规则的、按优先级排序的补救措施(封锁 IP、禁用账户、重置密码、隔离 endpoint、升级)。
## 安装
```
git clone https://github.com/yourusername/socguard-pro.git
cd socguard-pro
pip install -r requirements.txt
pip install -e .
```
安装后,`socguard` 命令将全局可用。或者,也可以通过以下方式直接运行:
```
python main.py [options]
```
## 快速开始
```
# 扫描日志文件以查找威胁
socguard scan --file samples/auth.log
# 结合威胁情报扩充进行扫描
socguard scan --file samples/auth.log --enrich
# 计算事件严重性评分
socguard score --file samples/auth.log
# 扩充 IOC 列表
socguard enrich --ioc samples/iocs.txt
# 生成完整事件报告 (txt + json + html)
socguard report --file samples/auth.log --format all
# 实时监控 (tail -f 方式)
socguard monitor --file samples/auth.log
```
## 命令参考
### `socguard scan`
分析日志文件并打印检测结果、事件评分和建议操作。
```
socguard scan --file auth.log [--enrich] [--output results.json] [--quiet]
```
| 选项 | 描述 |
|---|---|
| `--file, -f` | 日志文件路径(必填) |
| `--enrich/--no-enrich` | 使用威胁情报丰富检测到的 IP |
| `--output, -o` | 保存原始 JSON 结果以供 `socguard report` 使用 |
| `--quiet, -q` | 仅输出 JSON,不输出格式化表格 |
### `socguard monitor`
持续监控日志文件(类似于 `tail -f`),并在检测到攻击时发出实时告警。
```
socguard monitor --file /var/log/auth.log [--interval 1.0] [--enrich]
```
### `socguard enrich`
使用威胁情报丰富一个或多个 IOC(IP、域名或文件哈希)。
```
socguard enrich --ioc 185.220.101.45
socguard enrich --ioc "185.220.101.45,malware-c2.example.net"
socguard enrich --ioc samples/iocs.txt --output enrichment.json
```
### `socguard report`
根据先前扫描的 JSON 输出或直接从原始日志文件生成完整的 SOC 事件报告。
```
socguard report --input results.json --format html
socguard report --file auth.log --format all --out-dir reports/
```
| 选项 | 描述 |
|---|---|
| `--input, -i` | 来自 `socguard scan --output` 的 JSON 结果 |
| `--file, -f` | 原始日志文件(扫描 + 一步生成报告) |
| `--format, -fmt` | `txt`、`json`、`html` 或 `all`(默认值:`all`) |
| `--enrich/--no-enrich` | 从 `--file` 扫描时包含 IOC 丰富信息 |
| `--out-dir, -d` | 输出目录(默认值:`reports/`) |
### `socguard score`
计算并显示 0–100 事件严重性评分及其因素细分。
```
socguard score --file auth.log [--enrich]
```
## 项目结构
```
socguard-pro/
├── socguard/
│ ├── core/ # Log schema + multi-source normalizer
│ ├── detection/ # Detection engine + response recommendations
│ ├── enrichment/ # Threat intelligence (VT/AbuseIPDB/WHOIS)
│ ├── mitre/ # MITRE ATT&CK technique mapping
│ ├── reporting/ # txt/json/html report generation
│ ├── scoring/ # Incident severity scoring
│ └── cli.py # Click-based CLI entry point
├── samples/ # Sample logs and IOC files
├── tests/ # Unit tests
├── requirements.txt
├── setup.py
├── README.md
└── main.py # Standalone entry point
```
## 实时威胁情报(可选)
默认情况下,丰富功能使用真实的**模拟层**,因此该工具无需 API key 即可开箱即用。要使用实时数据:
```
export VT_API_KEY="your_virustotal_api_key"
export ABUSEIPDB_KEY="your_abuseipdb_api_key"
```
设置这些变量后,`socguard enrich` 和 `--enrich` 扫描将查询真实的 VirusTotal 和 AbuseIPDB API,并在出错时回退到模拟。
## MITRE ATT&CK 覆盖范围
| 技术 | 名称 | 战术 |
|---|---|---|
| T1110 | Brute Force | Credential Access |
| T1110.004 | Credential Stuffing | Credential Access |
| T1078 | Valid Accounts | Defense Evasion / Persistence / Initial Access |
| T1098 | Account Manipulation | Persistence |
| T1059 / T1059.001 | Command and Scripting Interpreter / PowerShell | Execution |
| T1055 | Process Injection | Defense Evasion / Privilege Escalation |
| T1548 | Abuse Elevation Control Mechanism | Privilege Escalation |
| T1070.001 | Clear Windows Event Logs | Defense Evasion |
## 示例输出
```
╭────────────────────────────────────────────────╮
│ SOCGuard Pro v1.0.0 │
│ SOC Detection, Threat Intelligence & Incident │
│ Response CLI │
╰────────────────────────────────────────────────╯
Scanning: samples/auth.log
Events parsed: 35
Detection Findings
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳
┃ Severity ┃ Rule ┃ Title ┃ MITRE ┃
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇
│ CRITICAL │ SGP-006 │ Successful Login After... │ T1078 │
│ CRITICAL │ SGP-007 │ Audit Log Clearing Detected │ T1070...│
│ HIGH │ SGP-001 │ Brute Force Login Attack │ T1110 │
...
```
## 测试
```
pip install pytest
pytest tests/
```
## 许可证
MIT 许可证 — 请参阅 `LICENSE` 文件。
## 免责声明
本工具附带用于演示/离线使用的模拟威胁情报层。对于生产部署,请配置实时 API key(`VT_API_KEY`、`ABUSEIPDB_KEY`),并在依赖自动化响应建议之前,根据您环境的基准审查所有检测阈值。
标签:DNS 反向解析, Python, Web报告查看器, 威胁情报, 子域名变形, 安全运营, 库, 应急响应, 开发者工具, 扫描框架, 无后门, 红队行动, 逆向工具