Z3X-1337/soc-caseforge
GitHub: Z3X-1337/soc-caseforge
SOC CaseForge 是一个本地优先的 Python SOC 案例管理工作流工具,帮助分析师完成证据提取、时间线构建、IOC 提取、可解释检测和报告生成的完整闭环。
Stars: 0 | Forks: 0
# SOC CaseForge
[](https://github.com/Z3X-1337/soc-caseforge/actions/workflows/tests.yml)




SOC CaseForge 是一个本地优先的 Python 工作区,用于将经过脱敏处理的分析师证据转化为结构化的事件案例。它将案例存储在 SQLite 中,解析受支持的 OpenSSH 身份验证事件,提取常见指标,应用确定性的检测启发式规则,并生成可审查的 Markdown 或 JSON 报告。
它被设计为一个作品集级别的 SOC 工作流和早期产品基础。它不是 SIEM、EDR、恶意软件沙箱或自主分析师。
## 作品集证明
| 领域 | 当前证明 |
| --- | --- |
| 工作流 | 案例创建 → 证据提取 → 时间线 → 指标 → 发现 → 报告 |
| 持久化 | 基于 SQLite 的案例、事件、指标和发现 |
| 检测 | 重复失败、密码喷洒式行为以及失败后的成功 |
| 可解释性 | 证据、置信度、ATT&CK 辅助、局限性和建议操作 |
| 工程 | 可安装的 CLI、24 项测试、在 Python 3.10–3.12 上的 CI、威胁模型和安全策略 |
| 隐私 | 本地处理,默认不进行外部富化或证据上传 |
## 为什么存在这个项目
小型脚本通常止步于单一的解析器、阈值或输出格式。SOC CaseForge 将分析师的工作流连接起来:
1. 创建案例;
2. 提取已授权的证据;
3. 保留规范化的时间线;
4. 提取指标;
5. 运行可解释的检测;
6. 生成可审查的报告。
所有处理均在本地进行。不会将任何证据上传到外部服务。
## 数据流
```
flowchart LR
A[Sanitized evidence] --> B[Source parser]
B --> C[Normalized events]
A --> D[IOC extraction]
C --> E[SQLite case store]
D --> E
E --> F[Deterministic analysis]
F --> G[Evidence-backed findings]
E --> H[Timeline]
G --> I[Markdown / JSON report]
H --> I
```
## 当前功能
- 基于 SQLite 的案例存储。
- OpenSSH 失败和已接受的身份验证解析。
- 支持 IPv4 和 IPv6。
- 针对 URL、域名、电子邮件地址、IP 和常见哈希的 IOC 提取。
- 重复失败、密码喷洒式行为以及失败后成功的发现。
- 每项发现都附带证据和置信度。
- 针对 T1110 和 T1110.003 的 MITRE ATT&CK 辅助。
- Markdown 和 JSON 报告。
- 可安装的 `soc-caseforge` CLI。
- 标准库 runtime,无外部依赖。
## 演示
运行内置的脱敏场景:
```
soc-caseforge --db demo.db demo
```
该场景会生成六个时间线事件、两个指标和三个发现,其中包括在早期失败后的一次成功登录。请查看已提交的[演示报告](docs/demo-report.md)以获取完整的输出。
发现示例:
```
[HIGH] Successful login after failures for analyst
Evidence: source_ip=203.0.113.10; user=analyst; prior_failures=2
ATT&CK assistance: T1110 Brute Force
Next actions: validate the login, review the session, and contain the account if unauthorized.
```
## 安装
```
python -m pip install .
```
对于隔离的命令行安装:
```
pipx install .
```
## 快速开始
```
soc-caseforge --db cases.db init
soc-caseforge --db cases.db new --title "Suspicious SSH activity" --analyst "Zaid Hijazi"
soc-caseforge --db cases.db ingest 1 samples/openssh_demo.log --source openssh
soc-caseforge --db cases.db analyze 1 --failed-threshold 3 --spray-threshold 3
soc-caseforge --db cases.db report 1 --format markdown --output case-1.md
```
## 命令
| 命令 | 用途 |
| --- | --- |
| `init` | 初始化 SQLite 数据库。 |
| `new` | 创建案例。 |
| `list` | 列出案例。 |
| `ingest` | 解析证据并提取指标。 |
| `analyze` | 运行确定性的检测启发式规则。 |
| `report` | 生成 Markdown 或 JSON。 |
| `demo` | 创建一个脱敏的演示案例。 |
## 检测边界
SOC CaseForge 报告的观察结果供分析师审查。它不推断归属或证明恶意意图。
| 发现 | 触发条件 | 重要局限 |
| --- | --- | --- |
| 重复的身份验证失败 | 单个来源超过可配置的失败阈值 | 共享基础设施和用户错误可能会产生类似的活动 |
| 密码喷洒式行为 | 单个来源针对多个不同的用户名 | 当前版本不应用时间窗口 |
| 失败后成功 | 某个来源和用户名随后身份验证成功 | 合法用户可能只是更正了密码或密钥问题 |
## 验证
代码仓库包含 **24 项解析器、指标、存储、分析、报告、包资源和 CLI 测试**。GitHub Actions 会安装该包,运行完整的测试套件,并在 Python 3.10、3.11 和 3.12 上验证已安装的控制台命令。
```
python -m unittest discover -s tests -v
python -m pip install .
soc-caseforge --help
```
## 项目文档
- [演示报告](docs/demo-report.md)
- [架构](docs/architecture.md)
- [威胁模型](docs/threat-model.md)
- [路线图](ROADMAP.md)
- [更新日志](CHANGELOG.md)
- [安全策略](SECURITY.md)
- [贡献指南](CONTRIBUTING.md)
- [MIT 许可证](LICENSE)
## 路线图重点
`v0.2.0` 方向将证据的完整性和分析师的决策优先于表面的功能增长:
- 时区感知的时间戳;
- CSV 和通用 JSON 适配器;
- 分析师笔记和处置;
- 抑制和允许列表策略;
- SHA-256 证据清单;
- 具有代表性的误报数据集。
在 [路线图:SOC CaseForge v0.2.0](https://github.com/Z3X-1337/soc-caseforge/issues/2) 中跟踪工作进度。
## 安全与局限
- 仅使用您拥有或被授权分析的证据。
- 请勿提交生产日志、凭证、token、私有 IP 清单或客户数据。
- 发现是确定性启发式规则的结果,并非恶意意图的证明。
- ATT&CK 映射需要分析师进行验证。
- 当前的解析器支持 OpenSSH 身份验证消息的一个特定子集。
- IOC 提取不执行信誉查找,也不确定恶意性。
标签:AMSI绕过, Python, SQLite, 威胁检测, 安全运营, 库, 应急响应, 扫描框架, 无后门, 逆向工具