yunkewang/open-detection-control-plane

GitHub: yunkewang/open-detection-control-plane

ODCP 是一个厂商中立的检测工程控制平面,用于分析安全检测规则的依赖关系、评估就绪状态和运行时健康状况,帮助团队理解、验证和优化 SIEM 平台中的检测内容。

Stars: 0 | Forks: 0

# 开放检测控制平面 (ODCP) **一个用于理解、验证和优化安全检测内容的供应商中立平台。** ODCP 回答了每个检测工程团队都会面临的问题: - 这个安全环境实际上是什么样的? - 这里存在哪些检测内容? - 这些检测有哪些依赖项? - 这些检测在此环境中是否可运行? - 如果不能,缺少了什么或有什么降级? - 应该优先优化什么? ## 为什么存在 安全团队在复杂的环境中部署检测内容(Splunk 关联搜索、Sigma 规则、Sentinel 分析)。这些检测依赖于宏、查找表、数据模型、字段提取和数据源 —— 但目前没有标准的方法来理解或验证这些依赖关系。 ODCP 提供了一个**统一控制平面**,用于对环境、检测、依赖关系和就绪状态进行建模 —— 从 Splunk 开始,旨在支持任何平台。 ## 架构 | 层级 | 组件 | |-------|------------| | **CLI / API** | `odcp scan`, `odcp report`, `odcp graph` | | **报告** | JSON, Markdown, HTML | | **分析器** | 就绪状态, 依赖项, **运行时健康**, *(未来: 语义差距, 优化)* | | **核心引擎** | 依赖图, 评分, 发现 | | **适配器** | **Splunk** (静态 + 运行时), *(未来: Sigma, Sentinel, Elastic, Chronicle)* | | **收集器** | 本地, **Splunk REST API**, *(未来: 远程)* | | **统一模型** | Environment, Detection, Dependency, Finding, ReadinessScore, RuntimeHealthScore, ScanReport | ## 当前 MVP (v0.1.0) ### 已实现内容 **阶段 1 — 静态就绪状态:** - **核心模型** — 用于 Environment、Detection、Dependency、Finding、ReadinessScore、ScanReport 的 Pydantic v2 模型 - **Splunk 适配器** — 解析 `savedsearches.conf`、`macros.conf`、`eventtypes.conf`、`transforms.conf` 并进行 default/local 合并 - **SPL 依赖提取** — 从 SPL 查询中提取宏、事件类型、查找表、数据模型和已保存搜索的引用 - **依赖图** — 基于 NetworkX 的图,将检测链接到依赖项 - **就绪状态分析器** — 将检测分类为 `runnable`(可运行)、`partially_runnable`(部分可运行)、`blocked`(受阻)或 `unknown`(未知) - **依赖项分析器** — 识别孤立对象和高影响依赖项 - **报告** — JSON、Markdown 和 HTML 输出格式 - **CLI** — `odcp scan splunk`、`odcp report`、`odcp graph`、`odcp version` **阶段 2 — 运行时信号与健康:** - **Splunk REST API 客户端** — Token 和基本认证,SSL 可配置,查询已保存搜索、查找表、数据模型和索引 - **API 收集器** — 从实时 Splunk 实例收集运行时信号,并具有优雅的错误处理 - **运行时健康模型** — `SavedSearchHealth`、`LookupHealth`、`DataModelHealth`、`IndexHealth`、`RuntimeSignal`、`RuntimeHealthScore`、`CombinedReadinessScore` - **运行时健康分析器** — 根据实时信号(调度、执行失败、查找表可用性、数据模型加速)对检测进行评分 - **综合评分** — 将静态就绪状态 + 运行时健康状况合并为一个综合分数,权重可配置 - **运行时 CLI 标志** — `--api-url`、`--token`、`--username`、`--password`、`--verify-ssl`、`--indexes` ### 占位符 / 未来内容 - 语义差距分析器(数据源覆盖分析) - 优化分析器(优先修复) - 额外适配器(Sigma, Sentinel, Elastic, Chronicle) ## 安装 ``` pip install -e . ``` 用于开发: ``` pip install -e ".[dev]" ``` ## 快速开始 ### 扫描 Splunk 应用 ``` # Console 摘要 odcp scan splunk /path/to/splunk_app # 完整 JSON 报告 odcp scan splunk /path/to/splunk_app --output report.json # Markdown 报告 odcp scan splunk /path/to/splunk_app --output report.md --format markdown # HTML 报告 odcp scan splunk /path/to/splunk_app --output report.html --format html ``` ### 扫描并检查运行时健康(需要实时 Splunk) ``` # 结合 static + runtime 扫描与 token auth odcp scan splunk /path/to/splunk_app --api-url https://splunk:8089 --token YOUR_TOKEN # 使用 username/password 和特定 index 检查 odcp scan splunk /path/to/splunk_app \ --api-url https://splunk:8089 \ --username admin --password changeme \ --indexes main,security ``` ### 转换报告格式 ``` odcp report report.json --format markdown --output report.md ``` ### 查看依赖图统计 ``` odcp graph report.json ``` ### 示例输出 ``` ╭──────────────── Scan: ACME Security Detections ──────────────────╮ │ Total detections: 5 │ │ Runnable: 3 Partial: 0 Blocked: 2 Unknown: 0 │ │ Overall readiness: 67% │ ╰──────────────────────────────────────────────────────────────────╯ Top Blocked Detections ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━┓ ┃ Detection ┃ Score ┃ Missing ┃ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━┩ │ Detect Data Exfiltration via DNS │ 0% │ 3 │ │ Detect Unauthorized Cloud API Calls │ 33% │ 2 │ └─────────────────────────────────────┴───────┴─────────┘ ``` ## 运行测试 ``` pytest tests/ -v ``` ## 项目结构 ``` odcp/ ├── models/ # Pydantic data models (unified schema + runtime health) ├── core/ # Engine, dependency graph ├── adapters/ # Vendor adapters (Splunk static + REST API client) ├── analyzers/ # Readiness, dependency, runtime health analyzers ├── collectors/ # Data collection (local filesystem, Splunk REST API) ├── reporting/ # JSON, Markdown, HTML report generation └── cli/ # Typer CLI interface ``` ## 路线图 | 阶段 | 重点 | 状态 | | ----- | ----------------------------------------------------- | ---------------- | | 1 | Splunk 静态就绪状态分析 | **已完成** | | 2 | Splunk 运行时信号与健康 | **已完成** | | 3 | 语义差距分析与优化 | 已规划 | | 4 | 额外供应商适配器 (Sigma, Sentinel, Elastic) | 已规划 | 有关详细的路线图,请参阅 [docs/mvp-roadmap.md](docs/mvp-roadmap.md);有关架构详细信息,请参阅 [docs/architecture.md](docs/architecture.md)。 ## 许可证 Apache 2.0
标签:AMSI绕过, BAS, HTTP/HTTPS抓包, WebSocket, 依赖分析, 威胁检测, 安全有效性, 安全运营, 态势感知, 扫描框架, 控制平面, 攻击模拟, 特权检测, 聊天机器人, 规则优化, 规则管理, 运行时健康, 逆向工具, 驱动签名利用