博客

了解和解决 Spring4Shell 及相关漏洞(CVE-2022-22965、CVE-2022-22950、CVE-2022-22963)

Brian A. McHenry 缩略图
布莱恩·A·麦克亨利
2022 年 4 月 1 日发布

引用纽约洋基队不朽的捕手、美国职业棒球大联盟名人堂成员和词语误用者的尤吉·贝拉 (Yogi Berra) 的话来说,“这又是似曾相识的感觉。”

就在我们都认为在经历了Log4j漏洞和 Log4Shell 攻击造成的痛苦和动荡之后,可以安全地重新投入应用开发时,又出现了另一个严重的漏洞,它对安全性造成了巨大破坏,并吞噬了宝贵的资源。

您可能已经听说过,2022 年 3 月 29 日,一位中国研究人员发布了 Spring Core Java 库中远程代码执行 (RCE) 漏洞的屏幕截图。 该漏洞目前被编号为CVE-2022-22965 ,CVSS 严重性评分为“严重”。 该漏洞由VMware报告,并已发布到 GitHub,但很快就被删除。 不幸的是,损害已经造成,并且该漏洞很快被发布到其他存储库中。

与许多引起媒体广泛关注的严重漏洞一样,CVE-2022-22965 也有了一个通用名称: Spring4Shell,或者在某些情况下,是 SpringShell。 无论如何,这种严重程度的漏洞无论如何都是危险的,因为大多数applications都使用 Spring 库来为 Java 程序员节省时间。

根据 Spring 于 2022 年 3 月 31 日发布的一篇博客,作为 RCE 的早期公告,该漏洞会影响在 Java 开发工具包 (JDK) 9+ 上运行时的 Spring MVC 和 Spring WebFlux应用s。 它还可能要求应用作为 WAR 在 Apache Tomcat 上运行。 该漏洞影响 Spring Framework 版本 5.3.0 至 5.3.17、5.2.0 至 5.2.19 以及更旧版本。 也许更令人不安的是,Spring 继续警告说“该漏洞的性质更为普遍,可能还有其他尚未报告的利用方式。”

此外,根据 Spring 的说法,以 Java 存档 (JAR) 部署形式运行的applications(默认)不易受到 CVE-2022-22965 的攻击;不过,供应商承认它们可能会受到其他利用技术的影响。

Spring4Shell 漏洞也是紧随另一个漏洞而来。 在 Spring Cloud Function 软件 3.1.6 和 3.2.2 版本以及不受支持的旧版本中,可以创建 Spring 表达式语言 (SpEL) 中特制的路由表达式来访问本地资源并可能启用 RCE 攻击。 CVE-2022-22963 最初被归类为“中等” CVSS 严重性评分,现已被重新归类为“严重”漏洞。 可以通过升级到 Spring Cloud Function 版本 3.1.7 或 3.2.3 来修复。  

除了 CVE-2022-22965 和 CVE-2022-22963 之外,Spring 中的另一个漏洞 CVE-2022-22950 于 2022 年 3 月 28 日被报告。 这是 Spring Framework 5.3.0 – 5.3.16 及更早、不受支持的版本中的拒绝服务 (DoS) 漏洞。 Spring 已在 Spring Framework 5.3.17+ 中发布修复。

截至目前,Spring4Shell 扫描程序已经创建并部署,并有报告称该漏洞正在被积极利用。

Spring 目前已发布修复 CVE-2022-22965 漏洞的版本,包括 Spring Framework 5.3.18、5.2.20;以及依赖于 Spring Framework 5.3.18 的 Spring Boot 2.5.12。 (据 Spring 称,Spring Boot 2.6.6 也依赖于 Spring Framework 5.3.18,应该很快就会发布。)

虽然 Spring 在发布修复程序来解决这些棘手的漏洞方面做得很好,但责任再次落在了组织身上,即尽快更新并应用修复程序。 与 Log4j / Log4Shell 问题一样,挑战在于库的普遍性,以及它们可能被用在组织可能不知道的应用s中。 如果他们不知道应用正在使用受影响的库集,组织如何保护自己及其用户免受漏洞的影响?

这正是 F5 发挥作用的地方。

Spring框架漏洞与Log4j漏洞、Log4Shell漏洞在特征上有异同,但都可以通过部署Web应用防火墙(WAF)等类似的安全解决方案进行检测和阻断。

作为 F5 客户,您已经拥有一些最强大的保护措施来防御基于 Spring4Shell 和相关漏洞的攻击。 但是,F5 敦促您和您的开发团队立即升级任何受影响的 Spring 库,如果不再需要,请从您的applications中删除任何易受攻击的 Spring 库。

以下是 F5 如何通过我们全面、动态的安全产品和服务组合为您提供支持并保护您的applications、组织和用户。

F5 安全事件响应团队 (SIRT)

如果您受到攻击或担心您的组织及其应用程序存在漏洞和暴露,请联系我们的 F5 支持团队并请求升级到F5 SIRT 。 该团队将提供 24/7/365 全天候服务,指导您修补 F5 系统和软件、帮助您进行配置并协助部署F5 iRules以限制任何暴露或减轻攻击。


BIG-IPAdvanced WAF(API 安全 - 新一代 WAF)

F5 已发布(并将继续解决和发布)可用于BIG-IP Advanced WAF(API 安全 - 新一代 WAF)和 BIG-IP ASM 部署的签名集,以阻止任何已知的 Spring4Shell 漏洞暴露的攻击媒介。 签名也在不断更新,以防止任何绕过尝试。 确保您拥有并正在使用最新的攻击特征更新 (ASU) 包。 

对于尚未部署Advanced WAF(API 安全 - 新一代 WAF)或 ASM 的客户,可以针对应用应用 iRule 来检测、记录和删除可能针对特定 CVE 的任何违规流量。

NGINX 应用保护 WAF

无论客户使用和部署哪种 F5 平台,F5 都能确保一致的应用安全性。 因此, NGINX App Protect WAF的客户将与 BIG-IP Advanced WAF(API 安全 - 新一代 WAF)客户同时收到相同的更新签名。 请确保您更新 NGINX App Protect WAF 签名。 有关如何执行此操作的更多信息,请参阅本指南。 另外,请确保您的 WAF 策略中启用了“服务器端代码注入”攻击类型。

F5 分布式云 WAAP

最近发布的F5 分布式云 Web应用和 API 保护 (WAAP)利用 F5 业界领先的基于 SaaS 的 Web应用防火墙 (WAF) 和机器人防护、高级 API 安全性以及 L3-L7 DDoS 防御来保护跨云和边缘站点部署的应用程序和 API。 无论客户部署哪种 F5 产品,F5 的单一 WAF 方法都能确保一致的应用安全性。 因此,由于已经创建了用于解决 Spring4Shell 漏洞的签名并将其提供给 BIG-IP Advanced WAF(API 安全 - 新一代 WAF)和 NGINX App Protect WAF,因此它们也同时提供给分布式云 WAAP。 无需采取其他措施,因为作为分布式云 WAAP 客户,您已经受到保护。

F5 分布式云 WAF

与 BIG-IP Advanced WAF(API 安全 - 新一代 WAF)、NGINX App Protect 和 Distributed Cloud WAAP 一样, F5 Distributed Cloud WAF已经获得必要的签名,以防止与 Spring4Shell 漏洞相关的暴露。 它们包含在默认 WAF 策略中,因此不需要采取其他措施。

F5 Silverline WAF

F5 Silverline团队已经采取了必要的缓解措施,确保客户的applications免受 Spring4Shell 和相关漏洞的侵害。 F5 Silverline SOC与 F5 威胁研究团队和您(我们的客户)协同持续监控威胁并随时准备采取任何必要的缓解措施,从而扩展您的 AppSec 团队,为您提供全天候服务。 如果您对 F5 Silverline 有任何疑问,请联系support@f5silverline.com团队。

威胁堆栈

Threat Stack 最近被 F5 收购,提供检查、检测和报告功能。 Threat Stack 服务包括检测规则,可确定 Spring4Shell 妥协是否值得关注,并可以以 root 身份启动服务或从 shell 运行并升级尝试。 如需了解更多信息,请联系您的 F5 销售代表或访问https://www.threatstack.com

F5 分布式云机器人防御

尝试利用 Spring4Shell 之类的漏洞通常从自动侦察开始。 F5 分布式云机器人防御是您的第一道防线。 它可以阻止自动扫描,增加攻击者试图找出您的组织是否有任何存在 Spring4Shell 漏洞的 Web 应用程序的难度。 F5 分布式云服务紧跟僵尸网络攻击者不断发展的策略,可以实时应对由机器人驱动的自动攻击。

BIG-IP SSL Orchestrator

由于 Spring 库被用于绝大多数基于 Java 的applications中,因此对于像您这样的组织来说,确定漏洞的全部范围及其引发的潜在攻击将是一个挑战。 更新所有受影响的applications可能还需要一些时间,前提是您能够找到它们所有。 这可能会使您的应用程序和组织变得脆弱和易被利用。 F5 SSL Orchestrator使加密流量可见,从而阻止加密威胁。 它可以解密穿过您的网络的流量,甚至服务器流量,并自动将流量路由到您可以根据安全堆栈中的解决方案定义的安全链。 SSL Orchestrator 不仅可以解决加密威胁,还可以阻止加密恶意流量,例如发往命令和控制 (C2 ) 服务器。 SSL Orchestrator 不仅可以缓解 CVE-2022-22965,还可以防止未来的漏洞和攻击。

F5 将帮助您及时了解有关 Spring4Shell ( CVE-2022-22965 ) 和相关漏洞的最新信息,以及 F5 如何防御和减轻任何进一步的漏洞攻击。

随着新信息的出现,我们将更新此博客。 如需进一步了解背景信息,您可以访问以下资源:

备注: Spring Framework (Spring4Shell) 和 Spring Cloud 漏洞 CVE-2022-22965、CVE-2022-22950 和 CVE-2022-22963

K24912123: 使用 BIG-IP 系统缓解 Spring Framework (Spring4Shell) 和 Spring Cloud 漏洞