Web 应用程序漏洞测试 公司VulnCheck 的一项新研究发现, GitHub上 有超过 15,000 个Go模块存储库容易受到存储库劫持或“RepoJacking”攻击。
这种类型的攻击允许黑客恶意利用其合法所有者执行的名称更改或完全删除 GitHub 帐户。为此,攻击者创建一个与旧存储库同名的全新存储库,然后利用其与软件供应链其他部分的连接来分发恶意代码。
据 VulnCheck 称,已在超过 15,000 个 Go 模块存储库中发现了此类攻击的漏洞。“由于 GitHub 用户名更改,超过 9,000 个存储库容易受到攻击。另有 6,000 多个账户因账户删除而被删除,”该公司首席技术官 Jacob Baines 对结果评论道。
这些存储库总共包含至少 80 万个版本的 Go 模块,供世界各地的开发人员使用。因此,即使捕获这些存储库的一部分,也可能对许多软件产品的网络安全造成严重后果。
用 Go 编程语言编写的模块构成了特殊的威胁。与npm或PyPI等具有集中存储库的其他解决方案不同,Go 模块是在 GitHub 或Bitbucket等平台上分散发布的。
“任何人都可以指示 Go 模块镜像和 pkg.go.dev 绕过存储库来缓存模块详细信息,”Baines 指出。因此,攻击者只需要捕获旧用户的名称和流行存储库的名称,而无需直接与 GitHub 交互。
GitHub 正试图通过阻止使用先前删除的流行名称创建存储库来对抗此类攻击。但这对于 Go 模块来说并不有效,这些模块是绕过主存储库进行缓存的。
“不幸的是,缓解所有这些潜在的存储库接管对于 Go 或 GitHub 公司来说是一个挑战。第三方无法合理注册 15,000 个安全账户,”Baines 表示。他鼓励 Go 开发人员保持警惕并仔细监控他们使用的模块和存储库的状态。
因此,存储库劫持攻击的威胁对于 GitHub 生态系统来说非常严重,可能对整个网络安全造成重大损害。GitHub 和 Go 应迅速制定有效的对策来保护模块和存储库免受此类攻击。
转自安全客,原文链接:https://www.anquanke.com/post/id/291683
封面来源于网络,如有侵权请联系删除