Black Duck漏洞扫描问题解决笔记

解决问题最常用的办法就是升级组件,升级到解决了问题的组件版本,但是实际过程中往往会遇到各种各样的问题,记录一二。

  • perl-IO被识别为perl
    产品中并没有安装perl组件,安装了perl相关的perl-IO,perl-Errno组件,但是被Black Duck识别为perl。通过perl --version可以看到perl的版本为5.28.2,通过rpm -qa可以看到perl-IO的版本为1.39-436.fc30,结果在扫描结果中没有perl-IO的组件,多了一个版本为1.39-436.fc30的perl组件。
    在论坛中提问,没有应答,只好自寻出路。好在分析发现产品中perl组件并非必须,通过卸载组件的方式解决。
  • rsync中扫描出zlib?
    发现一个组件:zlib 1.2.8,对应的文件为rsync。怀疑是rsync链接了zlib的库,链接的是1.2.8版本的库。下载源码果然如此。使用最新版本重新编译问题解决
  • DISPUTED
    有些问题是误报,比如CVE-2019-9193
** DISPUTED ** In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_read_server_files' group to execute arbitrary code in the context of the database's operating system user. This functionality is enabled by default and can be abused to run arbitrary operating system commands on Windows, Linux, and macOS. NOTE: Third parties claim/state this is not an issue because PostgreSQL functionality for ?COPY TO/FROM PROGRAM? is acting as intended. References state that in PostgreSQL, a superuser can execute commands as the server user without using the ?COPY FROM PROGRAM?. Furthermore, members in 'pg_read_server_files' can run commands only if either the 'pg_execute_server_program' role or superuser are granted.
  • xerces包识别为低版本
    产品中把所有用到的第三方组件打包成一个jar包,其中用到的xercesImpl包为2.12.0版本,单独扫描该jar包版本可以正常识别,一旦跟net.sourceforge.nekohtml:nekohtml一起打包就会识别为低版本2.1.0(反复试验,最后定位到就是几个类:HTMLComponent.class,HTMLConfiguration.class,HTMLConfiguration$ErrorReporter.class,不知道Black Duck是怎么识别的)。最后只好把这个引起冲突的jar包单独作为一个jar提供,不打到统一的jar包中。
    另外需要说的是jdk中的rt.jar也会识别出xerces-j的低版本2.7.1,这个目前就没有什么办法了,动jdk就有点动作太大了。

总结:

  • 解决问题最常用的办法就是找到可以解决问题的版本,升级上去,当然也不是越新越好,还是要考虑版本兼容性,尽量在小版本上升(比如springboot,当前用的是4.x.x版本就尽量在4.x.x上解决问题,不要升到5.x.x以免接口变动太大)
  • 解决问题最有效的办法是:卸载掉有问题的组件,一劳永逸。当然得确认相应的组件在发布产品中用不到。听起来似乎不可取,但实际上我们的产品在这方面有很大的潜力,有很多开发期的内容会流落到发布产品中去。实际上这应该是第一步需要考虑的,如果能够删除,益处多多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值