一项新的研究显示,许多企业在重命名项目时,不知不觉地将其代码库的用户暴露在重载劫持之下。
GitHub上数以百万计的企业软件存储库容易受到劫持,这是一种相对简单的软件供应链攻击,攻击者会将某个特定存储库的项目重定向到一个恶意的存储库。
Aqua Security的研究人员在本周的一份报告中说,这个问题与GitHub如何处理依赖关系有关,当GitHub用户或组织更改项目名称或将其所有权转让给另一个实体时,容易受到重新劫持。
改名的风险
为了避免破坏代码的依赖性,GitHub在原 repo 名称和新名称之间建立了一个链接,因此所有依赖原 repo 的项目都会自动重定向到新更名的项目。然而,如果一个组织未能充分保护旧的用户名,攻击者可以简单地重新使用它来创建一个原始仓库的木马版本,这样任何依赖该存储库的项目将重新开始从该存储库下载。
Aqua公司的研究人员在本周的博客中说:当版本库所有者改变他们的用户名时,对于任何从旧版本库下载依赖项的人来说,在旧名称和新名称之间会产生一个链接。然而,任何人都有可能创建旧的用户名并破坏这个链接。
普遍性问题
Aqua发现了两个问题:一是,GitHub上有数百万个这样的软件库,包括属于谷歌和Lyft等公司的软件库;二是,攻击者很容易找到这些软件库以及劫持它们的工具。其中一个工具是GHTorrent,这个工具对GitHub上的所有公共事件(如提交和请求)进行了几乎完整的记录。攻击者可以使用GHTorrent来获取组织之前使用的GitHub仓库的名称。然后他们可以用这个旧用户名注册存储库,并向任何使用该存储库的项目传输恶意软件。
任何直接引用GitHub存储库的项目,如果存储库的所有者改变或删除了他们存储库的用户名,就会受到攻击。
因此,组织不应假定他们的旧名称不会被披露,而是要在GitHub上认领并保留他们的旧用户名。同时企业可以通过扫描他们的代码、存储库和关联性的GitHub链接来减轻他们面临的劫持威胁。
参考链接:https://www.darkreading.com/application-security/millions-of-repos-on-github-are-potentially-vulnerable-to-hijacking