vulnlog/vulnlog

GitHub: vulnlog/vulnlog

Vulnlog 是一款将 SCA 漏洞分析结果以 YAML 文件形式记录在 Git 仓库中的 CLI 工具,实现一次分析、多方共享,自动生成扫描器抑制文件和 HTML 漏洞报告。

Stars: 10 | Forks: 5

How Vulnlog works: scanner reports a finding, engineer analyses the impact, Vulnlog generates report and ignore files. # Vulnlog **供应链安全,即代码。** [![GitHub release](https://img.shields.io/github/v/release/vulnlog/vulnlog?color=%23f405c5)](https://github.com/vulnlog/vulnlog/releases) [![Continuous Integration](https://static.pigsec.cn/wp-content/uploads/repos/cas/8c/8c24cb3b790b469b4d6eafada2b60b9add4d7df245f47a7f5f63c3e009585955.svg)](https://github.com/vulnlog/vulnlog/actions/workflows/ci.yaml) [![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) Vulnlog 是漏洞分析的唯一事实来源:你只需在 Git 仓库的 YAML 文件中记录一次每个漏洞发现的分析和判定结果, Vulnlog 就会将该结果传达给所有需要的人——你的团队、你的扫描器、你的客户以及你的自动化流程。 Vulnlog 是一个围绕基于 YAML 的漏洞定义文件构建的 CLI 应用程序,旨在运行于你的 CI 流水线中。它是开源的, 并采用 Apache-2.0 许可证授权。 ## 一次分析,多方受众 你只需对漏洞发现进行一次分析。Vulnlog 会以各方能够理解的形式,将判定结果传达给每一个需要的人: - **你的团队**:分析过程、判定结果和理由保存在仓库中,并在 pull request 中进行审查,因此决策具有持久 性,且不会被反复推翻。 - **你的扫描器**:生成 Trivy、Snyk 和通用的抑制/忽略文件(抑制可以是临时的并自动过期;计划支持机读 VEX),从而让 CI 对已处理的漏洞发现保持绿灯状态。 - **你的利益相关者和客户**:一份已发布的 HTML 漏洞报告可以解答“你受到 X 的影响吗?”这类问题,而无需 将工程师从他们的工作中拉出来。 并且,由于每个判定结果都是具有记录历史且可由 CLI 读取的结构化数据,Vulnlog 为接下来的工作奠定了基础: 在你的 CI 流水线中进行自动化、AI 辅助的漏洞分拣。 ## Vulnlog 适合谁? | 受众 | Vulnlog 为他们提供了什么 | |---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------| | **软件维护者** | 系统化、一致地分拣已报告的漏洞,并将分析和影响判定记录在代码旁边。 | | **产品经理和负责人** | 包含所有漏洞发现和判定结果的 HTML 漏洞报告,用于规划修复发布并跟踪产品的安全状态。 | | **客户和消费者** | 已发布的报告,展示哪些漏洞影响了软件、它们的影响以及修复它们的版本。 | | **SCA 扫描器**(Snyk、Trivy) | 最新的抑制/忽略文件,以便 CI 扫描保持绿灯状态,且不会重新报告已知或无关的漏洞发现。 | ## 为什么使用 Vulnlog? 以 **Log4Shell**([CVE-2021-44228](https://en.wikipedia.org/wiki/Log4Shell))为例。Acme 销售一款基于 JVM 的 Wiki 产品,该产品依赖 Log4J 库,并在 CI 中每晚运行两个 SCA 扫描器(Trivy 和 Snyk)。当 研究人员披露 Log4Shell 且 Acme 的下一次扫描将其标记为严重时,Vulnlog 将此过程转变为一个工作流: 1. 工程师审查该漏洞对 Wiki 的影响,记录分析和判定结果,并在 Git 仓库的 **Vulnlog YAML** 文件中添加一个 临时的为期三天的抑制规则。 2. 下一次 CI 运行会调用 **Vulnlog CLI**,重新生成 Trivy 和 Snyk **抑制/忽略文件**以及一份新的 HTML **漏洞报告**。 3. 产品经理阅读该报告,并规划一个包含已修复 Log4J 依赖项的版本发布。 4. Acme 的客户提交了支持工单;支持团队直接根据已发布的报告进行回复,而无需 让工程师介入。 ## 快速开始 ### 安装 CLI 安装脚本会检测你的操作系统和架构,并安装原生二进制文件: ``` curl -fsSL vulnlog.dev/install | sh ``` 在 macOS 上,通过 Homebrew tap 安装: ``` brew install vulnlog/vulnlog/vulnlog ``` 或者拉取 Docker 镜像: ``` docker pull ghcr.io/vulnlog/vulnlog:latest ``` 要将 Vulnlog 集成到 Gradle 构建中,请添加该插件: ``` plugins { id("dev.vulnlog") version "" } ``` 原生二进制文件和 JVM 发行版也发布在 [releases 页面](https://github.com/vulnlog/vulnlog/releases)。有关所有 选项(包括从源码构建),请参阅 [安装文档](https://vulnlog.dev/docs/vulnlog/0.14.0/installation.html)。 ### 脚手架生成新的 Vulnlog 文件 ``` vulnlog init --organization "Acme Corp" --name "Acme Web App" --author "Security Team" -o vulnlog.yaml ``` 这将创建一个你可以开始编辑的最小化 `vulnlog.yaml` 文件。 ### 编写你的第一个条目 Vulnlog 文件是纯 YAML。这是一个最小化的示例: ``` # $schema: https://vulnlog.dev/schema/vulnlog-v1.json --- schemaVersion: "1" project: organization: Acme Corp name: Acme Web App author: Security Team releases: - id: 1.0.0 published_at: 2026-01-15 vulnerabilities: - id: CVE-2026-1234 description: Remote code execution in example-lib releases: [1.0.0] packages: ["pkg:npm/example-lib@2.3.0"] reports: - reporter: trivy analysis: >- The vulnerable code path is not reachable in our application because we only use the safe subset of the API. verdict: not affected justification: vulnerable code not in execute path ``` ### 验证并生成抑制文件和 HTML 报告 ``` # 检查文件是否存在错误 vulnlog validate vulnlog.yaml # 为 1.0.0 版本生成 Trivy suppression 文件 vulnlog suppress vulnlog.yaml --reporter trivy --release 1.0.0 # 生成 HTML 报告 vulnlog report vulnlog.yaml ``` ## 文档 - [文档](https://vulnlog.dev/docs/) - [项目网站](https://vulnlog.dev/) - [更新日志](CHANGELOG.md) - [获取帮助](SUPPORT.md) ## 贡献 欢迎贡献!无论是 bug 报告、文档修复还是新功能——请查看 [CONTRIBUTING.md](CONTRIBUTING.md) 以开始。如果你想找点事情做,可以寻找 标记为 **good first issue** 的问题。 ⭐ 如果你觉得 Vulnlog 有用,在 GitHub 上给它加星有助于其他人发现这个项目。 Vulnlog 的贡献者: Contributors
标签:GPT, LNA, 代码即安全, 文档结构分析, 漏洞管理, 请求拦截