amarjaleelbanbhan/VeriPatch

GitHub: amarjaleelbanbhan/VeriPatch

一款开源的 npm 漏洞修复验证工具,通过在 Docker 沙箱中实际运行补丁与测试,为依赖修复提供确定性的审计级安全证据。

Stars: 1 | Forks: 0

# VeriPatch [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/amarjaleelbanbhan/VeriPatch/actions/workflows/ci.yml) [![npm version](https://img.shields.io/npm/v/veripatch.svg)](https://www.npmjs.com/package/veripatch) [![npm downloads](https://img.shields.io/npm/dm/veripatch.svg)](https://www.npmjs.com/package/veripatch) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) ![veripatch 扫描:项目摘要、排序后的漏洞表格、验证详情以及最终建议,均针对真实的 axios 漏洞](https://static.pigsec.cn/wp-content/uploads/repos/cas/f1/f1625d516e842f579cd40f045fa9bc0fab901206194052e44406bfe442709702.gif) 检测易受攻击的 npm 依赖已经大众化(`npm audit`、Dependabot、Snyk)。 **经验证的修复却并非如此。** 工程师们由于告警疲劳、对破坏的恐惧 以及缺乏证据,而不愿应用修复。VeriPatch 弥补了这一空白: 1. **扫描** — 根据严重程度 × 修复可行性(通过 [OSV.dev](https://osv.dev))对漏洞进行排序。 2. **验证** — 在强化的 Docker sandbox 中应用修复,重新扫描以证明漏洞 已离开解析树,并运行您的构建和测试以证明没有破坏。 3. **报告** — 生成审计级别的证据报告(Markdown + JSON),包含确定性的 置信度结论。 | | `npm audit` | Dependabot | Snyk | VeriPatch | | --------------------------------------------------- | :---------: | :--------: | :--: | :-------: | | 检测已知漏洞 | ✅ | ✅ | ✅ | ✅ | | 按严重程度排序 | ✅ | ✅ | ✅ | ✅ | | 开启修复 PR | ❌ | ✅ | ✅ | ❌ (尚未支持) | | **在隔离环境中实际运行修复** | ❌ | ❌ | ❌ | ✅ | | **独立重新扫描以证明 CVE 已消除** | ❌ | ❌ | ❌ | ✅ | | **在您合并之前运行真实的构建/测试** | ❌ | ❌ | ❌ | ✅ | | 结论仅来自 exit code,从不使用启发式算法 | n/a | n/a | n/a | ✅ | | 免费,自托管,无需账号 | ✅ | ✅ | ❌ | ✅ | ## 快速开始 ``` npm install -g veripatch veripatch doctor # diagnose environment (Node, Docker, lockfile, network) veripatch scan # ranked vulnerability table in <15s veripatch verify GHSA-... # sandboxed proof a fix is safe veripatch update GHSA-... # apply a verified fix to your working tree veripatch report GHSA-... # re-render evidence without re-running anything ``` `scan` 和 `report` 可在任何地方运行;`verify` 需要可访问的 Docker daemon。 `scan` 支持 `package-lock.json` (v2/v3)、`yarn.lock` (classic 和 berry) 以及 `pnpm-lock.yaml` (v6/v9),并会自动检测。`verify`/`update` 目前使用 npm 重放修复,因此 它们会明确拒绝 yarn/pnpm 项目,而不是破坏它们。 ### 作为 GitHub Action ``` - uses: actions/checkout@v4 - uses: amarjaleelbanbhan/VeriPatch@v0.1.0 with: severity-threshold: high fail-on: new ``` 请参阅 [examples/workflow.yml](examples/workflow.yml) 获取完整示例(触发器、权限、 baseline 模式),以及 [action.yml](action.yml) 了解所有输入参数。 ## 工作原理 ``` scan → parse lockfile → OSV advisories → rule engine → ranked, fix-resolved report verify → stage a copy → apply the bump → install (sandboxed, scripts off) → re-scan the copy to prove the vuln is gone → build/test (network off) → deterministic verdict from exit codes + the re-scan alone ``` 请参阅 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) 了解完整的数据流和分层架构。 ## 设计原则 - **验证优先** — 置信度结论仅源自 exit code 和 VeriPatch 自身的 重新扫描,绝不来自日志文本的启发式算法(参见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md))。 - **安全优先** — 不受信任的项目代码只会在经过强化且 限制网络的 container 中执行。零遥测。无需 secrets。参见 [docs/SECURITY.md](docs/SECURITY.md)。 - **CI 原生** — 机器可读的 `report.json` ([docs/API.md](docs/API.md))、确定性的 exit code,以及 baseline 模式,确保既有技术债务不会导致构建失败。 ## 文档 | | | | ---------------------------------------------- | -------------------------------------------------------------------- | | [docs/CLI.md](docs/CLI.md) | 完整命令参考、flags、exit code | | [docs/CONFIGURATION.md](docs/CONFIGURATION.md) | `.veripatchrc` 参考与优先级 | | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 分层架构、数据流、置信度规则 | | [docs/API.md](docs/API.md) | `report.json` schema、端口、OSV 使用说明 | | [docs/SECURITY.md](docs/SECURITY.md) | 威胁模型、sandbox 保证、披露政策 | | [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) | 环境设置、分层规则、添加 fixture 指南 | | [docs/ROADMAP.md](docs/ROADMAP.md) | 已发布功能及后续计划 | | [docs/adr/](docs/adr/) | 为什么选择 OSV 而非 NVD、SQLite 而非 Postgres、Docker 而非 subprocess 等 | ## 状态 所有 MVP 里程碑(scan、verify、report/update/doctor/cache、GitHub Action)均已实现 并经过测试。Pre-1.0 阶段:CLI 约定和 `report.json` schema 被视为稳定,但尚未 经过实战检验 — 请参阅 [docs/ROADMAP.md](docs/ROADMAP.md) 了解迈向 v1.0 的规划。 ## 贡献 请参阅 [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md)。欢迎提交 Issues 和参与讨论。 ## 许可证 [Apache-2.0](LICENSE)
标签:Cilium, Docker沙箱, LNA, MITM代理, NPM, 依赖安全, 暗色界面, 漏洞修复, 网络安全培训, 自动化攻击, 请求拦截