Spring框架曝安全漏洞,你如何评价这个漏洞?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring框架曝安全漏洞,你如何评价这个漏洞?相关的知识,希望对你有一定的参考价值。
Spring框架曝安全漏洞,你如何评价这个漏洞?下面就我们来针对这个问题进行一番探讨,希望这些内容能够帮到有需要的朋友们。
继Log4j2以后,听到Java再度遭受漏洞进攻,这一次,好像状况也更为严重,由于遭受危害的是Java服务平台的开源系统全栈应用软件框架和控制反转器皿完成——Spring家族,并且网传漏洞还不仅一个。一直以来,Spring是程序编写开发设计的首选技术性之一,先前一位名叫BogdanN.的全栈开发者乃至点评道:“学习培训Java、学习Spring框架,你永远都不容易下岗。”
显而易见,假如Spring城门失火,Java必然殃及。但是,SpringRCE漏洞在互联网上炒了二天,尽管有许多安全圈工作人员陆续发朋友圈,但大量的或是表明了仅仅听到,这也不免令人怀疑,是真有漏洞,或是虚惊一场?3月26日,据网络信息安全网址CyberKendra报导,SpringCloudFunction官方网功能测试曝出了SpringCloudFunctionSPEL(SpringExpressionLanguage)关系式引入漏洞,网络黑客可使用该漏洞引入SPEL表达式来开启远程连接命令实行。
最初,科学研究工作人员在剖析SpringCloud函数公式的main支系时,发觉有开发者向在其中加上了SimpleEvaluationContext类。还采用了isViaHeadervariable做为标示,在分析spring.cloud.function.routing-expression以前分辨的值源自HTTPheader。现阶段,SpringCloudFunction被很多互联网巨头运用于设备中,包含AWSLambda、Azure、GoogleCloudFunctions、ApacheOpenWhisk及其很多Serverless服务提供商。
依据官方网文本文档,SpringCloudFunction是根据SpringBoot的函数计算框架,它可以:根据函数公式推动业务逻辑的完成。将业务逻辑的开发设计生命期与一切特殊的运作时总体目标分离出来,便于应用同样的编码可以做为Web端点、流处理器数量或每日任务运作。适用跨Serverless服务提供商的统一程序编写实体模型,具有单独运作(当地或在PaaS中)的工作能力。在Serverless上给予程序流程上开启SpringBoot作用(全自动配备、依赖注入、指标值)。
简单点来说,SpringCloudFunction根据抽象化传送关键点和基础设施建设,为开发者保存了解的开发环境和开发流程,让开发者致力于完成业务逻辑,进而提升开发设计高效率。现阶段,SpringCloudFunctionSPEL漏洞已被分类为比较严重级别,CVSS(通用性安全性漏洞评分标准)得分成9.0(100分10)。
对比前面一种,3月29日夜间,有许多网民曝出的SpringRCE漏洞,让开发者圈中人人自危。但是有一些与众不同的是,这一漏洞现阶段并没像Log4j2事情那般造成的圈里众多公司大型厂的紧急行动,都不像SpringCloudFunctionSPEL漏洞那般有官方网表明,乃至连海外公布漏洞的源头也是来源于QQ和中国一部分网络信息安全网址。
参考技术A 这个漏洞也是比较大的,说明这样的一个漏洞也需要管理,需要查处的。 参考技术B 我觉得这个漏洞需要尽快修复,因为它不仅有着致命的弱点,而且一旦被攻击能够完全控制整个Web应用,同时会运行攻击者自己的代码,所以不能掉以轻心。 参考技术C 我觉得这个漏洞挺危险的,如果一旦被攻击者利用,攻击者便能够完全控制整个Web应用并且能够运行自己的代码,所以希望官方赶紧解决。Apache Log4j曝史诗级漏洞,Spring boot修复教程
全球知名开源日志组件Apache Log4j被曝存在严重高危险级别远程代码执行漏洞,攻击者可以利用该漏洞远程执行恶意代码。据阿里云通报,由Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。
该漏洞于12月7日由游戏平台Minecraft用户在网上曝光,据称黑客可以通过操作日志消息(甚至在聊天信息中键入内容),并且还可以在Minecraft服务器端执行恶意代码。Apache log4j官方在7日当天便发布2.15.0-rc1版本以修复漏洞,随后,阿里云、斗象科技、绿盟科技、默安科技、奇安信等安全厂商发布危害通报。
目前受漏洞影响的主要是Apache Log4j 2.x <= log4j-2.15.0-rc1版本,当用户使用Apache Log4j2来处理日志时,漏洞会对用户输入的内容进行特殊处理,攻击者便可以在Apache Log4j2中构造特殊请求来触发远程代码执行。
如何判断是否受影响,开发者只需排查在Java应用中是否引入log4j-api, log4j-core两个jar文件,若存在,建议立即进行安全排查,采取防护措施。
如果我们的项目是基于maven的spring boot项目。查看项目依赖中是否存在log4j-api, log4j-core的依赖即可。
目录
1.打开依赖树
发现我们引用的log4j-api是2.13.3版本。
2.查看log4j-api依赖
发现是log4j-to-slf4j依赖了log4j-api。首先排除log4j-to-slf4j,引入最新版试试。
3.排除log4j-to-slf4j
发现引入的log4j-api依旧是2.13.3版本。那么,我们要排除log4j-api,引入最新版。
4.排除log4j-api
发现引入的log4j-api最新版本是2.15.0版本。成功。
项目打包后,查看lib里面的jar版本:
5.排除依赖的代码
<!-- 排除log4j-api,引入最新log4j-api -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</exclusion>
</exclusions>
<version>2.15.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.15.0</version>
</dependency>
<!-- 排除log4j-api,引入最新log4j-api END-->
以上是关于Spring框架曝安全漏洞,你如何评价这个漏洞?的主要内容,如果未能解决你的问题,请参考以下文章
Apache Log4j曝史诗级漏洞,Spring boot修复教程
ThinkPHP开发框架曝安全漏洞,超过4.5万家中文网站受影响