使用JFrog平台的SpringShell (Spring4Shell)修复食谱

SpringShell / Spring4Shell CVE-2022-22965修复食谱与JFrog平台

spring-web包中的一个新的零日漏洞“SpringShell”(昵称为“Spring4Shell”)刚刚被泄露,并威胁着互联网和社区。JFrog安全研究团队正在调查该漏洞,并不断更新我们的博客文章,提供技术细节SpringShell (Spring4Shell)漏洞

在这篇技术博客文章中,我们将解释如何使用JFrog平台来检测、阻止和修复SpringShell漏洞,以保护您的组织。

你需要知道的

正如发现零日漏洞时经常发生的那样,开发人员社区面临着漫长的晚上和周末时间来追踪它,有许多令人焦虑的问题。但是JFrog平台的用户最需要知道这两件事:

JFrog产hth华体会最新官方网站品不受影响

我们的平台解决方案,包括Artifactory, Xray, Pipelines和Distribution,都不受SpringShell漏洞CVE-2022-22965或Spring Cloud Function CVE-2022-22963的影响。

你可能会问:我们怎么能这么快、这么肯定地确定这一点?出于同样的原因,作为JFrog的客户,您也可以为您自己的软件项目这样做——因为Artifactory和Xray是我们关键任务软件开发生命周期(SDLC)的核心部分。

有了JFrog,你的周末就安全了

作为JFrog平台的用户,你已经有了你需要的工具来快速修复SpringShell漏洞——或任何其他您尚未遇到的零日安全问题。您的累积包、二进制文件、映像和元数据在Artifactory的二进制存储库管理,你已经拥有了节省周末所需的一切。

“生成一份报告,找出哪些应用存在漏洞,这是最简单的事情。log4j依赖,解决它,我们就可以开始了。”
- DevOps服务负责人,Bendigo和Adelaide Bank

我们将解释如何使用JFrog平台快速保护您的组织。您将学习如何:

  • 找到-使用Artifactory的构建信息元数据和x射线deep-binary扫描发现每一个在SDLC的所有阶段,使用包含SpringShell漏洞的包(包括可传递依赖项)。
  • 修复-一旦您的jfrog平台解决方案识别出使用易受攻击包的应用程序,开发人员可以更新源代码以使用更安全的更新版本并生成新版本。
  • 巩固-使用x射线阻止任何使用易受攻击包版本的进一步构建,以及任何已经在管道中的易受攻击构建的生产版本的推广。或者使用人工排除模式进行更有限的阻塞。


查找所有使用SpringShell (Spring4Shell)的漏洞包

使用JFrog Artifactory来管理所有的二进制文件和JFrog x光对于这些二进制文件的自动漏洞扫描,您可以快速确定SpringShell漏洞在软件供应链中的位置,并在整个SDLC中实施安全措施。

根据您安装的JFrog平台解决方案集并将其作为SDLC的常规部分使用,您可以使用这些方法来快速确定软件供应链中存在SpringShell漏洞的位置,并在整个SDLC中实施安全措施。

  • 使用人工和x光(所有保险的最佳方法)
    • 使用Xray报告来跟踪Repos/Builds/Release Bundles/ watch中的所有SpringBoot包
    • 使用x射线违规窗格过滤易受攻击的监控资源2022世界杯阿根廷预选赛赛程
    • 使用Xray手表在试图下载易受攻击的SpringBoot包时发出警告
  • 只使用人工(内部覆盖的好方法)
    • 使用Artifactory搜索功能查找SpringBoot库的所有存储库和名称空间
    • 使用人工构建信息(软件物料清单- SBOM)

使用x射线找到Spring4shell使用人工和x光(所有保险的最佳方法)

JFrog Xray的深度递归扫描提供了最全面的二进制文件分析。在第三方包或工件中包含可传递的依赖项比如Uber jar或来自DockerHub等公共存储库的基本Docker映像。使用Xray,您可以确保在任何或所有的repos、构建或发布包中捕捉到对SpringShell等严重脆弱包的每次使用。

你知道吗?
Xray包含在所有JFrog Cloud订阅中,包括免费帐户。对于本地或云中自我管理的安装,您可以这样做 安装x射线的免费试用版 只要5分钟。
试试x光

以下是使用x射线的方法:

使用Xray报告跟踪Repos、build和Release Bundles中的所有spring-web构件

假设:
  • 安装了带有x射线的人工制品
  • 工件所需的范围是索引(确保“重新索引”,以便已经存在的二进制文件将被扫描):
    • 存储库—对相关存储库进行索引
    • 构建CI系统与Artifactory集成,为构建上传“Build-info”。
    • 发布包—发布包用于将二进制文件分发到生产环境。
步骤:

1.去安全与合规性>报告

工件与x射线安全性和合规性报告

2.创建具有您想要发现的范围的新报告

Spring4shell报告在x射线

3.选择相关资源后,添加2022世界杯阿根廷预选赛赛程cve - 2022 - 22965作为标准

Spring4Shell报告- CVE-2022-22965为标准

这些准则将有助于生成各种格式的报告,例如以下示例:

Spring4shell生成的报告

您可以稍后导出为PDF / CSV / JSON格式:

漏洞报告Spring4Shell

使用x射线违规窗格过滤易受攻击的监控资源2022世界杯阿根廷预选赛赛程

假设:
  • 安装了带有x射线的人工制品
  • Watch正在监视您想要过滤的资源,以及2022世界杯阿根廷预选赛赛程cve - 2022 - 22965引发违规行为
步骤:

1.转到一个已经存在的手表,点击“过滤器”图标。

更新现有的弹壳手表

2.过滤特定的cve - 2022 - 22965的相关设置,例如自定义时间任何构建,任何发布包

筛选Spring4Shell手表的特定CVE-2022-22965

用x光手表发出警报试图…下载易受攻击的spring-web工件

使用x射线政策和手表,您可以在尝试下载易受攻击的spring-web构件时发出警告(并阻止)。我们建议在违规时,webhook会向专用通道(如Slack)向您的安全团队发出警报

假设:
  • 安装了带有x射线的人工制品
  • 相关的Maven和Gradle存储库被标记为启用了“x射线索引”。
步骤:

1.创建一个x射线策略,用最低严重程度的标准“关键”来定义违规行为。

创建SprigShell x射线策略

2.创建与上述策略关联的监视

3.将其应用于“所有存储库”与一个过滤器只包括弹簧网工件名称(spring web -。* jar).

筛选只包括spring-web工件名称

4.在新手表上运行带有相关时间框架的“应用于现有内容”,以触发spring-web上的违规行为。

x光手表触发弹簧网违规

使用Artifactory查找所有Spring4Shell易受攻击包的使用只使用人工(内部覆盖的好方法)

为您的应用程序制作软件材料清单(SBOM),我们希望您已经这样做了通过JFrog CLI发布构建信息元数据或者在你的管道CI/CD自动化。这是最重要的最佳开发运维实践由JFrog平台支持,使您的所有构建都可以完全追溯到它们的所有组件源。

有了这些关于二进制文件的数据,您就可以在所有构建中搜索易受攻击的SpringShell包。通过Artifactory丰富的搜索功能,您还可以缩小搜索范围,以最直接相关的构建为目标,使您能够集中精力,并将注意力集中在需要紧急关注的内容上。

然而,这种好处是累积的只对您通过CI进行的构建进行处理。因此,在Artifactory中单独使用build-info将无法覆盖SpringShell已经打包到另一个包/工件(如Uber jar、基础docker映像等)中的情况。只有Xray可以扫描这些第三方二进制文件,并为您提供完整的覆盖范围,以及在将来持续监控下载和使用这个易受攻击的工件。

使用Artifactory搜索来查找所有“spring-web”工件和所有相关的构建

您可以在所有Artifactory存储库中搜索,以发现包、工件和构建被使用的位置。

假设:
  • 人工安装
步骤:

使用Artifactory中的搜索栏查找缓存在Artifactory远程存储库中的spring-web构件,以及它们在本地存储库中的位置。

使用Artifactory中的搜索栏查找spring-web工件

使用人工构建信息(软件物料清单- SBOM)

JFrog人工CLI和CI插件都可以存储build-info,与Artifactory构建相关联的元数据。当您遵循JFrog最佳实践并在Artifactory实例中存储构建信息时,您可以搜索Artifactory存储库,以列出所有使用spring-web库作为依赖项的构建。

假设:
  • 人工安装
  • CI服务器与Artifactory集成并发布build-info
步骤(通过JFrog平台UI):

1.按照“使用人工搜索来查找spring-web库的所有存储库和名称空间。

2.对于spring-web工件的每个易受攻击的版本,检查“use by”选项卡。

对于spring-web工件的每个易受攻击的版本,检查“use by”选项卡

步骤(通过人工REST API)

另一种方法是使用在构建中搜索校验和的人工API(每个spring-web工件都有不同的校验和):



修复你的构建

一旦您知道哪些工件、构建和发布包是易受攻击的,您的开发团队就可以更新他们的源代码,并生成新的、修复的构建和发布包。

Spring发布了Spring Framework RCE响应,并在它可用时继续使用新信息更新它,包括修复和解决方案。

JFrog安全研究团队也在进行调查,并提供了一个SpringShell的技术说明。随着调查的继续,我们将更新建议的补救和缓解措施。


加强阻止使用脆弱的弹簧网工件

使用x射线策略阻止下载易受攻击的spring-web工件的尝试使用x射线策略进行阻挡尝试下载易受攻击的工件

使用x射线政策和手表,您可以在尝试下载易受攻击的spring-web工件时发出警报(并阻止)。

假设:
  • 安装了带有x射线的人工制品
  • 相关的本地和远程Maven和Gradle存储库被标记为启用了“x射线索引”。
步骤:

与“使用x射线手表在尝试下载易受攻击的弹簧网工件时发出警报”相同,设置“阻止下载”标志

“x射线块下载”标志集

配置远程存储库上的人工排除模式配置远程存储库上的人工排除模式

假设:
  • 人工安装
  • 请注意这被认为是部分覆盖,因为你可以找到与这个包的关联,但它不包括包已经打包到另一个包/工件(如Uber jar、base docker映像等)的情况。只有Xray可以扫描二进制文件,并为您提供完整的覆盖范围,包括持续监控是否有一个开发人员将在不久的将来上传或使用该工件
步骤:

配置一个排除规则,对库的“*jar”文件进行选择,以防止它被Maven和Gradle存储库解析。(有关更多信息,请参见这篇博文。)

这将导致开发人员无法访问基础jar以进行依赖项解析,这是防止使用受影响代码的好方法。


适合每个人的东西

正如您所看到的,JFrog平台的成千上万的客户,无论是在云中还是在本地,都有现成的方法找到修复,巩固他们的整个软件供应链都受到了SpringShell漏洞的影响。的最佳实践DevSecOps通过丰富的二进制文件管理,SBOMs, Artifactory和Xray支持的SCA正在帮助许多人节省周末和假期。

不使用JFrog平台?嗯,你可能得重新考虑你的周末计划了。

但别着急,我们还在这里帮忙!JFrog安全研究团队刚刚发布了一个开源软件scan_spring工具可以用来扫描任何编译代码(不只是在Artifactory中),并验证使漏洞可利用的Spring端点是否存在于代码库中。