emphereio/ovrse
GitHub: emphereio/ovrse
OVRSE 是一个漏洞修复决策引擎,结合扫描结果与多源情报为 AI agent 和人工工作流提供有边界的、安全的修复指导。
Stars: 43 | Forks: 2
OVRSE
面向 AI 工具的开放修复层,让它们安全地修复漏洞,而不是盲目执行升级
为什么 • 问题 • 解决方案 • AI 集成 • CLI • 架构 • 贡献
## 为什么需要 OVRSE 你的扫描器发现了 47 个漏洞。接下来怎么办? 你开始调研。第一个 CVE 提示“升级到 4.17.21”。但是 4.19.0 已经发布了。那个版本更好吗?更安全吗?它会引入新的问题吗?GitHub 的发布说明提到了“4.18 版本中的破坏性变更”,但没说具体是哪些。NVD 页面链接到一个被回滚的 PR。Reddit 上有人说这个补丁导致了内存泄漏。维护者没有发表任何评论就关闭了这个 issue。 这还只是一个 CVE。你还有 46 个。 问题不断涌现: - *“到底哪个版本能真正修复这个问题且破坏性最小?”* - *“这个补丁稳定吗,大家有没有报告什么问题?”* - *“扫描器说升级到 2.3.4,但是 2.5.0 已经有了。它安全吗?”* - *“具体的命令是什么?npm?yarn?pnpm?”* - *“这 47 个漏洞中,哪些现在正在被实际利用?”* 企业团队花钱购买工具来回答这些问题。其他人则只能靠浏览器标签页和周五的熬夜来搞定。 **扫描器负责发现漏洞。但它们不负责修复。** ## 问题所在 现在 AI 也在进行漏洞修复了。它比任何人类都快,但也存在同样的盲区。 当你让 AI agent 处理一个 CVE 时,它会做最显而易见的事:升级到最新版本然后继续下一步。这很危险。 - **最新并不总是意味着安全。** 最新的版本可能会引入破坏性变更、存在已知的不稳定性,或者带来新的 CVE。 - **“升级”不是一个单一的决定。** 通常有 3 个以上的候选版本。选错版本意味着为了清除控制面板上的警告而将风险发布到生产环境。 - **AI 不了解你的约束条件。** 变更窗口、重启要求、依赖链以及特定于生态系统的怪癖,这些都不在 CVE 公告中。 AI 比人类动作快,但也会犯同样的错误。如果没有护栏机制,每一次修复都是在机器速度下进行的一场赌博。 **OVRSE 就是这道护栏。** ## OVRSE 如何解决它 OVRSE 是连接“你有一个 CVE”和“某人执行了一条命令”之间的中间层。它提供有边界的修复决策,让 AI agent 和人类能够在明确的约束条件下修复漏洞。 ### 扫描器输入,公告指导的闭环输出 OVRSE 不取代扫描器。它接收来自你现有扫描器和生态系统工具的扫描结果,然后将它们与 OVRSE 公告结合起来,以决定当前什么是重要的以及如何安全地修复它。 **扫描器结果告诉你存在什么。公告告诉你什么是紧急的。OVRSE 将两者转化为安全的执行操作。** ``` flowchart LR subgraph INPUT [" "] S["🔍 Scanner findings"] A["📋 OVRSE advisories"] end subgraph OVRSE ["OVRSE Decision Layer"] D{"Analyze & Prioritize"} C["Generate fix commands"] end subgraph OUTPUT [" "] E["⚡ Execute"] R["📊 Report outcome"] end S --> D A --> D D --> C C --> E E --> R R -.->|"feedback loop"| D style OVRSE fill:#4a90a4,stroke:#2d5a6b,stroke-width:2px,color:#fff style D fill:#3d7a8c,stroke:#2d5a6b,color:#fff style C fill:#3d7a8c,stroke:#2d5a6b,color:#fff style S fill:#6b8e23,stroke:#4a6b1a,color:#fff style A fill:#6b8e23,stroke:#4a6b1a,color:#fff style E fill:#cd853f,stroke:#8b5a2b,color:#fff style R fill:#cd853f,stroke:#8b5a2b,color:#fff ``` ### OVRSE 控制的内容 | 边界 | 功能 | |----------|--------------| | **版本选择** | 推荐真正能修复 CVE 且风险最低的版本,而不仅仅是“最新”版本 | | **稳定性信号** | 在给出推荐之前,汇总社区报告、维护者活动和回归数据 | | **风险阈值** | 权衡 CISA KEV(被积极利用)、EPSS(漏洞利用概率)和 CVSS,以优先处理重要问题 | | **破坏性变更警告** | 在执行任何升级之前,标记当前版本和目标版本之间已知的破坏性变更 | | **感知生态系统的命令** | 为你的包管理器 (npm, pip, go) 生成精确的修复命令 | | **验证步骤** | 提供预检和修复后验证,避免盲目发布升级 | ### OVRSE 是什么 - **修复智能与护栏层**:用于安全修复漏洞的决策引擎 - **一个 MCP server**:AI 助手(Claude, Cursor, Windsurf)调用 OVRSE 获取有边界的修复指导 - **一个 CLI**:人类在手动工作流和 CI/CD pipeline 中获得同样的智能支持 - **一个开放规范 (OVRS)**:AI 和人类均可使用的结构化修复知识 - **来自多个来源的情报**:NVD, OSV, GitHub, CISA KEV, EPSS、包注册表和社区信号 ### OVRSE 不是什么 - **不是主要的扫描器。** OVRSE 支持可插拔的生态系统适配器,并集成了现有的扫描器输出。它位于检测环节的下游。 - **不是漏洞数据库。** 我们接入并使用 OSV, NVD 和供应商的数据源。 - **不是编排层。** 没有发布策略或大规模集群管理。OVRSE 告诉你该做*什么*以及*为什么安全*,而不是*什么时候部署它*。 ## AI 集成 (MCP) OVRSE 专为 AI 工作流而设计。主要接口是 **MCP (Model Context Protocol) server**,它为助手提供了访问修复智能的受限通道。 **取代这种做法:** **你将得到这种结果:** ### Remote MCP (零配置) 直接连接到托管服务器。无需安装。 ``` { "mcpServers": { "ovrse": { "url": "https://mcp.emphere.dev/mcp/" } } } ``` **然后向你的 AI 助手提问:** - *“扫描我的项目中的漏洞”* - *“lodash 4.17.15 是否受任何 CVE 影响?如何修复?”* - *“按风险对这些 CVE 进行分类:CVE-2024-1234, CVE-2024-5678”* - *“如果我将 axios 升级到 1.6.0,会有什么破坏性变更?”* ### Local MCP (隐私与离线) 在你的机器上运行 MCP server,而不是使用托管端点。 **1. 安装 ovrse:** ``` go install github.com/emphereio/ovrse/cmd/ovrse@latest ``` **2. 添加到 Claude Code 配置中** (`~/.claude.json`): ``` { "mcpServers": { "ovrse": { "command": "ovrse", "args": ["mcp"] } } } ``` ### MCP 工具 | 工具 | 功能 | |------|--------------| | `scan_project` | 扫描目录,查找所有生态系统中的漏洞 | | `check_if_affected` | 检查特定包版本是否存在漏洞 | | `analyze_cve` | 全面分析:修复命令、破坏性变更、稳定性 | | `get_cve_verdict` | 用于优先级排序的快速风险评估 | | `batch_triage` | 对多个 CVE 进行分类,按风险排序 | | `get_fix` | 获取某个包的明确的、有边界的升级命令 | | `list_ecosystems` | 列出可用的生态系统插件 (npm, pip, go 等) | | `report_remediation_outcome` | 报告修复成功/失败,形成社区反馈闭环 | ## CLI 对于手动工作流、CI/CD pipeline 以及尚未使用 AI 助手的团队,你可以获得相同的智能和边界约束。 ### 安装 ``` # 使用 Go (推荐) go install github.com/emphereio/ovrse/cmd/ovrse@latest # 或者从源码构建 git clone https://github.com/emphereio/ovrse.git cd ovrse && make build ./bin/ovrse --version ``` ### 扫描漏洞 ``` # 从 lock files 自动检测 npm, pip, go ovrse scan ./my-project # 用于 CI/CD pipelines 的 JSON 输出 ovrse scan --json ./my-project ``` ``` [npm] Scanned 2 packages [?] lodash@4.17.15 - GHSA-29mw-wpgm-hmr9 [?] lodash@4.17.15 - GHSA-35jh-r3h4-6jhm [?] axios@0.21.0 - GHSA-4w2v-q235-vp99 Total: 2 packages, 3 vulnerabilities ``` ### 生成修复计划 ``` ovrse plan --cve CVE-2025-1234 \ --os-family debian --distribution debian \ --release 12 --arch amd64 \ --package nginx --version 1.22.0 \ --explain ``` 完整文档请参阅 [CLI 参考](docs/CLI_REFERENCE.md)。 ## 架构 ``` flowchart TB subgraph Sources["Data Sources"] OSV[("OSV Database")] NVD[("NVD / CVE")] KEV[("CISA KEV")] EPSS[("EPSS Scores")] end subgraph OVRSE["OVRSE"] direction TB ADV["AdvisoriesPre-computed priority lists"] CLI["CLI
ovrse scan / plan"] MCP["MCP Server
AI assistant integration"] subgraph Core["Core Engine"] PLUGINS["Ecosystem Plugins
npm, pip, go"] INTEL["Intel Client
analyze, triage, check"] end subgraph KB["Knowledge Layer"] TPL["OVRS Templates"] MAP["CVE Mappings"] REL["Package Releases"] end end subgraph Output["Bounded Remediation"] PLAN["Remediation Plan
Steps, preflight, validation"] FIX["Safe Fix Commands
Version-constrained upgrades"] RISK["Risk Signals
Breaking changes, stability"] end Sources --> Core Core --> KB ADV --> MCP CLI --> Core MCP --> Core KB --> PLAN KB --> FIX Core --> RISK ``` ### 入口点 | 入口点 | 最适用于 | |-------------|----------| | **MCP Server** | 需要有边界修复决策的 AI agent | | **CLI** | 人类、CI/CD pipeline、脚本编写 | | **Advisories** | 用于监控面板的预计算 CVE 列表 | ### 数据流 1. **扫描器和生态系统工具**识别你代码库中的漏洞。 2. **OVRSE advisories** 按生态系统添加前瞻性的紧急程度。 3. **OVRSE** 在定义的边界内提供修复智能: - 哪个版本是最安全的修复方案?(不仅仅是最新版本) - 具体的升级命令是什么? - 是否存在破坏性变更? - 该修复是否稳定?大家反馈如何? - 这个 CVE 是否正在被积极利用? 4. **AI 或人类**在获得信息充分、受限制且可验证的指导下,充满信心地执行修复。 ## OVRS 规范 OVRSE 由 **Open Vulnerability Remediation Specification (OVRS)** 提供支持,这是一种结构化格式,用于描述*如何*修复漏洞,而不仅仅是指出它们的存在。 OVRS 使修复知识具备了可移植性。正因为如此,AI agent 和运行 CLI 的人类才能获得相同的、有边界且高质量的指导。 完整规范请见 [spec/README.md](spec/README.md)。 ## 支持的生态系统 | 生态系统 | 包管理器 | 锁定文件 | |-----------|------------------|------------| | **npm** | npm, yarn, pnpm | `package-lock.json` | | **Python** | pip, poetry, pipenv | `requirements.txt` | | **Go** | go modules | `go.sum` | **即将支持:** Maven, Cargo, RubyGems, NuGet 插件架构使得添加新生态系统变得非常简单。示例请见 [pkg/ecosystem/](pkg/ecosystem/)。 ## Advisories 预计算的、按风险优先级排序的 CVE 列表,每 4 小时更新一次。 ``` curl -s https://raw.githubusercontent.com/emphereio/ovrse/main/advisories/npm.json | jq '.cves[:3]' ``` **纳入标准**:如果 CVE 满足以下任意条件,即被收录: - 列于 CISA KEV 中(正在被积极利用) - EPSS 百分位数 ≥ 50% - CVSS 分数 ≥ 9.0 **可用生态系统:** [npm](advisories/npm.json) • [pypi](advisories/pypi.json) • [go](advisories/go.json) • [maven](advisories/maven.json) • [cargo](advisories/cargo.json) • [gem](advisories/gem.json) • [global](advisories/global.json) schema 和用法请见 [advisories/README.md](advisories/README.md)。 ## 项目状态 ### 已支持功能 - CLI:`scan`, `mcp`, `validate`, `plan`, `plan-host` 命令 - 包含 8 个工具的 MCP server,供 AI 助手使用 - 生态系统插件:npm, pip, Go - 预计算的 advisories(涵盖 6 个生态系统) - OVRS 规范(模板、KB、扩展) ### 后续规划 - 更多的生态系统插件(Maven, Cargo, NuGet) - 扩充模板库 - JSON Schema 验证 - 执行引擎的集成指南 详情请见 [ROADMAP.md](docs/ROADMAP.md)。 ## 文档 | 文档 | 描述 | |----------|-------------| | [CLI 参考](docs/CLI_REFERENCE.md) | 完整的命令文档 | | [项目概述](docs/OVRSE_OVERVIEW.md) | 架构、数据流、概念 | | [OVRS 规范](spec/README.md) | 模板和 KB 格式 | | [Advisories](advisories/README.md) | 预计算的 CVE 列表 | | [路线图](docs/ROADMAP.md) | 开发计划 | ## 贡献 我们欢迎各种贡献! - **报告 Bug** → [创建一个 issue](https://github.com/emphereio/ovrse/issues/new?template=bug_report.md) - **请求新功能** → [创建一个 issue](https://github.com/emphereio/ovrse/issues/new?template=feature_request.md) - **添加生态系统插件** → 参见 [pkg/ecosystem/](pkg/ecosystem/) - **完善模板** → 提交 PR 至 `examples/templates/` - **修复文档** → 欢迎提交 PR 指南请见 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 安全 关于安全漏洞,请见 [SECURITY.md](SECURITY.md)。 ## 许可证 Apache 2.0。请见 [LICENSE](LICENSE)。
由 Emphere 构建
标签:AI辅助安全, EVTX分析, Go, GPT, Ruby工具, 安全标准规范, 文档结构分析, 日志审计, 漏洞修复, 漏洞管理, 网络安全培训