GitHub 上 15,000 个 Go 模块存储库容易遭受 Repojacking 攻击

2023-12-06 15:37:02 3 2035

GitHub 上 15,000 个 Go 模块存储库容易遭受 Repojacking 攻击



新研究发现 GitHub 上超过 15,000 个 Go 模块存储库容易受到名为 repojacking 的攻击。

VulnCheck 首席技术官 Jacob Baines在与 The Hacker News 分享的一份报告中表示:“由于 GitHub 用户名的更改,超过 9,000 个存储库容易受到重新劫持。” “由于帐户删除,超过 6,000 个存储库容易受到重新劫持。”

这些存储库总共包含不少于 800,000 个 Go 模块版本。

即将举行的网络研讨会
破解密码:了解网络攻击者如何利用人类心理
有没有想过为什么社会工程如此有效?在我们即将举行的网络研讨会中深入探讨网络攻击者的心理。

立即加入
Repojacking是“存储库”和“劫持”的组合,是一种攻击技术,允许不良行为者利用帐户用户名更改和删除来创建具有相同名称和预先存在的用户名的存储库来上演开源软件供应链攻击。

今年 6 月初,云安全公司 Aqua透露,GitHub 上数以百万计的软件存储库可能容易受到威胁,并敦促进行更名的组织确保他们仍然拥有以前的名称作为占位符,以防止此类滥用。

用 Go 编程语言编写的模块特别容易受到重新劫持,因为与 npm 或 PyPI 等其他包管理器解决方案不同,它们是分散的,因为它们发布到 GitHub 或 Bitbucket 等版本控制平台。

“然后任何人都可以指示 Go 模块镜像和 pkg.go.dev 缓存模块的详细信息,”Baines 说。“攻击者可以注册新未使用的用户名,复制模块存储库,并将新模块发布到 proxy.golang.org 和 go.pkg.dev。”

为了防止开发人员拉取潜在不安全的软件包,GitHub 采取了一项名为流行存储库命名空间停用的对策,该措施阻止尝试使用在所有者帐户被重命名或之前已克隆超过 100 次的已停用命名空间的名称来创建存储库。已删除。

但 VulnCheck 指出,这种保护对于 Go 模块没有帮助,因为它们由模块镜像缓存,从而避免了与存储库交互或克隆存储库的需要。换句话说,可能存在流行的基于 Go 的模块存储库,其克隆次数少于 100 次,从而导致某种绕过。

网络安全
“不幸的是,缓解所有这些重新劫持是 Go 或 GitHub 必须承担的事情,”贝恩斯说。“第三方无法合理注册 15,000 个 GitHub 帐户。在此之前,Go 开发人员必须了解他们使用的模块以及这些模块源自的存储库的状态,这一点非常重要。”

Lasso Security 表示,它在 Hugging Face 和 GitHub 上发现了 1,681 个暴露的 API 令牌,其中包括与 Google、Meta、微软和 VMware 相关的令牌,这些令牌可能被用来策划供应链、训练数据中毒和模型盗窃攻击。

关于作者

snowxwx28篇文章104篇回复

评论3次

要评论?请先  登录  或  注册