GitHub 上的1.5万个 Go 模块仓库易受 repojacking 攻击
编译:代码卫士
VulnCheck 公司的首席技术官 Jacob Baines 在一份报告中提到,“由于 GitHub 用户名变更,超过9000个仓库易受 repojacking 攻击。超过6000个仓库因为账户删除易受 repojacking 攻击。”这些仓库共计不少于80万个 Go 模块版本。
Repojacking 是“仓库”和“劫持”的合成词,这种攻击技术可导致恶意人员利用账户用户名变更和删除来创建具有相同名称和预先已有的用户名的仓库,以发动开源软件供应链攻击活动。
今年6月初,云安全公司 Aqua 披露称 GitHub 上的数百万软件仓库可能易受该威胁,督促正在经历名称变更的组织机构确保仍然拥有之前的名称作为占位符,阻止此类滥用。
用 Go 语言编写的模块尤其易受 repojacking 攻击,因为与其它仓库管理器解决方案如 npm 或 PyPI 不同,由于在 GitHub 或 Bitbucket 等版本控制平台上发布,因此是去中心化的。
Baines 指出,“之后,任何人都可指示 Go 模块镜像和 pkg.go.dev 来缓存模块详情。攻击者可注册新的不用的用户名、复制模块仓库并在 proxy.golang.org 和 go.pkg.dev 上发布新的模块。”
为阻止开发人员拉取潜在不安的程序包,GitHub 部署了“流行仓库名称空间退出”措施,阻止通过在所有人的账户被更名或删除前克隆次数超过100次的已不用的名称空间创建仓库。但VulnCheck 注意到这一防护措施对于 Go 模块而言不起作用,因为模块是通过模块镜像缓存的,因此无需与仓库交互或克隆仓库。换句话说,它们可能是克隆次数少于100次的热门 Go 模块,因此该防护措施可被绕过。
Baines 表示,“遗憾的是,缓解所有的 repojacking 攻击是 Go 或 GitHub 将不得不采取的行动。第三方无法合理地注册 1.5 万个 GitHub 账户。做到这一点后,Go 开发人员有必要注意自己所用的模块,以及模块来源的仓库状态。”
就在昨天,Lasso Security 公司表示在 Hugging Face 和 GitHub 上发现了1681个被暴露的 API 令牌,与谷歌、Meta、微软、VMware 等公司存在关联,可被用于发动供应链攻击、投毒训练数据以及盗取模型。
GitHub 严重漏洞导致4000多个仓库易遭repojacking攻击
GitHub 提醒 Lazarus 黑客组织利用恶意项目攻击开发人员
GitHub 严重漏洞导致4000多个仓库易遭repojacking攻击
https://thehackernews.com/2023/12/15000-go-module-repositories-on-github.html
题图:Pexels License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。