詹金斯集成

InsightAppSec Jenkins插件提供了一种简单的方法来集成您的构建过程与InsightAppSec REST API。使用这个插件,Jenkins可以自动对你的web应用程序运行扫描,并根据扫描结果决定构建的通过/失败状态。可以通过使用不同的规则来进行决策,例如,发现的漏洞的最大数量或漏洞严重性的阈值。

先决条件

要使用该插件,你将需要:

  • 洞察平台的用户账号dota2必威联赛阅读写行政访问。
  • 访问InsightAppSec。需要注意的是免费试用用户无法启动通过API扫描,因此可能无法使用该插件。

安装

该插件可以使用插件管理器进行安装。有关更多信息,请参阅https://plugins.jenkins.io/insightappsec

此外,插件可以通过手动构建安装现病史文件,并上传到您的詹金斯安装。

用法

有使用这种整合两种方式 - 作为自由泳项目的构建步骤,或者作为管道的一部分。

自由式项目

您可以使用插件作为一个freestyle项目的构建步骤。在打开一个freestyle项目后,通过选择启用插件添加构建步骤,并选择“使用InsightAppSec扫描”。

然后,您将看到插件配置窗格。配置选项如下:

  • 数据存储区—目标InsightAppSec实例的数据存储区域。
  • 洞察力API密匙- 使用Insight API密钥要使用扫描。对詹金斯管理洞察API密钥的详细信息,可以发现这里
  • 应用程序-应用程序包含您希望扫描的扫描配置。如果区域和API键是兼容的,那么下拉列表中会预填充API键访问的应用程序列表。这可能需要几秒钟来加载。
  • 扫描配置- 你要扫描的现有的扫描配置。提供的区域和API密钥是兼容的,以及具有先前选择的一个应用程序,属于所选择的应用程序的扫描CONFIGS将预先填充在下拉。这可能需要几秒钟来加载。
  • 提前构建时-这个配置选项根据提交的扫描状态增强构建进度。有四个选项可供选择:
    • 已提交扫描- 提前当扫描已成功提交的版本。
    • 扫描已启动—当扫描成功启动时,推进构建。
    • 扫描已完成-当扫描成功完成时,推进构建。
    • 漏洞查询返回任何漏洞—当扫描完成且漏洞搜索查询没有返回漏洞时,推进构建。
  • 查询漏洞- 一个InsightAppSec搜索查询可被提供给搜索漏洞发现扫描。例如,如果你想构建失败时高严重性漏洞已经被发现,使用:vulnerability.severity = '高'.提供的查询将自动限定扫描的范围。有关漏洞搜索查询的更多信息,请参阅InsightAppSec API搜索文档这里.如果留为空白,构建就会失败时任何在扫描中发现了漏洞。

请注意

除非“漏洞结果查询返回了没有漏洞”已被选定为构建高级选项,此选项将被忽略。

  • 最大扫描时间待定-可以提供最大扫描等待时间,以便控制CI过程提供反馈的时间长度。持续时间将在扫描提交后生效。到达持续时间后,扫描将被取消,构建将失败。定义持续时间必须使用以下格式:
         
1
0D 5H30米
2
(d) - 天
3.
(H) - 小时
4
(m)分钟

一定量必须为每个上述的供给。例如:

         
1
1天:1d 0h 0m
2
5小时:0D 5H0米
3.
3小时后,30分钟:此0D 3H30米

请注意

如果“扫描已提交”,忽略此选项已被选定为构建高级选项。

  • 最大扫描执行时间-可以提供最大扫描执行时间,以控制CI过程提供反馈所需的时间。当扫描进入扫描状态时生效。当达到持续时间时,正在进行的扫描将停止,构建将正常推进。格式与上面相同。

请注意

如果已选择“已提交扫描”或“已启动扫描”作为预构建选项,则此选项将被忽略。

  • 使扫描结果—默认禁用。使用此标记来指示在构建完成后是否可以查看扫描结果。当启用时,将出现一个新的操作,以查看扫描结果,标签为“InsightAppSec扫描结果”。

请注意

所有有权限查看构建作业历史的用户都可以查看InsightAppSec扫描结果**。如果已选择“已提交扫描”或“已启动扫描”作为预构建选项,则此选项将被忽略。

管道

您可以使用该插件作为管道的一部分。下表描述了所需的配置选项。

有效值
地区 我们// 美国
欧盟// 欧洲
非盟// 澳大利亚
CA// 加拿大
美联社// 日本
insightCredentialsId <凭据ID>
的AppID <应用ID>
scanConfigId <您的扫描配置ID>
buildAdvanceIndictor SCAN_SUBMITTED
SCAN_STARTED
SCAN_COMPLETED
VULNERABILITY_QUERY
vulnerabilityQuery 一个有效的脆弱性的搜索查询
maxScanPendingDuration 上述格式的持续时间串
maxScanExecutionDuration 上述格式的持续时间串
enableScanResults 真的
错误的

例子

最小的配置:

         
groovy
1
insightAppSec区域: '美国',insightCredentialsId: '我的ID',scanConfigId: 'f5984f53-2399-47e2-a6b9-010933cbc440', 'buildAdvanceIndicator':VULNERABILITY_QUERY

完整的配置:

         
groovy
1
insightAppSec区域: '美国',insightCredentialsId: '我的ID',scanConfigId: 'f5984f53-2399-47e2-a6b9-010933cbc440', 'buildAdvanceIndicator':VULNERABILITY_QUERY,vulnerabilityQuery: 'vulnerability.severity = \' HIGH \ '',maxScanPendingDuration:'0D 0H10米',maxScanExecutionDuration: '0D 10H0米',enableScanResults:真

詹金斯托管洞察API密钥

这个插件提供了一种新型的托管Jenkins凭证,称为Insight API密钥。可以在构建配置或使用凭据管理器时添加凭据。

构建配置

在构建配置,使用添加按钮旁边的“慧眼识API密钥”字段打开凭据模态。

证书管理器

  1. 从詹金斯的主页,选择“证书”。
  2. 选择所需的范围,全球为宜。
  3. 点击添加凭据
  4. 选择“洞察API密钥”的那种,然后提供:
    • 名称(友好名称来指代这些凭据。例如,“Bob的API密钥”)
    • Insight API Key(连接Insight Platform的API Key)。dota2必威联赛可以找到创建API密钥的说明这里

请注意

当使用凭据管理器有一个已知的UI问题,阻止API密钥场与好吧按钮,你可能需要调整页面进行查看。

发展

在本地运行插件,cd到根目录和调用:

         
1
运行mvn现病史:

当输出显示Jenkins已经完全启动并运行了导航到HTTP://本地主机:8080 /詹金斯/你会看到Jenkins的主页。

额外的引用