Gradle Wrapper 攻击报告

2023 年 1 月 11 日,MinecraftOnline 联系我们,告知他们在一些存储库中发现了两个不寻常且可疑的 Gradle Wrapper JAR 文件。这些包装器是由 MinecraftOnline 的一位新贡献者更新的。

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

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

分析

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

保护项目完整性

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

构建过程,按设计,执行代码。构建过程的组件都带有自己的风险。

  1. 运行构建工具的引导脚本可能已被破坏。(参见 如何确保 Gradle 包装器完整性?
  2. 构建工具本身可能已被破坏。(参见 如何确保 Gradle 发行版完整性?
  3. 构建工具可能下载了本身已被破坏的第三方依赖项。(参见 如何确保第三方依赖项的完整性?
  4. 恶意代码可能隐藏在项目代码中,...

    ❯ 阅读更多

插件门户潜在数据泄露

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

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

发生了什么?

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

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

什么...

❯ 阅读更多

处理关键的 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 包装器

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 协议的请求将被拒绝,任何使用 Gradle URL(非安全 HTTP 协议)进行构建和工件镜像的请求都将失败。

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

Gradle 服务

此更改将影响以下服务。

插件门户

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

如果您的组织...

❯ 阅读更多