写点什么

GitHub 遭入侵凸显 CI/CD 供应链风险

作者:Matt Foster

  • 2025-05-17
    北京
  • 本文字数:1416 字

    阅读完需:约 5 分钟

大小:686.54K时长:03:54
GitHub 遭入侵凸显 CI/CD 供应链风险

数千个仓库使用的一个热门 GitHub Action 最近遭到入侵,暴露了开源 Action 发布和使用方式中的一个关键漏洞。

 

一位新加入的维护者通过发布一个包含了混淆恶意代码的版本,短暂劫持了 tj-actions/changed-files Action。这引发了开发者社区对 GitHub Actions 生态系统中 CI/CD 安全性的担忧。

 

此次事件让人们注意到了一个新兴的攻击面:Action 本身的供应链。大多数和 Action 相关的指南都侧重于优化工作流环境,很少有团队仔细审查他们导入的 Action 的安全性。这一漏洞让业内人士再次呼吁大家重视最佳实践,如 Action 固定、第三方审计和强化运行器等。

 

很多代码库广泛使用 tj-actions/changed-files Action 来检测拉取请求中的文件更改——这是一些 CI 工作流中的常见步骤。2025 年 3 月,一位新的维护人员引入了一个版本 (v44),其中包含了可由远程代码执行的混淆 shell 命令。虽然该恶意版本存在的时间很短,但它毕竟绕过了检测,暴露出了有大量开发者信任并使用 Gi​​tHub Actions 这一盲点。

 

当用户注意到该动作的新版本包含一个混淆的 curl | bash 模式时,该漏洞才得以曝光——这被认为是远程脚本执行的危险信号。StepSecurity 分析了其中的代码,并确认它可以从 GitHub 托管的运行器中窃取敏感数据。这个恶意版本被迅速移除,代码库也恢复了。该事件让受影响的众多项目开始了广泛的审计,并暂停了工作流。

 

这一 Action 之所以引人注目,不仅是因为它的受欢迎程度——据估计有超过 2 万个代码库使用了它——还因为它暴露了更广泛的生态系统存在的一大弱点。开发者通常将 GitHub Actions 视为值得信赖的构建块,但与软件包或容器不同,Actions 缺乏对发布、所有权变更或签名验证的强大控制力。

 

安全研究人员和开源维护人员迅速分享了各种缓解措施。StepSecurity 建议将所有第三方动作固定到特定的 SHA,以确保可重复性并防止篡改。他们还建议通过限制出站网络访问、严格限定环境变量范围以及减少不必要的权限来强化 GitHub 托管的运行器。此事件还促使一些开发人员采取主动行动——扫描其工作流中未固定的依赖项,并审核其所依赖的工作流。

 

除了一些代码库受到影响外,此次事件重新引发了关于 CI/CD 供应链安全性的更广泛讨论。开发者论坛中出现了担忧,行业研究者也对攻击的潜在影响范围做了更深入的分析。许多团队专注于保护其应用程序代码(包括依赖项扫描和静态分析等实践),而 CI/CD 工具的审查可能较少。GitHub Actions 尤其特别,它们以高权限运行,能够签署发布、推送镜像或部署到生产环境。一个被入侵的动作可能会破坏整个交付流程。虽然 StepSecurity 并未量化使用未固定 Actions 的普遍性,但他们经常强调其使用风险,并建议大家谨慎对待。

 

这次威胁也让人想起了其他生态系统中类似的问题,例如恶意 NPM 包或木马 Docker 镜像。尽管业界正在通过 SLSA、Sigstore 和 SBOM 工具等举措取得进展,但 GitHub Actions 仍然缺乏对可重用 Actions 的溯源、沙盒或信任执行的一流支持。

 

随着对 GitHub Actions 生态系统的审查日益严格,一些工程团队开始规范其评估和采用第三方自动化工具的方式,为可信 Actions 定义内部标准,并在集成动作前进行审核。这种基于护栏的方法,正如 Salesforce 等组织所见,反映了一种更广泛的转变,即将长期以来对应用程序依赖项的谨慎和治理态度用于 CI/CD 基础设施上。它也暗示了这一生态系统的未来发展方向。

 

原文链接:

Compromised GitHub Action Highlights Risks in CI/CD Supply Chains

2025-05-17 08:005

评论

发布
暂无评论

如何赋能APaaS平台应用管理员

明道云

实时大数据Flink知识结构(超全整理,附知识脑图)

大象灵感

大数据 flink spark 实时数仓 流处理

iOS 崩溃日志在线符号化实践

百度Geek说

网络生病了怎么办?看华为云网络测量如何“悬丝诊脉”

华为云开发者联盟

华为云 云网络 网络故障 网络测量 SDN架构

以开发之名 | 美好出行体验,“管家”一站实现

最新动态

Redis核心原理与实践--Redis启动过程源码分析

binecy

redis 源码阅读

网易云音乐音视频算法的 Serverless 探索之路

阿里巴巴中间件

云计算 阿里云 Serverless 云原生 中间件

代码简洁之道:一行Python代码解决问题是时尚还是玄学

博文视点Broadview

2021年10月国产数据库流行度排行解读 浅谈基础软件发展之道

墨天轮

数据库 华为 opengauss Gauss DB 国产数据库

网易云信被纳入 Gartner 2021年《CPaaS 市场指南》研究报告

网易云信

音视频 云通信 Gartner

学习总结(第一周)

Geek_1d37ea

架构实战营

敏捷QA需要编写测试用例吗?

BY林子

测试用例 敏捷测试

华为云网络覆盖全球2500+站点,打造高品质、低成本接入体验

华为云开发者联盟

RTC 华为云 媒体服务 LiveVideoStack

短短 146 天就成为 Apache APISIX Committer,我是怎么做到的?

API7.ai 技术团队

成长笔记 API网关 社区 Apache APISIX

业内首款云原生技术中台产品云原生 Stack 来了!

阿里巴巴云原生

阿里云 云原生 技术中台

【IT运维小知识】安全组是什么意思?

行云管家

网络安全 安全 数据安全 安全组 IT运维

医药研发企业数据中台的选择

鲸品堂

产业互联网

Vue进阶(幺伍叁):Vue-highlight 实现代码高亮

No Silver Bullet

Vue highlight.js 10月月更

引导行业发展!旺链科技加入“可信区块链推进计划”

旺链科技

区块链 数字经济 产业区块链

游戏数字资产复用——有哪些是你需要知道的?

龙智—DevSecOps解决方案

游戏开发 游戏引擎 perforce

Flux架构思想在度咔App中的实践

百度Geek说

百度 架构 后端 短视频 Flux

IOS技术分享| ARCall视频通话重构

anyRTC开发者

ios 音视频 语音通话 视频通话 视频呼叫

这一篇 K8S(Kubernetes)我觉得可以了解一下!!!

牧小农

Docker 容器 kubenetes

Linux指令日志分析(一)

正向成长

日志分析

官方线索 | 阿里云1024程序员创造营

穿过生命散发芬芳

1024我在现场

模块一作业

Geek_1d37ea

OKR与影响地图,别再傻傻分不清

华为云开发者联盟

OKR 敏捷 影响地图 规划 目标

阿里二面:为什么要分库分表?

Java MySQL 数据库 架构 面试

企业级开发工具,J2PaaS低代码平台核心能力解析!

J2PaaS低代码平台

软件开发 低代码 低代码开发 低代码平台

数仓无损压缩算法:gzip算法

华为云开发者联盟

算法 deflate 无损 gzip 压缩数据

只需2步,教你在Vue中设置登录验证拦截

华为云开发者联盟

Vue 浏览器 Token pringboot 登录验证

GitHub 遭入侵凸显 CI/CD 供应链风险_安全_InfoQ精选文章