目录
导出为 HTML/PDF
将漏洞信息导出到 Jira
参考资料
极狐GitLab 的漏洞报告功能可以让开发人员在统一的平台上面管理代码,对其进行安全扫描、管理漏洞报告并修复漏洞。但有些团队更喜欢使用类似 Jira 的单独工具来管理他们的安全漏洞。他们也可能需要以易于理解的格式向领导层展示漏洞报告。
极狐GitLab 的漏洞报告可以通过一键点击的方式导出为 CSV,方便在其他工具中进行分析。但在某些情况下,一个简单的 PDF 报告就足够了。
使用极狐GitLab 的 API,可以轻松查询漏洞信息并将报告详细信息发送到其他地方,比如 PDF 文件或 Jira 项目。在本博客中,我们将向您展示如何将 GitLab 的漏洞报告导出 HTML/PDF 格式,或直接导出到 Jira。
请注意,本教程中使用的脚本仅供参考,并不受极狐GitLab 支持。
导出为 HTML/PDF
要将漏洞报告导出为 HTML 或 PDF,可参考 custom-vulnerability-reporting 项目。
该项目包含一个脚本,用于查询项目的漏洞报告,然后基于漏洞报告的数据生成HTML文件。项目中配置的流水线会运行此脚本,并将HTML文件转换为PDF格式。
要使用导出工具,首先需要对该项目进行 Fork(派生)或导入到新项目(选择“通过URL导入存储库”,并粘贴原始项目的 git URL)。
按照自述文件 README.MD 的说明设置 CI/CD 变量。您需要以下极狐GitLab 信息:
-
具有访问漏洞信息权限的 GitLab 项目/个人访问令牌(具有 read_api 范围);
-
极狐GitLab GraphQL API URL(对于 SaaS,为https://jihulab.com/api/graphql);
-
极狐GitLab 项目路径(例如 smathur/custom-vulnerability-reporting)。
在设置必需的 CI/CD 变量之后,从项目的流水线页面手动运行一个流水线。完成流水线后,可以访问 build_report(用于 HTML)或 pdf_conversion 作业,在侧边栏的“任务制品”下选择“下载”或“浏览”来查看您的文件导出。至此,您就获得了一个可共享且易于阅读的项目漏洞的 pdf 报告。
将漏洞信息导出到 Jira
极狐GitLab 允许您通过 UI 使用我们的 Jira 集成功能从漏洞中创建 Jira 工单。尽管您可以为需要处理的漏洞单独执行此操作,但有时团队需要批量创建 Jira 工单来处理所有的漏洞。我们可以利用极狐GitLab 和 Jira 的 API 来实现这一点。
开始操作之前,请参考 external-vulnerability-tracking 项目。此脚本与上面的脚本以相同的方式获取漏洞,但它使用 Jira API 为每个漏洞创建一个工单。每个工单的描述也包含了来自 GitLab 漏洞报告的详细信息。
要使用导出工具,只需 Fork(派生)该项目或导入到新项目(选择“通过 URL 导入存储库”,并粘贴原始项目的 git URL),并按照自述文件的说明设置 CI/CD 变量。
您需要准备以下 GitLab 信息:
-
具有访问漏洞信息权限的 GitLab 项目/个人访问令牌(具有read_api范围);
-
极狐GitLab GraphQL API URL(对于 SaaS,为 https://jihulab.com/api/graphql);
-
极狐GitLab 项目路径(例如 smathur/external-vulnerability-tracking)。
您还将需要以下 Jira 信息:
-
Jira 个人访问令牌;
-
Jira API问题端点URL(对于SaaS为 https://ORG_NAME.atlassian.net/rest/api/latest/issue/);
-
Jira 用户电子邮件 ID;
-
Jira 项目 Key,您希望在其中创建漏洞工单(例如 ABC)。
在根据项目自述文件中的说明设置 CI/CD 变量后,只需从该项目的流水线页面运行一个流水线,然后就可以看到所有的漏洞信息将会在 Jira 中自动创建工单。如果将来再次运行流水线,脚本将对 Jira 项目运行搜索查询,防止创建重复的工单。它只会为没有记录在 Jira 中的新漏洞创建工单。
参考资料
-
GraphQL API resources | GitLab
-
jwagner-demo / Vandelay Industries / Engineering / Custom Vulnerability Reporting · GitLab
-
Siddharth Mathur / External Vulnerability Tracking · GitLab
-
Jira REST API examples