加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

安全左移——JFrog Xray根据扫描结果创建Jira Issue

发布时间:2023-02-02 09:33:54 所属栏目:安全 来源:转载
导读: 安全左移——JFrog Xray根据扫描结果创建Jira Issue
原创高欣
杰蛙科技DevSecOps
jie_wa999
专注探索DevOps与工程效能提升实践。范围锁定:工具链实践、技术学习交流与分享等内容
发表于

安全左移——JFrog Xray根据扫描结果创建Jira Issue

原创高欣

杰蛙科技DevSecOps

jie_wa999

专注探索DevOps与工程效能提升实践。范围锁定:工具链实践、技术学习交流与分享等内容

发表于

收录于合集

关注世界领先 DevOps 平台 JFrog

背景

qq怎么关闭安全扫描_360网站安全扫描_网站安全扫描

网站安全扫描_360网站安全扫描_qq怎么关闭安全扫描

当前,随着比较常用的组件,如Tomcat、Docker、Kubernetes等陆续曝出存在高危漏洞,组件安全已成为业界日益关注的安全扫描新的重要分支。根据业界的统计,在 Docker Hub里,30%的镜像存在已知漏洞,而NPM官方源里有14%的包, Maven官方源里有59%的包,都存在已知漏洞。注意,这还只是已知漏洞,还有多少未知漏洞尚不清楚。在这种情况下,程序员用第三方组件包一时爽,但很可能引入的是一个有高危漏洞的版本,并将很可能被部署到生产环境,进而被黑客攻破。因此,必须在DevOps流程中加强针对组件的安全扫描,这也是当前业界推荐的DevSecOps的重要组成部分。

在DevSecOps的流程中,针对安全扫描,还有一个重要的概念,就是“安全左移”。传统的安全扫描通常是在软件发布前几天,将软件包交给安全团队,或第三方公司进行漏洞扫描,完成之后给出漏洞报告。这种方式下,留给安全团队检测的时间非常少,并且如果真的扫描出高危漏洞了,研发也来不及升级,再全量测试进行发版,往往导致要么发版延期,要么安全扫描就成为一个摆设。“安全左移”,就是在DevSecOps的流程当中,及时进行安全扫描,并随时反馈扫描结果,实现尽早发现、尽早反馈,进而尽早解决安全隐患。

在之前的技术文章和在线课堂当中,我们陆续介绍了JFrog Xray能够监视Artifactory制品仓库的变化,实时开始组件的安全扫描,并对扫描结果进行深度的精准定位,和广度的影响范围分析。同时,Xray还可以通过与Pipeline或IDE集成网站安全扫描,实现“安全左移”,将扫描结果尽早反馈给DevOps团队或研发人员。

本文将介绍Xray实现“安全左移”的另一种方式,即与Jira集成,通过根据组件漏洞扫描的结果,自动生成对应的Jira Issue,及时将安全问题反馈给相关的管理和项目人员。

Xray与Jira集成的方式——Webhook

qq怎么关闭安全扫描_360网站安全扫描_网站安全扫描

网站安全扫描_360网站安全扫描_qq怎么关闭安全扫描

Webhook是一个API概念,用于使用自定义回调更改Web请求的行为。这些回调可供第三方用户、开发人员或程序使用,并不必须附属于原始的网站或应用程序。Webhook也可以称为“反向API”。

在Xray当中,我们通过配置Watch来选择监视Artifactory的那部分变化,配置对应的Policy/Rule来选择如何处理扫描到的安全漏洞。其中,在Rule的设置当中就有Webhook的选项,即当发现安全问题的时候,会将扫描结果以JSON的方式,直接发送给该选项指定的Webhook。Security Rule里设置如下图所示:

网站安全扫描_qq怎么关闭安全扫描_360网站安全扫描

这里选择的Webhook_Test就是我们事先在Xray上注册好的Webhook。Webhook的注册是在Xray的配置:Admin->Webhooks里进行的,如下图所示:

360网站安全扫描_qq怎么关闭安全扫描_网站安全扫描

在这里,我们可以定义Webhook的入口,如下图所示:

qq怎么关闭安全扫描_360网站安全扫描_网站安全扫描

而对应的Webhook,则是独立于Xray运行的,可以接收并处理安全漏洞信息的Web服务。如我们用Go语言创建的示例Webhook:

Webhook接收扫描结果的结构

qq怎么关闭安全扫描_360网站安全扫描_网站安全扫描

网站安全扫描_360网站安全扫描_qq怎么关闭安全扫描

上节提到,Xray发向Webhook的扫描结果是以JSON的形式组织的。该JSON的结构,以我们用Go语言创建的示例,如下所示:

1、整体结构:Violation

网站安全扫描_qq怎么关闭安全扫描_360网站安全扫描

2、问题结构:Issue

在Violation中问题列表Issues中的问题,Issue,的结构如下:

网站安全扫描_360网站安全扫描_qq怎么关闭安全扫描

3、相关组件结构:ImpactedArtifact

在Issue中受影响组件列表中的相关组件,ImpactedArtifact,的结构如下:

网站安全扫描_360网站安全扫描_qq怎么关闭安全扫描

4、受感染文件结构:InfectedFile

在ImpactedArtifact中受感染文件列表中的受感染文件,InfectedFile,的结构如下:

网站安全扫描_360网站安全扫描_qq怎么关闭安全扫描

受感染文件就精准定位了包含安全漏洞的最小单元组件。

5、解析扫描结果的结构

Webhook在接收到Xray发出的扫描结果后,就可以根据上述的定义,进行JSON结构的解析,如下图所示:

qq怎么关闭安全扫描_360网站安全扫描_网站安全扫描

自动生成JiraIssue0

qq怎么关闭安全扫描_360网站安全扫描_网站安全扫描

网站安全扫描_360网站安全扫描_qq怎么关闭安全扫描

接收到Xray发送的扫描结果并解析其结构后,下一步Webhook就要连接Jira,并创建对应的Jira Issue了。

我们之所以采用Go语言实现Webhook的示例,首先在于Go非常简单,只需几行代码, 就可以轻松地创建一个瞬时启动并运行用于侦听和处理HTTP请求的服务器。其次,针对与Jira集成并创建Jira Issue,已经有了一个Go语言实现的非常良好的开源库,go-jira()供我们使用。使用go-jira之后,我们剩下要做的就是在创建一个Jira用户, 并为其提供创建Issue的访问权限。

360网站安全扫描_网站安全扫描_qq怎么关闭安全扫描

qq怎么关闭安全扫描_360网站安全扫描_网站安全扫描

利用go-jira提供的库,我们首先创建Jira客户端,并与Jira服务器连接:

网站安全扫描_qq怎么关闭安全扫描_360网站安全扫描

然后,根据扫描结果解析的内容,填写Jira Issue的内容,并创建对应Issue:

qq怎么关闭安全扫描_网站安全扫描_360网站安全扫描

当然,示例中创建的Jira Issue比较简单,仅仅在标题中提供了最高的告警级别,在描述中提供了找到问题的总数。Go-jira提供了很多库操作,我们可以据此创建更为丰富的Issue内容。

创建完成后,我们就可以在Jira里看到如下的Issue:

qq怎么关闭安全扫描_网站安全扫描_360网站安全扫描

总结

qq怎么关闭安全扫描_360网站安全扫描_网站安全扫描

网站安全扫描_360网站安全扫描_qq怎么关闭安全扫描

组件的安全扫描,是当前业界推荐的DevSecOps的重要组成部分。而“安全左移”,是及时发现安全问题并尽早反馈的关键。

本文介绍了JFrog Xray利用Webhook与Jira集成,实现“安全左移”的过程。概括起来,有以下五个步骤:

1. 创建一个知道如何侦听远程请求的“轻型”服务器;

2. 配置一个Xray的Webhook,并与触发它的Policy/Rule相关联;

3. 了解Xray发送给Webhook的JSON结构,以便正确地分析信息;

4. 解析信息后,定义要发送到Jira服务器的内容以及Issue将包含哪些信息;

5. 与Jira服务器交互以创建对应的Issue。

本文利用Go语言实现了Xray Webhook的功能,全部代码请参考:

有关JFrog Xray及其他产品的介绍,或想申请试用的话,请参考我们的官网:

END

下载JFrog Artifactory企业版(免费试用):

下载JFrog Artifactory 开源版(代替 Nexus):

下载JFrog JCR 免费版:

想了解更多国内外DevOps 实战案例,扫描下方二维码关注“JFrog杰蛙DevOps”公众号,在后台回复“devops”,即可免费获取DevOPs入门到精通实战视频及PPT学习资料。

网站安全扫描_360网站安全扫描_qq怎么关闭安全扫描

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!