漏洞修复系列如何不安装软件或应用,直接查看软件内依赖包的版本信息?记一次漏洞修复实践分享

Posted 善良勤劳勇敢而又聪明的老杨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了漏洞修复系列如何不安装软件或应用,直接查看软件内依赖包的版本信息?记一次漏洞修复实践分享相关的知识,希望对你有一定的参考价值。

1、前景

        最近公司运维通过漏洞软件,扫描出一些漏洞。有一些后端相关的软件或Java依赖包漏洞,我这边开始做起了漏洞处理。本次处理的漏洞中,以Nacos中包含的漏洞依赖包为例(以下实践都是与此相关),分别存在了以下2个漏洞:

【Spring 框架反射型文件下载漏洞 (CVE-2020-5421)】
【Jackson-databind 反序列化漏洞 (CVE-2021-20190)】


2、漏洞修复过程

2.1 漏洞版本信息

        这2个漏洞,我这边都找到了对应的处理方法说明贴,链接如下:

处理【Spring 框架反射型文件下载漏洞 (CVE-2020-5421)】:Spring Framework反射型文件下载漏洞风险通告,腾讯主机安全(云镜)支持检测

处理【Jackson-databind 反序列化漏洞 (CVE-2021-20190)】:Jackson-databind反序列化漏洞(CVE-2021-20190 )风险通告

        然后按照上述处理信息中,开始找到对应的安全依赖包版本。通过安全处理建议中,可以知道:

Spring Framework安全版本:
5.2.9
5.1.18
5.0.19
4.3.29

jackson-databind安全版本:
>=2.9.10.7

        我们服务器所使用到的nacos server版本是1.1.4版本,其中spring框架的核心相关包都是5.1.3版本:

 而json-databind的版本是2.9.10版本:

 所以,目前使用的nacos server端1.1.4版本,是有以上2个漏洞风险的。

2.2 快捷查找所需的安全版本

        找安全版本的软件或依赖包,需要下载安装之后,才能看到具体的包引用版本。于是这里出现了一个很费时间的步骤:

1、需要下载软件或依赖包(如果包很大,几百M之类,下载就会看网速了,可能会很慢,我下载就很慢)
2、下载之后,需要安装或使用IDEA打开明细,去查找具体的包,查看对应版本(一个个去找时,很费时)

所以,如何不安装软件或应用,直接查看软件内依赖包的版本信息?

①第一步,进入下载地址,下载软件使用的资源包(注意:不是安装包,资源包一般会小很多)

        我这边nacos的下载地址是:Tags · alibaba/nacos · GitHub

        这个页面里,由近及远的各个版本,我这边选择查看1.4.0版本(当然我这边版本就是我所需的安全版本,找过好几遍了,这里只是做一个查找操作的分享说明)。点击1.4.0后,进入如下页面:

         最下面的Assets里面有4栏可以下载的链接,前面两个分别是linux和window使用的安装包,可以看到有75M+。(我因为网速一般,下载了很久)而第三四栏,就是nacos 1.4.0版本使用到的资源包了,我这里直接下载了window的资源包(大家按需下载),这个包较小,下载的很快。        

②第二步,打开资源包,查看pom文件,查找依赖包的版本(结合maven远程仓库查找)

         下载完成后,使用zip工具,打开压缩包,直接解压出里面的pom.xml文件,查看nacos使用到的maven依赖情况。

 打开pom文件,查看依赖版本:

        可以看到,jackson-databind的版本是>2.9.10.7版本的,也就是安全本。。接下来,,在看看Spring Framework的版本,因为pom中依赖的是spring-boot-dependencies版本是2.1.17.RELEASE,看不到对应的Spring核心包的版本。此时,我们就需要到maven远程仓库查找一下了。先搜索spring-boot-dependencies,如图:

 往下翻,查看spring相关的核心包依赖情况:

 点进spring-framework-bom中,也拉到下面的依赖信息列表:

 这里可以看到,spring的核心包相关,都是使用的5.1.18,对照上述的安全版本信息,可以发现5.1.18是属于安全版本的。至此,也就说明,这个nacos server 1.4.0版本,是安全可用的版本了。

        如果你不放心,可以直接待nacos安装包下载完成之后,在target目中,有一个nacos-server.jar,使用工具打开jar包,查看一下,如图所示:

③第三步,切换安全版本的安装包或依赖包

        安全的包找到之后,就可以开始切换啦。但是这里需要注意,因为切换可能会因为版本差异,存在一些未知的问题。所以,需要谨慎操作。并且在开发环境,测试验证通过,运营稳定之后,再视情况切换到生产。


3、总结

        本次修复漏洞的实践分享,就到这里啦。其实本次,主要是想记录一下如何快速找到安全版本的安装包或依赖包的经验,希望能帮助到遇到类似问题的朋友们~~

        另外,升级安装包或依赖包,一定要注意版本不同,可能或带来一些差异,或是报错等异常问题,所以,需要非常谨慎。建议在,开发测试环境,实践运行观察稳定之后,再切换到生产环境。避免线上出BUG,那就难搞了额!!!

以上是关于漏洞修复系列如何不安装软件或应用,直接查看软件内依赖包的版本信息?记一次漏洞修复实践分享的主要内容,如果未能解决你的问题,请参考以下文章

高危漏洞修复不了怎么办

Linux软件漏洞修复指南

如何查出漏洞weblogic java反序列化漏洞补丁存在绕过风险

shellHelper.exe-应用程序错误

linux glibc漏洞修复 需要重启吗

如何修复漏洞