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 是Google全面收购的一间子公司。普通采用者能布季夫程序库毁坏链接,采用者依照 readme 文档命令会从蓄意复本浏览蓄意标识符。虽然 readme 文档中包涵 npm install 倚赖命令,普通采用者的标识符能在被害者电子设备上同时实现任一标识符继续执行。
图 Google readme 文档中的命令
在 Lyft 的范例中,普通采用者能手动继续执行。科学研究相关人员在该子公司的复本辨认出两个加装JAVA,能从另两个复本拿取两个 zip 压缩文档,因而也受 RepoJacking 反击的负面影响。
普通采用者具体来说注册登记两个捷伊帐号和采用恰当名的库(YesGraph 和 Dominus),接着能转化成标识符到任一继续执行 Lyft 的 “install.sh” JAVA。
图 对准内部库的 Lyft JAVA
总结
GitHub 已经意识到 RepoJacking 反击的可能将性并同时实现了一些防护措施。但 AquaSec 称这些防护措施还不够充分,易被绕过。比如,GitHub 只对那些比较流行的工程项目进行保护。GitHub 会对布季夫数少于 100 的工程项目修正名时进行保护。
RepoJacking 的风险是非常广泛的,也难以修复,会对民营企业和采用者带来严重的风险。工程项目所有者应当尽可能将最小化从内部库提取资源。
完整技术细节参见:https://blog.aquasec.com/github-dataset-research-reveals-millions-potentially-vulnerable-to-repojacking