为了扩展DevSecOps平台,学习如何将自定义安全扫描器集成到工作流程中是至关重要的,以下是一个易于遵循的教程。
极狐GitLab 是最全面的 DevSecOps 平台,拥有规划、管理、构建、部署、保护、管理和监控应用程序所需的一切。但是,在某些情况下,你可能希望使用第三方或自定义工具来扩展极狐GitLab。比如,你想从单独的解决方案迁移到 DevSecOps 平台、评估第三方工具或将专有或定制的解决方案集成到极狐GitLab 中。
以下涵盖到的一些内容:
极狐GitLab DevSecOps 平台可扩展性
极狐GitLab 可以通过多种方式进行扩展,以支持您的组织可能需要的增强功能。这些集成的一些常见示例包括:
您可以在极狐GitLab 集成文档中查看所有可用的集成。 (注意:文档中并未列出所有集成。)
极狐GitLab安全扫描器集成
第三方或定制的安全扫描器均可被集成到极狐GitLab中,以补充合并请求小部件、流水线安全部分、漏洞报告、漏洞页面、安全仪表板以及扫描结果策略。接下来,我们将逐一回顾这些集成内容。
合并请求安全小部件
合并请求包含一个安全小部件,它可以显示新检测到的漏洞的摘要。
图示:合并请求安全小部件
当您单击漏洞时,您将看到一个弹出窗口,其中包含以下信息:
图示:漏洞详情
这些漏洞也是可操作的,这意味着它们可以被忽略,也可以创建机密议题。
自定义扫描器的结果可用于填充安全小部件。漏洞数据是从扫描器发出的 JSON 模式填充的。
流水线安全部分
所有启用的安全分析器都在流水线中运行,并将其结果作为制品输出。这些制品将被处理,包括重复数据删除,结果会列在“流线型安全性”选项卡上。您还可以从此处下载生成的 JSON 文件。
图示:流水线安全选项卡
自定义扫描器的结果可用于填充“流水线安全”选项卡。使用扫描器发出的 JSON 模式填充这些列。
漏洞报告
漏洞报告提供有关默认分支扫描中的漏洞的信息,包括:
图示:漏洞报告
默认分支上的自定义扫描程序的结果可用于填充漏洞报告。
漏洞页面
点击漏洞报告中存在的漏洞会将您带到其漏洞页面。项目中的每个漏洞都有一个漏洞页面,其中提供了详细信息,例如:
您可以使用漏洞页面中提供的数据对检测到的漏洞进行分类并协助修复。
图示:秘密检测漏洞的漏洞页面
自定义扫描程序的结果可用于填充漏洞页面。漏洞数据是从扫描器发出的 JSON 模式填充的。
安全仪表板
安全仪表板用于评估应用程序的安全状况。 极狐GitLab 为您提供了项目上运行的安全扫描器检测到的漏洞的一系列指标、评级和图表。安全仪表板提供以下数据:
图示:群组级别安全仪表板
在群组级安全仪表板中,您可以单击项目以访问其特定的安全仪表板,该仪表板提供 365 天视图。
图示:项目级安全仪表板
扫描结果策略集成
扫描结果策略用于根据一项或多项安全扫描作业的结果要求批准。这可以防止不安全的代码被合并到生产中。扫描结果策略在 CI 扫描作业完全执行后进行评估,其中策略是根据已完成的流水线中发布的作业工件报告进行评估的。
例如,您可以创建一个扫描结果策略,如果密钥检测扫描程序发现任何漏洞,则需要项目维护人员的批准。就是这样:
1、在左侧边栏上,选择“搜索”或转至并搜索您要添加策略的项目。
2、在项目左侧边栏上,转到“安全”>“策略”
3、选择新策略
4、在“扫描结果策略”部分中,选择“选择策略”。
5、填写字段:
图示:扫描结果策略规则
操作:满足规则中的条件(已定义的漏洞/检测到的许可证)时要采取的操作
图示:扫描结果 策略操作
覆盖项目审批设置:如果选择,以下选项将覆盖项目设置,但仅影响策略中选择的分支
图示:扫描结果策略批准设置
6、点击“使用合并请求配置”按钮。
合并扫描结果策略后,每当您创建合并请求并且满足规则中定义的条件时,就会触发定义的操作。在这种情况下,在合并代码之前至少需要得到维护者的批准。
图示:由于检测到漏洞而阻止合并请求
自定义扫描器的结果可以与扫描结果策略完全集成。如果自定义扫描程序检测到漏洞,则需要先获得批准才能合并代码。您在扫描结果策略中选择的扫描器必须利用适当的 JSON 架构。
教程:集成自定义安全扫描器
现在让我们开始有趣的部分——集成自定义安全扫描器。在本教程中,您将学习如何创建自定义安全扫描器,以及如何将其与极狐GitLab 集成。我们将利用以下项目:
创建自定义安全扫描器
现在让我们创建一个可以集成到极狐GitLab 中的自定义扫描器。在自定义扫描器与极狐GitLab 完全集成之前,扫描器必须:
当使用提供的模板在项目上运行 Fern 模式扫描器时,它会执行以下步骤:
1、加载一组定义要检测的模式(正则表达式)的规则。
2、扫描文件中定义的模式。
3、按照密钥检测规则发出 JSON 报告。
一旦 JSON 报告作为工件加载到极狐GitLab 中,它将填充合并请求小部件、漏洞报告、漏洞页面、扫描结果策略和安全仪表板(如上定义)。
将自定义安全扫描器与极狐GitLab 集成
创建满足所有集成需求的自定义扫描器后,您可以在极狐GitLab 上运行它。
运行自定义扫描器就像添加模板一样简单。我们可以通过检查Secret List 项目中的 .gitlab-ci.yml
来了解 Fern 模式扫描器模板是如何加载的。
在您希望扫描器运行的项目中创建一个.gitlab-ci.yml 文件。
包括自定义扫描器模板。
您还应该能够使用环境变量配置模板。
将文件提交到主分支。
提交文件后,您可以看到自定义扫描程序将在您的流水线中运行。流水线完成后,扫描器将填充上面在 极狐GitLab 安全扫描器集成部分中定义的所有区域。