点击蓝字关注我们
01
漏洞情报简介
3月29日,Spring框架曝出RCE 0day漏洞(CVE-2022-22965)。已经证实由于 SerializationUtils#deserialize 基于Java的序列化机制,可导致远程代码执行(RCE),使用JDK9及以上版本皆有可能受到影响。在Spring框架的JDK9版本(及以上版本)中,远程攻击者可在满足特定条件的基础上,通过框架的参数绑定功能获取AccessLogValve对象并诸如恶意字段值,从而触发pipeline机制并写入任意路径下的文件。
02
影响版本
版本低于5.3.18和5.2.20的Spring框架或其衍生框架构建的网站或应用且JDK版本>=9
03
漏洞复现
公共研究中心的卫兵实验室 、析安实验室联合 AiLPHA安全分析团队对该漏洞进行了复现,复现截图如下。
04
AiLPHA解决方案
AiLPHA安全分析团队第一时间在系列产品中集成该漏洞规则,并提供以下具体解决方案:
1
AiLPHA大数据平台检测方案
AiLPHA大数据平台的流量探针(AiNTA)已在3月28日加入了对该漏洞的检测规则,请将规则包升级到1.1.576版本(AiNTA-v1.2.2_release_ruletag_1.1.576)及以上版本。规则名称:Spring框架远程代码执行漏洞(CVE-2022-22965),规则编号:93009227
AiNTA流探针规则升级方法:系统管理->手动升级,选择“上传升级包”。
规则包下载地址:
AiLPHA安全中心地址:https://ailpha.dbappsecurity.com.cn/index.html#/login
如无账号信息,可根据页面信息提示进行注册。
2
APT攻击预警平台
APT攻击预警平台已经在3月28日加入了对该漏洞的检测规则,请将规则包升级到GoldenEyeIPv6_XXXXX_strategy2.0.25837.220329.1及以上版本。
规则名称:Spring框架远程代码执行漏洞(CVE-2022-22965),规则编号:93009227
APT攻击预警平台规则升级方法:系统->升级管理,选择“手动升级”或“在线升级”。
APT攻击预警平台的规则升级包请到安恒社区下载:https://bbs.dbappsecurity.com.cn/
3
AiLPHA高级威胁检测与分析系统(AXDR)
AXDR平台流量探针AiNTA升级到1.1.576版本及以上即可从流量中检测到该漏洞的攻击利用情况,建议用户安装aigent检测漏洞利用。如果安装了AiGent,还可以通过该漏洞的异常文件写入行为发现该漏洞的成功利用并告警,如下图所示。
通过平台发现针对该漏洞的攻击行为,及时通过联动策略对攻击者进行响应处置。
05
漏洞排查
当同时满足以下条件时,表明可能受此漏洞影响:
-
JDK版本 >= 9
-
使用Spring框架或者衍生框架
排查方法
-
JDK版本号自查
1.执行“java -version"命令查看JDK版本,如果版本号小于等于8,则不受此漏洞影响。
-
使用Spring框架或者衍生框架
1.如果业务系统项目以war包形式部署,按照如下的步骤进行判断:
◆解压war包:将war文件的后级修改成 .zip文件;在解压缩目录下搜索是否存在spring-beans-*.jar格式的文件(例如spring-beans-5.3.16.jar),如存在则说明业务系统使用了 Spring框架进行开发;如果spring-beans-*.jar文件不存在,则在解压缩目录下搜索CachedlntrospectionResults.class文件是否存在,如存在则说明业务系统使用了 Spring框架进行开发。
2.如果业务系统项目以jar包形式独立运行,按照如下的步骤进行判断:
◆解压jar包:将jar文件的后缀修改成zip,解压zip 文件;在解压缩目录下搜索是否存在spring-beans-*.jar格式的jar文件(例如spring-beans-5.3.16.jar),如存在则说明业务系统使用了 Spring框架进行开发;如果spring-beans-*.jar文件不存在,则在解压缩目录下搜索CachedIntrospectionResults.class文件是否存在,如果存在则说明业务系统使用了 Spring框架进行开发。
06
漏洞修复方案
1
官方解决方案
目前,Spring官方已发布新版本完成漏洞修复,建议受漏洞影响的产品(服务)厂商和信息系统运营者尽快进行自查,并及时升级至最新版本:
https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
2
临时解决方案
1、在WAF等网络防护设备上,根据实际部署业务的流量情况,实现对“class.*”,“Class.*”,“*.class.*”,“*.Class.*”等字符串的规则过滤,并在部署过滤规则后,对业务允许情况进行测试,避免产生额外影响。
2、在应用系统的项目包下新建以下全局类,并保证这个类被Spring 加载到(推荐在Controller 所在的包中添加).完成类添加后,需对项目进行重新编译打包和功能验证测试。并重新发布项目。
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;
@ControllerAdvice
@Order(10000)
public class a{
@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
String[] abd = new String[]{"class.*", "Class.*", "*.class.*", "*.Class.*"};
dataBinder.setDisallowedFields(abd);
}
}
原文始发于微信公众号(安恒威胁情报中心):Spring框架远程代码执行漏洞(CVE-2022-22965) AiLPHA解决方案
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论