可疑的 GitHub 分支

信息安全 github
2021-08-26 02:23:04

更新(4 月 15 日):分叉的 repo 和用户不再存在。

昨天,我的一个 GitHub 项目被分叉了,并且在 repo 的分叉上有一个可疑的提交。从提交中可以看出,GitHub Actions 配置在服务器上安装 ngrok,启用对 rdp 的防火墙访问,并在服务器上启用 rdp。

有人可以解释潜在的攻击者试图实现的目标以及为什么背后的人不能在他们自己的回购中做同样的事情吗?这是一种新型攻击吗?我该怎么办?

4个回答

这并不是试图让用户安装恶意软件。这是试图在构建服务器上运行恶意软件。他们分叉存储库,安装恶意构建脚本,为分叉创建一个拉取请求 (PR),然后构建将为 PR 运行,它看起来像是来自您的存储库。当 Github 工作人员查看他们的构建服务器为什么要挖掘比特币时,他们会发现这是为您的存储库构建的工作。(但他们可能足够聪明,可以看出它来自恶意 PR)

这一趋势在一周前引起了国际关注。

目标是在构建服务器上挖掘比特币或其他加密货币。

对于某些报告,请参见此处此处此处查看谷歌

这是有效的,因为测试(和整个构建)在合并之前在拉取请求上运行。毕竟,你怎么知道这种改变是否有效?

考虑到媒体的关注,您无需做任何事情。GitHub 意识到了这个问题,并且他们的基础设施被滥用了。他们需要反击垃圾邮件。

您应该报告它,以便 GitHub 可以训练一个工具来自动识别对他们的这种威胁。

正如@user253751 在他的回答中所说,这是一个构建步骤恶意软件攻击,一旦从 fork 到您的 repo 打开 PR,可能会对您使用它,因为 GitHub 可能不喜欢这些攻击与您的存储库相关。

GitHub 上有一个未解决的问题,建议通过指定允许从哪个分支更改 github 工作流文件来修复它。https://github.com/actions/runner/issues/458#issuecomment-707643141

同时,有一个解决方法是在 repo 中有一个自定义应用程序,该应用程序在 check_run.created webhook 事件上运行,以检查最后一个编辑正在运行的工作流文件的人是否是 repo 上的管理员。https://github.com/actions/runner/issues/458#issuecomment-713620965)。可悲的是,在撰写此答案时,不存在官方的 github 解决方案。

这里的问题是他可以欺骗一些用户通过它的链接安装你的应用程序。

例如,想想那些关于如何安装任何软件的教程,这些软件通常包括对 repo 进行 git clone/下载,因为检查你实际安装的内容非常重要。

这是一个关于如何安装 Zsh 的非常好的教程:https ://maxim-danilov.github.io/make-linux-terminal-great-again/

但是,如果您查看该Install Oh My Zsh部分,您可以看到以下命令:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

该命令基本上运行(通过 sh)托管在 Github 中的所有脚本。当然,在这种情况下,来源是可靠的,但并非总是如此。

这就是为什么我们应该仔细检查我们始终安装的内容的原因。