Spring Cloud Function SpEL注入漏洞(CVE-2022-22963)分析

一、概述

2022年3月24日,Pivotal修补了Spring Cloud Function中一个关键的服务器端代码注入漏洞(Spring表达式语言注入),该漏洞有可能导致系统被攻击。Spring是一种流行的开源Java框架,该漏洞与另一个相关的远程代码执行(RCE)漏洞(Spring Core,即“Spring4Shell”)均可通过Akamai Adaptive Security Engine (ASE) Kona Site Defender (KSD)规则集有效防御。

本文将重点分析Spring Cloud漏洞,有关Spring Core漏洞的详情请参阅这里。

Spring Cloud Function技术可实现业务逻辑与特定运行时之间的解耦。Spring表达式语言(SpEL)作为一种强大的表达式语言,已在各类Spring产品中实现了广泛应用,支持在运行时查询和操作对象图。过去,当应用程序以不安全的方式评估不受信任的用户输入的代码表达式时,很多远程代码执行方面的常见漏洞和暴露(CVE)都是围绕SpEL注入产生的(参见图1)。

图1:GitHub上的Spring Cloud Function代码路径

几天后,3月26日,GitHub用户“cckuailong”发布了一个概念验证漏洞,展示了对该漏洞的成功利用(图2)。

图2:公开的概念证实利用

随后不到一天的时间里,Akamai就观察到整个互联网上开始出现相关利用。

图3:3月27日开始的利用企图(来源:某客户的Akamai Web Security Analytics分析结果)

与Log4j类似,很多(并非全部)当前企图都是“Ping Back”类型的探测,攻击者只是在能够成功利用的情况下发出一个信标。

我们已经观察到全球各地的数千个IP地址开始发送有效载荷,其中大部分来自虚拟专用网络以及托管在公有云中的Web代理。

二、漏洞

通过补丁程序逆推可知,该漏洞可通过“spring.cloud.function.routing-expression”HTTP头来接收SpEL表达式,进而方便应用程序进行路由。

但代码中并不检查要评估的表达式是否应该通过HTTP头来接收。为修复该问题,添加了一个额外的headerEvalContext,它也是SimpleEvaluationContext的一部分。

三、使用KSD自适应安全引擎加以缓解

Akamai自适应安全引擎(ASE)可通过广泛的内置规则来检测命令注入,因为很多此类攻击的目标都是执行操作系统级别的命令。ASE能够利用现有命令注入规则检测到这个零日攻击:

此外下列Kona Site Defender规则集也可以缓解相关攻击:

  • 3000041 – 服务器端模板注入
  • 3000156 – CMD注入检测(PHP High-Risk Functions)

四、总结

虽然Spring Cloud Function的使用不像Log4j那么广泛,但这个漏洞易于利用的特点依然会吸引很多攻击者。Akamai预计该漏洞会引发很多以数字货币盗挖、DDoS攻击、勒索软件为目标的攻击,并且可能成为未来很长一段时间里潜入组织内网的有效途径。不过Akamai客户已经可以通过Akamai Adaptive Security Engine和Kona Site Defender规则集获得充分保护。

Akamai的威胁研究团队也将继续监控该漏洞的发展,并在出现新情况后及时通知大家。欢迎关注Akamai知乎机构号,第一时间了解最新近况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/589739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dirichlet Process (徐亦达老师)狄利克雷过程

混合高斯模型的例子 混合高斯模型 混合高斯模型(Mixture of Gaussians,简称GMM)是一种概率模型,用于对复杂的数据分布进行建模。它是由多个高斯分布组合而成的混合模型,每个高斯分布(称为组件)…

知识库问答LangChain+LLM的二次开发:商用时的典型问题及其改进方案

前言 如之前的文章所述,我司下半年成立大模型项目团队之后,我虽兼管整个项目团队,但为让项目的推进效率更高,故分成了三大项目组 第一项目组由霍哥带头负责类似AIGC模特生成系统第二项目组由阿荀带头负责论文审稿GPT以及AI agen…

pytorch深度学习笔记(共计169页,基于本人听完B站小土堆PyTorch深度学习快速入门教程所写)

一、笔记视频 pytorch深度学习(共计169页,基于本人听完B站小土堆PyTorch深度学习快速入门教程所写) 二、获取方式 方式一: 点击下面的链接 pytorch深度学习笔记 如果链接无法打开 直接复制下方链接即可 https://mall.bilibili.c…

如何借助边缘网关打造智慧配电房安全方案

配电房是电力系统的重要组成部分,通常设置有各种高压配电装置和箱柜,是企业安全管理的重点。传统的人工巡检和监控总是难以避免疏漏,导致风险隐患的产生和扩大。 随着物联网、边缘计算、设备联动控制等技术的普及应用,佰马针对配电…

在FC中手工创建虚拟机模板

1、Linux去除个性化信息 (1)编辑网卡配置文件,只保留以下内容(以RHEL 7为例) (2)清除主机密钥信息(开机会自动生成) (3)清除Machine ID&#xff…

机器学习概述

最近在学习机器学习的基础知识,在此记录一下 目前最火的机器学习框架是Scikit-Learn和pytorch,因此,之后的一段时间会使用这两种框架搭建机器学习的模型,相应的学习资源也会开源,希望可以学习到很多知识。 简单介绍机…

Servlet见解3

13 Cookie和Session http协议是一个无状态的协议,你每一个跳转到下一个页面的时候都是需要先登录才能使用,这样就很麻烦比如淘宝,没有cookie和session的话,用户在首页已经登录上去了,但是需要再次登录才能选择商品&am…

使用pyqt5+qtdesign设计模仿网易云音乐客户端界面

案例效果图 设计界面效果图: 运行效果图: 本项目目前只是对界面进行了设计,功能都没有进行完善,想完善的小伙伴自己拿到UI文件之后,自己完善即可。 简要设计思路说明 使用QFrame将界面分割布局成如下几个部分&am…

buuctf-Misc 题目解答分解103-105

103.[GKCTF 2021]签到 追踪流发现类似flag 字符 f14g 下面有大量的是16进制字符 64306c455357644251306c6e51554e4a5a3046355355737764306c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e655…

学习动态规划解决不同路径、最小路径和、打家劫舍、打家劫舍iii

学习动态规划|不同路径、最小路径和、打家劫舍、打家劫舍iii 62 不同路径 动态规划,dp[i][j]表示从左上角到(i,j)的路径数量dp[i][j] dp[i-1][j] dp[i][j-1] import java.util.Arrays;/*** 路径数量* 动态规划,dp[i][j]表示从左上角到(i,j)的路径数量…

归并算法排序

目录 归并排序 逆序对的数量 归并排序 题目如下: 给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式: 输入共两行,第一行包含整数 n。 第二行包含 n 个整数&…

基于Java SSM框架实现智能仓储管理系统项目【项目源码+论文说明】

基于java的SSM框架实现仓库管理系统演示 摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,智能仓储系统当然也不能排除在外。智能仓储系统是以实际运用为开发背景&#xf…

ThinkPad产品如何升级BIOS程序

操作步骤: 重要提示: 更新BIOS存在风险!如果您的电脑在此过程中出现死机,系统崩溃或断电,则BIOS或UEFI固件程序可能会损坏,这将使您的电脑无法启动。 由于BIOS的版本或者在升级过程中出错,可能会造成不可…

移动客服系统必备功能:提升用户体验与工作效率的关键要素

在快速发展的时代,工作的节奏也越来越快,也许您正在高铁上或者正在午餐时,就有客户提出需求来。所以,移动客服系统的需求也越来越多,那么移动客服系统怎么样?接下来,我们一起来看看移动客服系统…

python-39-flask+nginx+Gunicorn的组合应用

flask nginx Gunicorn 王炸 1 flasknginxgunicornsupervisor 1.1 myapp.py from flask import Flask app Flask(__name__)app.route("/") def test_link():return "the link is very good"if __name__"__main__":app.run()默认是5000端口…

CSS去掉按钮阴影 | css去掉按钮边框 | 注意改变搜索的关键词、搜索方式

上图是在谷歌浏览器中运行的结果 button {box-shadow: none;height: 50px;width: 100px;background-color: white;border-color: white; }写了以上的css,发现按钮还是有阴影一样的东西,查阅网络资料的时候也一直在搜索“如何去掉按钮阴影”,…

Linux调试工具—gdb

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:HEART BEAT—YOASOBI 2:20━━━━━━️💟──────── 5:35 🔄 ◀️ ⏸ ▶️ ☰ …

【Delphi】IOS上架踩坑记 - 2024年第一天

目录 一、前言: 二、IOS程序上架网址 三、踩坑记 1. 关于版本中的 CFBundleIdentifier 参数(Transporter 提示) 2. IOS APP 程序图标要求(Transporter 提示) 3. 关于版本中的 CFBundleShortVersionString 参数&a…

收入支出记录,对需要的账目明细进行颜色标记

面对繁杂的账单和财务数据,你是否曾为记账而感到苦恼?别担心,我们为你带来了一款全新的记账软件——晨曦记账本,这不仅仅是一个简单的记账工具,更是你财务管理的得力助手。 所需工具: 一个【晨曦记账本】…

【C++】Windows编译FileZilla Client

按照Compiling FileZilla 3 under Windows - FileZilla Wiki (filezilla-project.org)操作即可。 1.下载安装MSYS2 msys2-x86_64-20220118.exe 2.更新MSYS2 进入MSYS2 MinGW 64-bit shell,运行 pacman -Syu重复退出shell,更新MSYS2。直到没有可更新…