RepoJacking 攻击影响数百万 GitHub 库。
(资料图)
数百万 GitHub 库受到依赖库劫持攻击 "RepoJacking" 的影响,可以帮助攻击者首先供应链攻击,影响数百万用户。
RepoJacking 攻击
GitHub 上用户名和库名是经常变化的。如果企业被受到或合并,名字就会发生变化。名字发生变化后,就会创建重定向来避免破坏项目依赖。但如果有用户注册了原来的用户名或库名,重定向就无效了。
RepoJacking 攻击是指恶意用户注册一个 GitHub 用户名,并创建一个该组织过去使用的库,然后修改其名。通过 RepoJacking 攻击,攻击者可以依赖被攻击项目的依赖来从攻击者控制的库中取回依赖和代码,其中可能包含恶意软件。攻击案例
AquaSec 安全研究团队 Nautilus 分析了 125 万 GitHub 库,发现其中 2.95% 可能受到 RepoJacking 攻击的影响。GitHub 库总数超过 3 亿,按照 2.95% 的比例,超过 900 万项目受到该攻击的影响。
在 Google 的库例子中,"Mathsteps" 项目指向属于 Socratic 的 GitHub 库。Socratic 是谷歌收购的一家公司。攻击者可以克隆库来破坏重定向,用户根据 readme 文件指示会从恶意库中下载恶意代码。由于 readme 文件中包含 npm install 依赖命令,攻击者的代码可以在受害者设备上实现任意代码执行。
图 谷歌 readme 文件中的命令在 Lyft 的例子中,攻击者可以自动执行。研究人员在该公司的库中发现一个安装脚本,可以从另一个库中取回一个 zip 压缩文件,因此也受到 RepoJacking 攻击的影响。
攻击者首先注册一个新的用户名和使用正确名的库(YesGraph 和 Dominus),然后可以注入代码到任意执行 Lyft 的 "install.sh" 脚本。
图 指向外部库的 Lyft 脚本总结
GitHub 已经意识到 RepoJacking 攻击的可能性并实现了一些防护措施。但 AquaSec 称这些防护措施还不够充分,易被绕过。比如,GitHub 只对那些比较流行的项目进行保护。GitHub 会对克隆数超过 100 的项目修改名时进行保护。
RepoJacking 的风险是非常广泛的,也难以修复,会对企业和用户带来严重的风险。项目所有者应当尽可能最小化从外部库提取资源。
完整技术细节参见:https://blog.aquasec.com/github-dataset-research-reveals-millions-potentially-vulnerable-to-repojacking
上一篇:在撰写先进事迹材料需要注意哪些地方?先进生产者主要事迹怎么写
下一篇:最后一页
X 关闭