GitHub藏在明处的10大媒介:你忽视了吗?

GitHub已经从最初的代码托管工具,成长为现代软件开发的核心平台。然而,当企业忙于扫描 npm、PyPI等官方依赖库时,却往往忽视了一个更普遍、更隐蔽的风险:贯穿整个软件开发生命周期的GitHub代码引用

正是这些“隐藏在明处”的媒介,成为高级攻击者发动供应链攻击的突破口。tj-actions GitHub Action与XZ Utils的事件,就是活生生的例子。

OX Security 的研究指出:从编码到上线,每一个GitHub引用都是潜在攻击入口。以下是最容易被忽视的10大媒介

1.依赖管理:直接引用GitHub仓库

  • 媒介:npm、pip、Maven等允许直接拉取GitHub仓库,而不是官方注册库。

  • 隐患:使用可变分支(如 main),导致构建不可预测;仓库被劫持后风险更大。

  • 数据:分析发现超过11万个package-lock.json文件等直接引用GitHub。

2.容器构建:镜像创建时注入代码

媒介:Dockerfile中git clone或ADD/COPY GitHub链接。

隐患:缓存机制可能复用被篡改的远程仓库。

现实:被植入的工具脚本可窃取容器环境变量。

3.Kubernetes部署:Helm chart & Manifests

媒介:Helm chart或init容器从GitHub拉取脚本/配置。

隐患:缺乏校验的动态拉取可能让攻击者拿到集群权限。

4.配置管理:自动化工具引用GitHub

  • 媒介:Ansible、SaltStack、Grafana 等直接拉GitHub配置。

  • 隐患:被篡改的配置可转移日志、引发拒绝服务,甚至执行恶意命令。

5.CI/CD自动化:GitHubActions&工作流

  • 媒介:超过56万个工作流使用外部Action,另有16万+直接git clone。

  • 隐患:如果使用@main这种可变标签,攻击者可在执行时窃取机密或篡改产物。

6.代码组织:Git Submodules&Subtrees

  • 媒介:14,000+子模块、2,000+子树命令引用GitHub。

  • 隐患:仓库被接管后,git submodule update等操作可能引入恶意代码。

7.基础设施即代码Terraform&IaC模块

  • 媒介:Terraform模块直接引用 GitHub(11万+文件)。

  • 隐患:篡改模块可创建攻击者控制的云资源、暴露机密或植入后门脚本。

8.构建与插件:GradleRedis 

  • 媒介:Gradle插件或Redis插件直接从 GitHub 加载。

  • 隐患:缺少官方审核,合并恶意插件就可能在构建时泄露敏感信息。

9.开发流程:预提交&安装钩子

  • 媒介:7,000+ Git hook 文件和 6.5万npm包的 pre/post install 脚本。

  • 隐患:一旦被篡改,安装依赖时就能窃取凭证或植入恶意软件。

10.跨仓库触发:Webhooks&集成

  • 媒介:5.6万个workflow监听repository_dispatch事件。

  • 隐患:若攻击者获取token,可伪造事件触发恶意工作流。

我们该如何自保?

GitHub的风险并不意味着要放弃它,而是需要:

1) 全盘清点:识别所有生命周期中的GitHub引用。

2) 固定版本:统一采用不可变的commit hash,而不是main。

3) 完整性校验:对外部资源启用签名验证。

4) 内部替代:为常用依赖建立安全的内部镜像或仓库。

5) 预置安全基建:为开发者提前准备可验证、可信赖的工具与配置。

✍️结语

GitHub的开放与灵活是软件创新的核心动力,但也带来了巨大的供应链风险。正如研究所说:看见媒介,才能管控媒介。忽视这10个“隐藏在明处”的攻击面,只会让企业在未来的供应链攻击中更加脆弱。


* 本文为闫志坤编译,原文地址:https://www.darkreading.com/cyberattacks-data-breaches/10-github-risk-vectors
注:图片均来源于网络,无法联系到版权持有者。如有侵权,请与后台联系,做删除处理。

文章来源:数世咨询

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容