安天全线产品有效应对Spring框架远程命令执行漏洞

时间 :  2022年04月01日  来源:  安天


1.概述


3月31日,国家信息安全漏洞共享平台(CNVD)发布了《关于Spring框架存在远程命令执行漏洞的安全公告》。公告指出,攻击者利用该漏洞,可在未授权的情况下远程执行命令,目前,漏洞利用方法已经被各类攻击者掌握,Spring官方已发布补丁修复该漏洞。安天全程跟进了该漏洞线索出现、信息曝光等相关情况,快速响应,部署感知能力,及时将跟进情况报送CNVD,安天等5家网络安全厂商获得了CNVD的致谢。关于该漏洞的情况可详见安天公众号今日发布的第二条文章。目前,安天全线产品可帮助用户有效响应Spring框架远程命令执行漏洞。本文第5部分提供了针对该漏洞的解决方案。

2.漏洞危害等级


危害等级:高危。

说明:由于攻击者不需要认证和交互,攻击门槛较低,且触发方式相对简单。

3.受漏洞影响的版本范围


● Spring Framework < 5.3.18

● Spring Framework < 5.2.20

● 及其衍生产品

● JDK ≥ 9

● JRE ≥ 9

4.漏洞排查方法


4.1 JDK版本号排查

在业务系统的运行服务器上,执行“java -version”命令查看运行的JDK版本,如果版本号小于等于8,则不受漏洞影响。

4.2 Spring框架使用情况排查

如果业务系统项目以war包形式部署,按照如下步骤进行判断。

(1)解压war包:将war文件的后缀修改成.zip ,解压zip文件

(2)在解压缩目录下搜索是否存在 spring-beans-*.jar 格式的jar文件(例如spring-beans-5.3.16.jar),如存在则说明业务系统使用了spring框架进行开发。

(3)如果spring-beans-*.jar 文件不存在,则在解压缩目录下搜索CachedIntrospectionResuLts.class 文件是否存在,如存在则说明业务系统使用了Spring框架开发。

如果业务系统项目以jar包形式直接独立运行,按照如下步骤进行判断。

(1)解压jar包:将jar文件的后缀修改成.zip,解压zip文件。

(2)在解压缩目录下搜索是否存在spring-beans-*.jar 格式的jar文件(例如spring-beans-5.3.16.jar),如存在则说明业务系统使用了spring框架进行开发。

(3)如果spring-beans-*.jar 文件不存在,则在解压缩目录下搜索CachedIntrospectionResuLts.class 文件是否存在,如存在则说明业务系统使用了spring框架进行开发。

5.安全建议及解决方案


Spring官方已于2022年3月31日发布新版本,修复了此漏洞,请受影响的用户及时更新至最新版本:https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement

安天全线产品从流量检测、终端防御、WEB应用防护、蜜罐捕获等不同角度,分别提供了针对该漏洞的解决方案。

5.1 流量检测

安天探海产品已可针对Spring Cloud、Spring Core远程命令执行漏洞利用事件进行检出。已包含相关检测规则的网络威胁行为规则库版本为:Antiy_AVLX_2022033012_bcd8aa4b407d03fdbfa5a11499a0eee5(请确认系统版本为:6.6.1.2 sp1 及以上,更老的版本请先升级到最新版本)

若用户已加入安天动态均衡防护计划,设备将在一天内自动收到更新包并进行检测。请关注下表中规则的检出信息,检出时将自动留存相关证据pcap供下载分析。

表5-1 Spring流量检测规则信息

漏洞编号

告警名称

事件描述

CVE-2022-22965

ExploitWeb:CodeExecute/Spring.700050808!c2s

ExploitWeb:CodeExecute/Spring.700050809!c2s

ExploitWeb:CodeExecute/Spring.700050810!c2s

疑似Spring-Beans远程代码执行漏洞

CVE-2022-22965

ExploitWeb:CodeExecute/SpringCore.2312100121@upload-file!c2s

利用-漏洞-发现通过SpringCore核心组件(CVE-2022-22965)-尝试文件注入

CVE-2022-22965

Suspicious:Datagram/SpringCore.2312100120@rce-req!c2s

异常-提交-疑似通过SpringCore核心组件(CVE-2022-22965)-提交Payload

CVE-2022-22965

ExploitWeb:CodeExecute/SpringCore.2312100119@upload-file!c2s

利用-漏洞-发现通过SpringCore核心组件(CVE-2022-22965)-尝试文件注入

CVE-2022-22965

ExploitWeb:CodeExecute/SpringCore.2312100118@rce-req!c2s

利用-漏洞-发现通过SpringCore核心组件(CVE-2022-22965)-任意代码执行

CVE-2022-22963

ExploitWeb:CodeExecute/Spring.2312100116@spel-injection!c2s

利用-漏洞-发现通过Spring组件漏洞(CVE-2022-22963)-进行SPEL表达式注入

CVE-2022-22963

ExploitWeb:CodeExecute/Spring.2312100117@spel-injection!s2c

利用-漏洞-发现通过Spring组件漏洞(CVE-2022-22963)-组件已受到影响

CVE-2022-22947

ExploitWeb:CodeInjection/Spring.2312500019@rce-req!c2s

Spring Cloud Gateway spel注入远程代码执行  CVE-2022-2294

若用户未加入此计划,建议立即联系安天售后服务热线,以获取规则更新包,或等待下一次常规更新。售后热线:400-840-9234

若用户已从其他途径获取更多威胁情报,可通过设备的“自定义规则”(针对IP、域名、URL),“流量检测规则”—“自定义规则“(针对SNORT规则)进行威胁情报应用。若网内发现了威胁的相关线索,可通过“目标审计”功能对可疑主机进行全流量获取分析。

图5-1 安天探海检出事件列表

图5-2 安天探海检出结果

图5-3 安天探海检出数据包详情

注:安天探海产品所有型号及版本自身不受此漏洞影响。

5.2 终端防御

安天智甲最新版本已实现对Spring Framework 远程命令执行漏洞检测,并且针对Windows终端和Linux终端均已具有检测能力。用户安装智甲客户端程序后,可使用“漏洞修复”功能检测终端系统环境是否存在该漏洞,如果终端存在该漏洞,用户可直接通过程序查看相关信息,如下图:

图5-4 Windows客户端检测界面

图5-5 Linux客户端检测界面

5.3 WEB应用防护

安天下一代WAF已实现利用Spring Framework远程命令执行漏洞进行攻击的有效防护。

将安天下一代WAF升级至最新版本特征库(Sigdb-V2-1000-45)即包含针对该漏洞的特定防护规则。

具体过程为:

(1)创建一条攻击特征检测策略”Spring RCE”,确保”已知漏洞防护”类型的防护状态为开启。

(2)保存后在站点设置的”安全防护设置”中引用该预定义特征检测策略。

(3)当检测到服务器遭受该远程漏洞攻击时,攻击日志中可以看到触发该预定义特征的详情。

5.4 蜜罐捕获

安天捕风蜜罐系统是诱骗黑客攻击的威胁感知产品,适用于内网、外网、隔离网等场景捕获威胁,生成威胁事件、攻击链等溯源信息,发现外部攻击源和内部失陷主机,尤其适用于护网场景,协助防守方快速得分。通过诱饵部署、仿真与部署环境相似的蜜罐资产来使攻击者“真假难辨”,拖延攻击者,系统提供包括网络设备仿真、WEB仿真、数据库仿真、操作系 统仿真、系统服务仿真、应用服务仿真等持续丰富的仿真能力;具备网络、系统、日志等数据全面采集,具备网络检测、文件检测,攻击阶段行为检测,聚合攻击链和原始攻击包。

根据漏洞报告,捕风蜜罐已经具有相关漏洞触发所需的仿真服务环境,并第一时间集成了该漏洞检测规则,并在公网部署了漏洞环境,实时监控最新漏洞利用情况。

图5-6 捕风蜜罐检测漏洞入侵事件

如果客户的设备版本是v3.3.6.0 及以上,可以通过部署 Scada LTS 仿真资产来发现威胁。

需提醒客户重点检出特征ID:130000031

附录一:参考资料


[1] https://www.cnvd.org.cn/webinfo/show/7541 [2] https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement [3] https://github.com/spring-projects/spring-framework/commit/7f7fb58dd0dae86d22268a4b59ac7c72a6c22529 [4] https://github.com/spring-projects/spring-framework/compare/v5.3.17...v5.3.18