JFrog Xray如何实现组件安全精准管理

关纯
• 阅读 1058

背景

在安全管理的工作中常常遇到互联网上新发布了一个包的漏洞,此时部门需要立刻知道这个包的引用情况。遇到这种情况,安全管理部门往往是采用发邮件让开发人员进行自查,并要求停止引用。

要求每个研发自查,并不是一个有效的管控方式,首先是开发人员要有足够的自觉性,其次时间上也不可控,并没有一个有效的手段来约束。还会造成没有引用的项目组,自行排查而浪费时间。

Xray工具介绍

Xray可以根据包的情况来检测到依赖的项目。当出现上述问题的时候,可以针对某一个包来反向排查,实现依赖项目的精准定位,从而准确通知到使用者。可以大大提升排查问题的效率,降低企业安全管控的成本。同时,可以设置包安全质量门限,阻断高危漏洞的包进行引用。

Xray使用的经验分享

使用了Xray虽然可能帮我们节省很多工作,但是工具还是要配合良好的管理手段以及正确的使用方法。不然也会带来一些问题。

比如一个包到发现漏洞,漏洞数据发布到公网源,同时漏洞数据源再去爬取数据,再同步到我们本地漏洞库,这个过程也是需要一定的时间的,所以这个期间可能有一个空档期。如果这个漏洞十分紧急,需要立刻封锁,那么这个空档期的时间需要由我们安全团队来进行严格管控。如果完全依赖漏洞数据库源,这个时间上做不到一个严格的可控性。

再就是我们如果设置了一个相对宽泛的质量门限,比如安全级别为高的依赖包不允许下载,那么随着漏洞库的更新,每天可能都会有一些新的高危漏洞被引入,有可能出现昨天开发的时候这个包还没有问题,今天就不能引用了,这样对于开发团队的也是非常不友好的。我们在安全管理上要对漏洞的风险进行分级:

l 风险极高,要求开发人员立刻整改并且24小时后阻断下载。

l 风险较高,给开发团队预留一周的时间进行整改。

l 风险较低,阻断生效可以由安全管控的团队每个月或者每个季度进行定期自动更新。

那么此时我们就需要对漏洞组件进行一个精准的管理策略,将我们需要屏蔽的漏洞组件进行定期更新,并不是单纯的利用漏洞库的规则进行组件的屏蔽。

Xray精准规则配置方法

那么利用Xray精准的配置屏蔽规则配置呢?

  1. 首先,定义一条规则(Policies),比如高危漏洞不许下载。

其次,在创建watches的时候指定filter,通过filter来限制组件的监测范围。

最后,如果这个范围内的组件本身就有高危漏洞,则这个组件则会被屏蔽下载,如果这个在当前没有漏洞,我们还可以通过自定义一条高危的漏洞数据。

具体操作如下:

  1. 创建一个Policies

在Xray首页Policies菜单页面中进行新建如下图:

(注:policies在Xray中起到设定规则的作用)
JFrog Xray如何实现组件安全精准管理

填写名字,选择类型Security,增加规则,
JFrog Xray如何实现组件安全精准管理
填写规则信息,名字,选择级别High,向下滚动页面选择阻断下载 “block download”。
JFrog Xray如何实现组件安全精准管理
JFrog Xray如何实现组件安全精准管理
向下滚动页面选择阻断下载“block download”。如果要在CI构建中也要监控,那么勾选“ail Build”。

  1. 然后,创建Watches

在Xray首页Policy菜单页面中进行新建如下图:

(注:Watches在Xray中起到规则与Artifactory中资源关联的作用,也就是设定上面Policies的作用域)
JFrog Xray如何实现组件安全精准管理
填写名字,勾选Enabled启动,增加需要监管资源(构建或者仓库)
JFrog Xray如何实现组件安全精准管理
选择需要阻断的组件包存在的仓库
JFrog Xray如何实现组件安全精准管理
在添加资源界面选择仓库之后使用,Filters指定漏洞组件的全路径,或者组件包名,添加完成资源的同时选择刚才的新增的policies。
JFrog Xray如何实现组件安全精准管理
以上配置完成之后,那么这个仓库的只会针对这个包进行规则的监控,当这个包存在漏洞时,会被阻断下载。

  1. 创建自定义漏洞

根据上面设置的规则,如果我们监控的这个组件包存在漏洞,则会被阻断下载。那么如果这个组件没有漏洞需要怎么做呢?

此时需要使用Xray自定义漏洞的功能,针对这个包我们自行添加一个漏洞。

在Xray的Components菜单中搜索我们组要阻断的组件名,
JFrog Xray如何实现组件安全精准管理
进入组件列表,找到我们需要阻断的组件版本,在右上角Action ,选择Assign Custom issue
JFrog Xray如何实现组件安全精准管理
弹出如下窗口,填写名称与描述后,将安全级别设置为High,通过这个级别来适配我们上面创建的Policies,触发我们Policies的阻断规则。填写完之后,点击保存,之后就可以看到我们自定义的漏洞了。
JFrog Xray如何实现组件安全精准管理
JFrog Xray如何实现组件安全精准管理


欢迎观看JFrog杰蛙每周二在线课堂,点击报名:

https://www.bagevent.com/even...

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
java中比较两个时间的差值
项目背景1.某篇文稿的发布时间是publishDate,例如:2020072118:00:41。2.现要求判断该篇文稿的发布时间是否在近30天之内。publicstaticlongdayDiff(DatecurrentDate,DatepublishDate){LongcurrentTimecurrentDat
Karen110 Karen110
3年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
DevOps世界中的软件开发
!(https://oscimg.oschina.net/oscnet/f40e68cbfe8148deb00f040b4e917a0a.jpg)在整个软件开发过程中,开发人员通常需要花费大量时间来修复错误和漏洞,以便一切按计划进行交付。但是,通过DevOps实践,可以更轻松地管理和保护这些问题。这是由于以下事实:使用DevOps实践的软
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
关纯
关纯
Lv1
因为除草麻烦,所以不再种花。
文章
3
粉丝
0
获赞
0