dbsystel/trivy-vulnerability-explorer
GitHub: dbsystel/trivy-vulnerability-explorer
一个轻量级Web应用,用于将Trivy漏洞扫描报告可视化展示为可交互的数据表格,便于安全团队快速筛选和分析。
Stars: 169 | Forks: 43
:imagesdir: doc/img
= Trivy Vulnerability Explorer
大量的 https://github.com/aquasecurity/trivy/issues[Trivy] 报告往往难以直观掌握,这正是创建此项目的原因。这是一个 Web 应用程序,允许加载 json 格式的 https://github.com/aquasecurity/trivy/issues[Trivy] 报告,并在交互式数据表中显示单个目标的漏洞。
.加载 Trivy 报告
image::overview-0.png[步骤 1:加载 Trivy 报告]
.探索漏洞
image::overview-1.png[步骤 2:探索漏洞]
== 使用方法
访问 https://dbsystel.github.io/trivy-vulnerability-explorer[应用程序^] 并加载 Trivy 报告 .json 文件。例如,要扫描一个过时的 alpine 镜像,可以运行以下命令来创建 `alpine-3.9.2.json` 报告。
[source,bash]
## trivy i -f json -o alpine-3.9.2.json alpine:3.9.2
现在将此文件加载到漏洞探索器中并开始探索。您可以按关键词过滤,或点击过滤栏中的类别之一来深入查看数据。您也可以使用仓库中的 link:src/assets/alpine-3.9.2.json[示例文件]。
数据永远不会离开您的浏览器,因为所有处理都在浏览器内部进行。当然,您可以自由 fork 此项目并部署您自己的版本。如果您这样做,希望您能在仓库上给我留言并点个 Star。
=== 与 GitLab Job 集成
如果您使用 GitLab Job 生成 Trivy 报告,可以直接提供 json 文件的 URL。应用程序将获取报告并显示结果,无需先下载文件。您可能需要提供用于认证的 token,可以通过点击 URL 字段旁边的盾牌图标来设置。请确保创建具有 `read_api` 范围的个人访问令牌。该 token 将保存在本地存储中,以便您下次从同一 GitLab 实例加载报告时重复使用。
您可以向应用程序传递查询参数 `url`,它将在启动时从该 url 加载文件。建议在 Job 日志的末尾打印漏洞探索器的 URL,以便用户直接跳转到漏洞报告。如果报告名称为 `trivy-results.json`,则 url 模式如下所示:
[source]
## https://dbsystel.github.io/trivy-vulnerability-explorer/#/?url=https://$CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/jobs/$CI_JOB_ID/artifacts/trivy-results.json
注意:最近路由实现有所更改,请确保在 URL 中包含 `#`,否则此功能将无法工作。
注意:虽然此功能是基于 GitLab 构建的,但它应适用于任何可以通过 GET HTTP 请求下载 json 的工件存储,且该请求最多需要一个 HTTP 标头进行认证。
== 使用 Docker 镜像运行
本项目提供托管在 GitHub Container Registry (GHCR) 上的 Docker 镜像。镜像通过 GitHub Actions 自动构建和发布。它包含一个 nginx,将在端口 8080 上提供应用程序服务。
=== 可用标签
Docker 镜像使用多种策略进行标记,以便灵活选择合适的版本:
[cols="1,2"]
|===
|标签模式 |描述
|`latest`
|指向主分支的最近一次构建
|`v{major}.{minor}.{patch}`
|特定版本(例如 `v1.2.3`)
|`v{major}.{minor}`
|特定次要版本的最新补丁版本(例如 `v1.2`)
|`v{major}`
|特定主要版本的最新次要版本(例如 `v1`)
|`sha-{commit}`
|特定的提交哈希,用于精确的版本控制
|===
=== 使用 Docker 镜像
[source,bash]
## docker run ghcr.io/dbsystel/trivy-vulnerability-explorer:
替换:
* `` 为可用标签之一
运行最新版本的示例:
[source,bash]
## docker run ghcr.io/dbsystel/trivy-vulnerability-explorer:latest
## == 开发
.设置
## npm install
## .编译和热重载以用于开发
## npm run dev
== 许可证
本项目基于 link:LICENSE[Apache-2.0] 许可证授权
标签:DevSecOps, GitLab, GPT, JSON解析, 上游代理, 云安全监控, 交互式界面, 前端, 报告分析, 数据可视化, 数据表格, 暗色界面, 浏览器处理, 漏洞可视化, 漏洞管理, 请求拦截, 静态分析