amarjaleelbanbhan/VeriPatch
GitHub: amarjaleelbanbhan/VeriPatch
一款开源的 npm 漏洞修复验证工具,通过在 Docker 沙箱中实际运行补丁与测试,为依赖修复提供确定性的审计级安全证据。
Stars: 1 | Forks: 0
# VeriPatch
[](https://github.com/amarjaleelbanbhan/VeriPatch/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/veripatch)
[](https://www.npmjs.com/package/veripatch)
[](LICENSE)

检测易受攻击的 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, 依赖安全, 暗色界面, 漏洞修复, 网络安全培训, 自动化攻击, 请求拦截