Gradle Wrapper 攻击报告

在 2023 年 1 月 11 日,我们收到来自 MinecraftOnline 的联系,关于在他们的一些代码仓库中发现的两个不寻常且可疑的 Gradle wrapper JAR 文件。这些 wrapper 由一位新的 MinecraftOnline 贡献者更新。

我们对这些 JAR 文件进行了分析,并将于下文描述我们的发现。我们已确定其中一个漏洞被专门设计为针对 MinecraftOnline 项目的攻击。

如果您对所有细节不感兴趣,请立即跳转到我们的配套博客,了解如何保护您的项目或您作为开发者免受类似攻击。

分析

我们的分析始于确认这两个 JAR 文件的 SHA256 校验和与任何 已知的良好 Gradle Wrapper 校验和都不匹配

保护项目完整性

我们最近的安全报告表明,野外存在通过 Gradle Wrapper 针对构建过程的供应链攻击。这篇博文解释了如何保护您的项目或您作为开发者免受类似攻击。

根据设计,构建过程会执行代码。构建过程的各个组件都带有其自身的风险

  1. 用于运行构建工具的引导脚本可能被篡改。(请参阅如何确保 Gradle wrapper 完整性?
  2. 构建工具本身可能被篡改。(请参阅如何确保 Gradle 发行版完整性?
  3. 构建工具可能会下载本身已受损的第三方依赖项。(请参阅如何确保第三方依赖项的完整性?
  4. 恶意代码可能隐藏在项目代码中,...

    ❯ 阅读更多

插件门户潜在数据泄露

2022 年 8 月 16 日,Gradle 插件门户和 Gradle Discourse 论坛受到安全事件的影响,这可能导致部分 Gradle 社区成员的个人数据泄露。

托管在 gradle.orggradle.com 或其他地方的其他服务未受影响。

发生了什么?

一个 Amazon Web Services 密钥在一个 Git 提交中被泄露,该密钥授予对数据库备份的访问权限,其中包含一部分 Gradle 插件门户和 Discourse 论坛用户的个人信息。该密钥在被撤销前暴露了两个小时。

我们认为这次泄露不太可能导致对数据的未授权访问,但出于谨慎和透明度,我们正在采取行动并通知受影响的个人。

什么...

❯ 阅读更多

处理 Log4j 关键漏洞

流行的 Apache Log4j 日志记录库中发现了一个关键的远程代码执行 (RCE) 漏洞,该漏洞影响 2.0 至 2.14.1 版本(包括)。此漏洞影响了大量基于 JVM 的系统。有关漏洞本身的更多信息,请参阅 CVE-2021-44228

更新(2021 年 12 月 22 日):自第一篇文章以来,又发现了两个其他漏洞 - CVE-2021-45046CVE-2021-45105 - 因此请务必查看不同部分以获取更新的说明。

此漏洞正在被积极利用。所有 Gradle 用户都应评估其软件项目是否容易受到攻击,如有必要,尽快更新到Log4j 2.17.0 或更高版本。我们已在下方提供了说明,说明如何识别和...

❯ 阅读更多

插件门户安全漏洞 CVE-2020-7599

发布插件到插件门户时的重要更新

我们在 2020 年 3 月 4 日收到报告称存在安全漏洞。如果授权人员有权访问发布插件的构建日志,则此问题可能允许其覆盖插件门户上的插件工件。经过彻底调查,我们发现没有工件被恶意目的覆盖。

作为回应,我们发布了新版本的 com.gradle.plugin-publish 插件,其中包含缓解此安全漏洞的更新。

请升级 com.gradle.plugin-publish 插件0.11.0 版本。com.gradle.plugin-publish 插件的旧版本将不再工作。如果您不发布插件到 插件门户,您不需要...

❯ 阅读更多

使用 GitHub Actions 验证 Gradle Wrapper

Pull Request Status Check with new 'Validate Gradle Wrapper / Validation' successful status

我们很自豪地宣布发布新的 Gradle Wrapper 验证 GitHub Action

开源中的 Gradle Wrapper

gradle-wrapper.jar 是一个可执行代码的二进制 blob,几乎被检入 280 万个 GitHub 代码仓库

在 GitHub 上搜索,您可以找到许多标题有用的拉取请求 (PR),例如“更新到 Gradle xxx”。这些 PR 中有很多是由维护项目组织之外的个人贡献的。

维护者感谢这些类型的贡献,因为它从他们的积压工作中移除了一项内容。但是,接受 Gradle Wrapper 的更改存在安全隐患...

❯ 阅读更多

停用 Gradle 服务的 HTTP

从 2020 年 1 月开始,Gradle 服务将仅处理使用 HTTPS 发出的请求。从那时起,所有使用 HTTP 发出的请求将被拒绝,任何使用非安全 HTTP 协议的 Gradle URL 的构建和工件镜像都将失败。

如果您通过您自己的工件服务器(如 Artifactory 或 Nexus)代理我们的服务,您需要确保更新您的镜像配置,以便它们使用 HTTPS 而不是 HTTP。

Gradle 服务

此更改将影响以下服务。

插件门户

默认情况下,Gradle 构建工具在从插件门户解析插件时使用 HTTPS。如果您不声明自定义插件仓库,您应该不会受到影响。

如果您的组织...

❯ 阅读更多