anchore/vunnel

GitHub: anchore/vunnel

Vunnel 是一个从多种上游安全公告和漏洞数据库采集、转换并存储漏洞数据的命令行工具,主要用于构建 Grype 等漏洞扫描器所需的底层数据库。

Stars: 116 | Forks: 56

# vunnel **一个用于从多种来源获取、转换和存储漏洞数据的工具。** [![GitHub 发布版本](https://img.shields.io/github/release/anchore/vunnel.svg)](https://github.com/anchore/vunnel/releases/latest) [![许可证:Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/anchore/vunnel/blob/main/LICENSE) [![加入我们的 Discourse](https://img.shields.io/badge/Discourse-Join-blue?logo=discourse)](https://anchore.com/discourse) ![vunnel-demo](https://user-images.githubusercontent.com/590471/226942827-e19742ef-e66e-4e11-8f9b-fb74c40f1dee.gif) 支持的数据源: - Alpine (https://secdb.alpinelinux.org) - Amazon (https://alas.aws.amazon.com/AL2/alas.rss & https://alas.aws.amazon.com/AL2022/alas.rss) - Azure (https://github.com/microsoft/AzureLinuxVulnerabilityData) - Debian (https://security-tracker.debian.org/tracker/data/json & https://salsa.debian.org/security-tracker-team/security-tracker/raw/master/data/DSA/list) - Echo (https://advisory.echohq.com/data.json) - GitHub Security Advisories (https://api.github.com/graphql) - NVD (https://services.nvd.nist.gov/rest/json/cves/2.0) - Oracle (https://linux.oracle.com/security/oval) - RedHat (https://www.redhat.com/security/data/oval) - SLES (https://ftp.suse.com/pub/projects/security/oval) - Ubuntu (https://launchpad.net/ubuntu-cve-tracker) - Wolfi (https://packages.wolfi.dev) ## 前置条件 你的 PATH 环境变量中必须包含以下系统工具: - **git** - 某些需要从 git 仓库获取数据的提供者会用到 ## 安装说明 使用 pip 安装: ``` pip install vunnel ``` 使用 docker 安装: ``` docker run \ --rm -it \ -v $(pwd)/data:/data \ -v $(pwd)/.vunnel.yaml:/.vunnel.yaml \ ghcr.io/anchore/vunnel:latest \ run nvd ``` 说明: - `data` 卷用于在主机上保留处理后的数据 - `.vunnel.yaml` 用于使用主机上的应用配置(如果存在) - 你可以将 `latest` 替换为特定的版本(与 git 标签相同) 请查看 [vunnel 包](https://github.com/anchore/vunnel/pkgs/container/vunnel) 以获取所有可用标签的完整列表。 ## 入门指南 列出所有可用的漏洞数据提供者: ``` $ vunnel list alpine amazon chainguard debian echo github mariner minimos nvd oracle rhel sles ubuntu wolfi ``` 下载并处理某个提供者的数据: ``` $ vunnel run wolfi 2023-01-04 13:42:58 root [INFO] running wolfi provider 2023-01-04 13:42:58 wolfi [INFO] downloading Wolfi secdb https://packages.wolfi.dev/os/security.json 2023-01-04 13:42:59 wolfi [INFO] wrote 56 entries 2023-01-04 13:42:59 wolfi [INFO] recording workspace state ``` 你可以在本地的 `./data` 目录中看到处理后的漏洞数据 ``` $ tree data data └── wolfi ├── checksums ├── metadata.json ├── input │ └── secdb │ └── os │ └── security.json └── results └── wolfi:rolling ├── CVE-2016-2781.json ├── CVE-2017-8806.json ├── CVE-2018-1000156.json └── ... ``` *注意:要获取更详细的输出,请使用 `-v`、`-vv` 或 `-vvv`(例如 `vunnel -vv run wolfi`)* 删除一个或多个提供者已有的输入和结果数据: ``` $ vunnel clear wolfi 2023-01-04 13:48:31 root [INFO] clearing wolfi provider state ``` 用于更改应用行为的配置文件示例: ``` # .vunnel.yaml root: ./processed-data log: level: trace providers: wolfi: request_timeout: 125 runtime: existing_input: keep existing_results: delete-before-write on_error: action: fail input: keep results: keep retry_count: 3 retry_delay: 10 ``` 使用 `vunnel config` 命令可以更好地了解所有可能的配置选项。 ## 常见问题 ### 我可以实现一个新的提供者吗? 当然可以!请参阅[提供者文档](https://github.com/anchore/vunnel/blob/main/DEVELOPING.md#adding-a-new-provider)获取更多信息。 ### 为什么叫“vunnel”? 这个工具将漏洞数据“汇集 (funnels)”到一个统一的处理节点以便轻松处理……把“vulnerability data funnel”连读 100 遍,读得足够快,最后就会含糊地发音成“vunnel” :)。
标签:Alpine, Amazon Linux, Anchore, Angular, CVE, Debian, DevSecOps, Docker, GitHub Advisory, GPT, Grype, NVD, Python, RedHat, URL抓取, Vunnel, Web截图, XSS, 上游代理, 安全数据源, 安全防御评估, 实时处理, 容器安全, 密码管理, 数字签名, 数据抓取, 数据清洗, 数据转换, 无后门, 测试覆盖率, 漏洞情报, 漏洞管理, 网络安全研究, 请求拦截, 逆向工具