GitHub供应链攻击事件:Coinbase遭袭,218个仓库暴露,CI/CD密钥泄露

image

此次供应链攻击涉及GitHub Action "tj-actions/changed-files",最初是针对Coinbase的一个开源项目的高度定向攻击,随后演变为范围更广的威胁。

攻击过程与影响

Palo Alto Networks Unit 42在一份报告中指出:“攻击载荷主要针对其开源项目agentkit的公共CI/CD流程,可能是为了利用它进行进一步的攻击。然而,攻击者未能使用Coinbase的密钥或发布软件包。”

该事件于2025年3月14日曝光,当时发现"tj-actions/changed-files"被入侵,注入了泄露运行该工作流的仓库中敏感密钥的代码。该漏洞被分配了CVE标识符CVE-2025-30066(CVSS评分:8.6)。

根据Endor Labs的估计,218个GitHub仓库因这次供应链攻击暴露了其密钥,泄露的信息主要包括DockerHub、npm和亚马逊云服务(AWS)的“几十个”凭证,以及GitHub安装访问令牌。

安全研究员Henrik Plate表示:“考虑到成千上万的仓库依赖于这个GitHub Action,供应链攻击的初始规模听起来很可怕。然而,深入分析工作流、运行情况和泄露的密钥后,发现实际影响比预期的要小:‘仅’218个仓库泄露了密钥,其中大多数是短期的GITHUB_TOKEN,一旦工作流运行完成就会过期。”

攻击手段与后续发展

此后,另一个名为"reviewdog/action-setup"的GitHub Action的v1标签也被入侵,该标签通过"tj-actions/eslint-changed-files"作为依赖项被"tj-actions/changed-files"使用,其攻击载荷与tj-actions事件类似。"reviewdog/action-setup"的漏洞被追踪为CVE-2025-30154(CVSS评分:8.6)。

据称,CVE-2025-30154的利用使未识别的威胁行为者获得了与"tj-actions/changed-files"相关的个人访问令牌(PAT),从而允许他们修改仓库并推送恶意代码,进而影响了所有依赖该Action的GitHub仓库。

Unit 42的研究人员Omer Gil、Aviad Hahami、Asi Greenholts和Yaron Avital表示:“当执行tj-actions/eslint-changed-files Action时,tj-actions/changed-files CI运行器的密钥被泄露,攻击者得以窃取运行器中使用的凭证,包括属于tj-bot-actions GitHub用户账户的个人访问令牌(PAT)。”

目前怀疑攻击者设法获得了对reviewdog组织具有写权限的令牌,以进行恶意修改。然而,该令牌的获取方式目前仍不清楚。

此外,对"reviewdog/action-setup"的恶意提交据称是通过首先分叉相应仓库,提交更改,然后创建分叉拉取请求到原始仓库,最终引入任意提交——这种情况被称为“悬空提交”。

Palo Alto Networks的高级研究经理Gil告诉The Hacker News:“攻击者采取了多种技术手段来掩盖其踪迹,例如利用悬空提交、创建多个临时GitHub用户账户,以及在工作流日志中混淆其活动(尤其是在最初的Coinbase攻击中)。这些发现表明,攻击者技术高超,对CI/CD安全威胁和攻击策略有深刻理解。”

Unit 42推测,分叉拉取请求背后的用户账户"iLrmKCu86tjwp8"可能在攻击者从注册时提供的合法电子邮件地址切换到一次性(或匿名)电子邮件后从公众视野中隐藏,这可能导致该用户的所有交互和操作被隐藏。然而,GitHub在回应时既未确认也未否认这一假设,但表示正在积极审查情况并采取必要措施。

GitHub发言人告诉The Hacker News:“目前没有证据表明GitHub或其系统遭到入侵。所提及的项目是用户维护的开源项目。”

image

“GitHub继续根据GitHub的可接受使用政策审查并处理与仓库内容相关的用户报告,包括恶意软件和其他恶意攻击。用户应始终在更新到新版本之前审查GitHub Actions或他们代码中使用的任何其他包。这一点在这里与所有其他使用第三方代码的情况一样。”

对tj-actions/changed-files的GitHub分叉的深入搜索发现了另外两个账户"2ft2dKo28UazTZ"和"mmvojwip",这两个账户此后已从平台上删除。这两个账户还被发现创建了与Coinbase相关的仓库的分叉,如onchainkit、agentkit和x402。

进一步检查发现,这些账户通过分叉拉取请求修改了agentkit仓库中的"changelog.yml"文件,指向之前使用PAT发布的恶意版本的"tj-actions/changed-files"。

据信,攻击者获得了对agentkit仓库具有写权限的GitHub令牌——这反过来是由执行tj-actions/changed-files GitHub Actions促成的——以便进行未经授权的更改。

攻击者的策略与动机

另一个值得强调的重要方面是两种情况下使用的攻击载荷的差异,表明攻击者试图保持低调。

Gil表示:“攻击者在攻击的不同阶段使用了不同的攻击载荷。例如,在大规模攻击中,攻击者转储了运行器的内存,并将存储为环境变量的密钥打印到工作流的日志中,无论哪个工作流正在运行。然而,在针对Coinbase时,攻击者专门获取了GITHUB_TOKEN,并确保只有在仓库属于Coinbase时才会执行攻击载荷。”

目前尚不清楚此次攻击的最终目标是什么,但Gil指出,“强烈”怀疑其意图是经济利益,可能是试图进行加密货币盗窃,考虑到对Coinbase的高度针对性。截至2025年3月19日,该加密货币交易所已修复了攻击。

目前也不清楚是什么促使攻击者改变策略,将最初的有针对性的攻击转变为大规模且不那么隐秘的行动。

Gil表示:“一种假设是,在意识到他们无法利用其令牌毒害Coinbase仓库——并得知Coinbase已检测并缓解了攻击后——攻击者担心失去对tj-actions/changed-files Action的访问权限。由于入侵此Action可能提供对许多其他项目的访问权限,他们可能决定迅速采取行动。这可以解释为什么他们在Coinbase缓解其暴露后仅20分钟就发起了大规模攻击,尽管检测风险增加。”

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

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

相关文章

transform

http://zhihu.com/question/445556653/answer/3254012065 西科技的文章 视频讲解 小白也能听懂的 transformer模型原理详解 self- attention 多头注意力机制 encoder decoder 机器翻译_哔哩哔哩_bilibili

Spring Boot 整合 Nacos 注册中心终极指南

在微服务架构中,配置管理和动态路由是核心需求。Nacos 作为阿里巴巴开源的动态服务发现、配置管理和服务管理平台,能够帮助开发者实现配置热更新、多环境共享配置以及动态路由管理。本文将结合 Spring Boot 和 Spring Cloud Gateway,手把手教…

网络基础梳理

为什么要有网络呢? 在一开始科学家们都是自己在计算机当中做实验但是难免需要共同进行科研。假设现在一个业务需要三个人共同完成,那么现在就有问题了: 由于第一个人完成工作前,其他两人无法开始,这导致工作流程是串行…

EMS小车技术特点与优势:高效灵活的自动化输送解决方案

北成新控伺服技术丨EMS小车调试视频 EMS小车是一种基于单轨运行的电动输送系统,通过电力驱动实现物料的高效搬运和输送,具有高效灵活、节能环保、多功能集成、行业适配性强等特性,广泛应用于汽车制造、工程机械、家电生产、仓储物流等行业自动…

Python实现deepseek接口的调用

简介:DeepSeek 是一个强大的大语言模型,提供 API 接口供开发者调用。在 Python 中,可以使用 requests 或 httpx 库向 DeepSeek API 发送请求,实现文本生成、代码补全,知识问答等功能。本文将介绍如何在 Python 中调用 …

2025清华大学:DeepSeek教程全集(PDF+视频精讲,共10份).zip

一、资料列表 第一课:Deepseek基础入门 第二课:DeepSeek赋能职场 第三课:普通人如何抓住DeepSeek红利 第四课:让科研像聊天一样简单 第五课:DeepSeek与AI幻觉 第六课:基于DeepSeek的AI音乐词曲的创造法 第…

“智改数转”新风口,物联网如何重构制造业竞争力?

一、政策背景 为深化制造业智能化改造、数字化转型、网络化联接,江苏省制定了《江苏省深化制造业智能化改造数字化转型网络化联接三年行动计划(2025-2027年)》,提出到2027年,全省制造业企业设备更新、工艺…

OpenHarmony 入门——ArkUI 跨页面数据同步和页面级UI状态存储LocalStorage小结(二)

文章大纲 引言一、在代码逻辑使用LocalStorage二、从UI内部使用LocalStorage三、LocalStorageProp和LocalStorage单向同步四、LocalStorageLink和LocalStorage双向同步五、兄弟组件之间同步状态变量七、将LocalStorage实例从UIAbility共享到一个或多个视图 引言 前面一篇文章主…

干货分享|DeepSeek技术革命、算力范式重构与场景落地洞察

本文为TsingtaoAI公司负责人汶生为某证券公司管理层和投资者教授的《DeepSeek技术革命、算力范式重构与场景落地洞察》主题培训内容,此次主题培训系统阐述了当前AI技术演进的核心趋势、算力需求的结构性变革,以及行业应用落地的关键路径。 现在我们将全…

从切图仔到鸿蒙开发01-文本样式

从切图仔到鸿蒙开发01-文本样式 本系列教程适合 HarmonyOS 初学者,为那些熟悉用 HTML 与 CSS 语法的 Web 前端开发者准备的。 本系列教程会将 HTML/CSS 代码片段替换为等价的 HarmonyOS/ArkUI 代码。 页面结构 HTML 与 ArkUI 在 Web 开发中,HTML 文档结…

零基础入门网络爬虫第5天:Scrapy框架

4周 Srapy爬虫框架 不是一个简单的函数功能库,而是一个爬虫框架 安装:pip install scrapy 检测:scrapy -h Scrapy爬虫框架结构 爬虫框架 爬虫框架是实现爬虫功能的一个软件结构和功能组件集合爬虫框架是一个半成品,能够帮助…

C语言:扫雷

在编程的世界里,扫雷游戏是一个经典的实践项目。它不仅能帮助我们巩固编程知识,还能锻炼逻辑思维和解决问题的能力。今天,就让我们一起用 C 语言来实现这个有趣的游戏,并且通过图文并茂的方式,让每一步都清晰易懂 1. 游…

同一个局域网的话 如何访问另一台电脑的ip

在局域网内访问另一台电脑,可以通过以下几种常见的方法来实现: ‌直接通过IP地址访问‌: 首先,确保两台电脑都连接在同一个局域网内。获取目标电脑的IP地址,这可以通过在目标电脑上打开命令提示符(Windows系…

记录我的ICME2025论文之旅:困顿与收获

人生第一次中B会,还是在课业繁重的大三上(有点说法~) “在最黑暗的时刻,总有一束光为你指引前行。” ——记录这段难忘的历程 今年的ICME投稿量创下新高,录取率却跌至20多%,并且首次加入了rebuttal&#xf…

MySQL多表查询

这是两个表多表查询,需要一个连接条件customer_id。如果有n个表实现多表查询,至少需要n-1个连接条件。如果少于n-1个,就会出现笛卡尔积的错误。 SELECT orders.order_id, customers.customer_name FROM orders INNER JOIN customers ON orde…

vue3 项目的最新eslint9 + prettier 配置

注意:eslint目前升级到9版本了 在 ESLint v9 中,配置文件已经从 .eslintrc 迁移到了 eslint.config.js 配置的方式和之前的方式不太一样了!!!! 详见自己的语雀文档:5、新版eslint9prettier 配…

目标检测20年(三)

对这篇论文感兴趣的小伙伴可以订阅笔者《目标检测》专栏,关注笔者对该文献的阅读和理解。 前两篇解读链接: 目标检测20年(一)-CSDN博客 目标检测20年(二)-CSDN博客 目录 四、 检测器的加速发展 4.1 特…

LLM之RAG实战(五十二)| 如何使用混合搜索优化RAG 检索

在RAG项目中,大模型生成的参考内容(专业术语称为块)来自前一步的检索,检索的内容在很大程度上直接决定了生成的效果,因此检索对于RAG项目至关重要,最常用的检索方法是关键字搜索和语义搜索。本文将分别介绍…

2025-3-24 leetcode刷题情况(动态规划——01背包)

一、416.分割等和子集 1.题目描述 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 2.代码 3.思路 首先进行边界检查,若数组为空则直接返回 false。接着计算数组元素总和&#xff…

Lineageos 22.1(Android 15)实现负一屏

一、前言 方案是参考的这位大佬的,大家可以去付费订阅支持一波。我大概理一下Android15的修改。 大佬的方案代码 二、Android15适配调整 1.bp调整,加入aidl引入,这样make之后就可以索引代码了 filegroup {name: "launcher-src"…