通过给开源项目提交 PR 然后触发 CI 流程的方式获取敏感信息

开源项目的使用越来越广泛,各大公司和个人也积极的参与和开发了不同的开源项目。 同时开源项目的安全问题也越来越受到广泛的关注,其中即有开源项目代码方面的安全问题, 也有开源项目使用的第三方服务、开发流程导致的安全问题。

这篇文章介绍的是 CI 流程中可能会出现的安全问题:攻击者可以通过给开源项目提交 PR 的方式获取项目开发流程中涉及的 CI 系统中的敏感信息。

整个流程如下:

  1. 攻击者 fork 目标开源项目仓库,修改仓库代码增加可以获取 CI 环境中敏感信息代码或者可以在 CI 环境中运行恶意脚本和软件的代码
  2. 然后工具者将修改后的代码通过 Pull Request 的方式提交到上游项目中(不需要合并代码)
  3. 一般上游项目在 PR 提交时都会触发项目中设置的 CI 流程,此时 CI 流程中就会运行攻击者修改好的恶意代码
  4. 如果 CI 环境设置不当或者 CI 服务有安全隐患的话,攻击者就可以通过 CI job 窃取环境中的敏感信息(比如密码、token、ak、证书等信息)、 入侵整个 CI job 所在节点、整个 CI 服务甚至整个公司所有资产。

相关案例可以阅读参考资料中最近爆出的几个安全事项。


Comments