詹金斯集成
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过程提供反馈的时间长度。持续时间将在扫描提交后生效。到达持续时间后,扫描将被取消,构建将失败。定义持续时间必须使用以下格式:
10d 5h 30m.2(d) - 天3.(h) - 小时4(m) - 分钟
必须为上述每个必须提供数量。例如:
11天:1D 0H 0M25小时:0D 5H 0M3.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
1Insightappsec Region:'美国',InsightCrediendsid:'My ID',ScanconFigid:'F5984F53-2399-47E2-A6B9-010933CBC440','BuedadvanceIncicator':vUltnerability_Query
完整的配置:
groovy
1Insightappsec 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键”字段旁边的按钮以打开凭据模态。
证书管理器
- 从Jenkins主页,选择“凭据”。
- 选择所需的范围,全局适当。
- 点击添加凭据.
- 选择“Insight API键”作为类型,然后提供:
- 名称(友好的名称来引用这些凭据。例如,“Bob的API键”)
- Insight API Key(连接Insight Platform的API Key)。dota2必威联赛可以找到创建API密钥的说明这里.
请注意
使用凭据管理器时,存在一个已知的UI问题,可阻止API密钥字段好的按钮,您可能需要调整页面大小以查看它。
发展
在本地运行插件,cd
到根目录并调用:
1MVN HPI:运行
当输出显示Jenkins已经完全启动并运行了
导航到http:// localhost:8080 / jenkins /
你会看到Jenkins的主页。
额外的引用
- Insightappsec API文档:https://help.rapid7.com/insightappsec/en-us/api/v1/docs.html
- 詹金斯插件教程:https://wiki.jenkins.io/display/jenkins/plugin+tutorial.