詹金斯集成

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

先决条件

要使用您需要的插件:

  • 洞察平台的用户账号dota2必威联赛阅读写或者行政访问。
  • 访问Insightappsec。请注意,免费试用用户无法通过API开始扫描,因此可能不会使用该插件。

安装

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

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

用法

有两种方法可以使用这种集成 - 作为自由式项目的构建步骤,或作为管道的一部分。

自由式项目

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

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

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

请注意

除非选择“漏洞结果查询返回没有漏洞”,否则忽略此选项已被选为构建提前选项。

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

必须为上述每个必须提供数量。例如:

         
1
1天:1D 0H 0M
2
5小时:0D 5H 0M
3.
3小时30分:0d 3h 30m

请注意

如果已选择“已提交扫描”作为“构建提前”选项,则忽略此选项。

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

请注意

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

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

请注意

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

管道

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

有效值
地区 我们// 美国
欧盟// 欧洲
非盟// 澳大利亚
CA// 加拿大
美联社// 日本
insightCredentialsId <您的凭据ID>
Appid. <应用程序ID>
scanConfigId <您的扫描配置ID>
buildAdvanceIndictor SCAN_SUBMITTED
SCAN_STARTED
SCAN_COMPLETED
vultnerability_query.
vulnerabilityQuery 有效的漏洞搜索查询
maxscanpendingduration 以上述格式的持续时间字符串
maxScanExecutionDuration 以上述格式的持续时间字符串
EnableScanResults. 真的
错误的

例子

最小的配置:

         
groovy
1
Insightappsec Region:'美国',InsightCrediendsid:'My ID',ScanconFigid:'F5984F53-2399-47E2-A6B9-010933CBC440','BuedadvanceIncicator':vUltnerability_Query

完整的配置:

         
groovy
1
Insightappsec Region:'美国',InsightCrediendsid:'My ID',ScanconFigID:'F5984F53-2399-47CY2-A6B9-0109-47CBC440','FultAdvanceIncicator':vulnerability_Query,vulnerabilitySufy:'vultnerability.severity ='high \'',maxscanpendingduration:'0d 0h 10m',maxscanexecutionduration:'0d 10h 0m',EnablescanResults:true

Jenkins管理了Insight API键

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

构建配置

在构建配置期间,使用添加“Insight API键”字段旁边的按钮以打开凭据模态。

证书管理器

  1. 从Jenkins主页,选择“凭据”。
  2. 选择所需的范围,全局适当。
  3. 点击添加凭据
  4. 选择“Insight API键”作为类型,然后提供:
    • 名称(友好的名称来引用这些凭据。例如,“Bob的API键”)
    • Insight API Key(连接Insight Platform的API Key)。dota2必威联赛可以找到创建API密钥的说明这里

请注意

使用凭据管理器时,存在一个已知的UI问题,可阻止API密钥字段好的按钮,您可能需要调整页面大小以查看它。

发展

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

         
1
MVN HPI:运行

当输出显示Jenkins已经完全启动并运行了导航到http:// localhost:8080 / jenkins /你会看到Jenkins的主页。

额外的引用