如何将GitLab漏洞报告导出为HTML或PDF格式或导出到Jira
翻译:RangWu
原文:《How to export vulnerability reports to HTML/PDF and Jira — Siddharth Mathur》
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://gitlab.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://gitlab.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中的新漏洞创建工单。
参考资料
- https://docs.gitlab.com/ee/api/graphql/reference/index.html#queryvulnerabilities
- https://gitlab.com/jwagner-demo/vandelay-industries/engineering/custom-vulnerability-reporting
- https://gitlab.com/smathur/external-vulnerability-tracking
- https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/
如何将GitLab漏洞报告导出为HTML或PDF格式或导出到Jira
https://wurang.net/gitlab-exporting-vulnerability-reports-to-html-pdf-jira/