Vigil — 开源依赖漏洞扫描器

发布: (2026年2月11日 GMT+8 15:46)
5 分钟阅读
原文: Dev.to

Source: Dev.to

Cover image for Vigil — An Open-Source Dependency Vulnerability Scanner

现代软件高度依赖开源软件包。虽然这加快了开发速度,但当依赖中的漏洞未被发现时,也会带来供应链风险。

Vigil 是一个轻量级的开源 CLI 工具,使用 OSV 数据库扫描依赖文件,并生成可直接用于取证的 HTML 和 JSON 报告。

GitHub:

为什么选择 Vigil?

许多现有的扫描器:

  • 需要付费订阅
  • 使用专有的漏洞信息源
  • 隐藏实现细节
  • 生成难以归档或审计的报告

Vigil 的重点:

  • 开放的漏洞数据(OSV.dev)
  • 透明的实现
  • 本地优先设计
  • 自包含的 HTML 报告
  • 可机器读取的 JSON 输出
  • CI/CD 兼容性
  • 无 SaaS 依赖或专有数据库

支持的生态系统

Python

  • requirements.txt
  • pyproject.toml ([project.dependencies])
  • pip freeze 输入 (--from-freeze)

Node.js

  • package.json
  • package-lock.json
  • yarn.lock
  • pnpm-lock.yaml

当可用时,锁文件更受推荐,以确保解析版本的准确性。

快速开始

直接从 GitHub 安装:

pip install "git+https://github.com/0x5A65726F677275/Vigil.git"

运行扫描:

vigil scan requirements.txt

这将生成:

  • 终端输出
  • scan-report.html
  • scan-report.json

在浏览器中打开 HTML 文件以查看结构化报告。

示例命令

扫描默认的 requirements 文件

vigil scan

扫描已安装的包

pip freeze | vigil scan - --from-freeze

若存在漏洞则使 CI 失败

vigil scan --fail-on-vuln

强制进行全新的 OSV 查询

vigil scan --no-cache

仅终端模式

vigil scan --report none

输出设计

终端输出

  • 彩色摘要
  • 按包的漏洞详情
  • CVE / OSV ID
  • 简短描述
  • 修复提示

HTML 报告

  • 完全自包含(无外部 CSS 或 JS)
  • 适合打印和生成 PDF
  • 按包结构化

包含:

  • 扫描的总包数
  • 含漏洞的包数
  • 漏洞总计数
  • CVE/OSV ID 及严重程度(如有)
  • 参考链接和修复指导
  • 生成时间戳(UTC)
  • 扫描器版本和数据来源归属(OSV)

用于审计、合规文档和安全评审。

JSON 报告

结构化用于:

  • CI/CD 流水线
  • 自动化工作流
  • 合规工具
  • 自定义仪表盘

包含元数据和每个包的详细漏洞条目。

架构概览

核心组件:

  • CLI 界面
  • 依赖解析器(Python + Node)
  • OSV API 客户端
  • 本地 SQLite 缓存
  • 报告器(终端 + HTML + JSON)
  • 基于 Jinja2 的 HTML 模板

仓库还包括:

  • Pytest 测试套件
  • GitHub Actions 工作流
  • Docker 支持
  • 架构文档
  • 贡献指南
  • 指标文档

依赖最小,结构清晰,易于审查。

CI 与 Docker 支持

GitHub Actions

示例工作流:

  • 在 push 和 pull request 时运行扫描
  • 生成 HTML + JSON 报告
  • 将报告上传为工作流工件

Docker 用法

docker build -t vigil .
docker run --rm -v "$(pwd):/work" -w /work vigil

报告会写入挂载的目录中。

与供应链安全指南的一致性

Vigil 的构建参考了:

  • 行政命令 14028(提升国家网络安全)
  • NIST 安全软件开发框架(SP 800‑218)
  • CISA 软件供应链安全指南

重点包括:

  • 依赖可视化
  • 漏洞识别
  • 可直接用于取证的报告
  • 透明的工具链

设计理念

  • 仅开放数据
  • 无隐藏服务
  • 可复现的结果
  • 人类可读且机器可读的输出
  • 最小化设置
  • 适合小团队

项目状态

  • 发行版: 0.2.x
  • 许可证: MIT
  • 早期阶段项目,欢迎反馈和贡献

如果您从事 DevSecOps、开源安全、供应链风险管理或合规工程,欢迎贡献。

GitHub:

构建弹性的软件供应链需要实用、透明的工具。Vigil 是朝此方向迈出的专注一步。

0 浏览
Back to Blog

相关文章

阅读更多 »

MinIO 仓库不再维护

注意:此仓库不再维护。 替代方案: - AIStor Free https://min.io/download — 完整功能的独立版,供社区使用。