开源软件可帮助开发人员更快地创建应用程序,如果他们认为第三方代码来自可靠来源,他们中的许多人可能会跳过对第三方代码的适当审计。例如,他们可能会选择积极维护的 GitHub 存储库或有信誉良好的个人作为贡献者的存储库。
根据 Checkmarx 的说法,威胁参与者可以伪造一些与 GitHub 存储库相关的数据,以增强他们的跟踪记录,并使它们更有可能被应用程序开发人员选中。
具体来说,研究人员发现有人可能会篡改提交元数据,从而使存储库看起来比实际更旧,或者有信誉的贡献者参与了其维护。
提交对于 Git 版本控制系统是必不可少的:它们记录对文件所做的更改、这些更改是在何时进行的,以及是谁进行的。每个提交都有一个唯一的 ID 或哈希。
然而,根据 Checkmarx 的说法,人们可以以这样一种方式操纵与提交相关的时间戳,即 GitHub 上列出的时间戳可以早于用户提交的创建以及更改所针对的存储库的创建。
虚假提交可以自动生成并自动添加到用户的 GitHub 活动图中,这可能使恶意用户看起来好像他们已经在代码托管平台上活动了很长时间。
“由于活动图显示了公共和私人存储库上的活动,因此不可能抹黑这些虚假提交,因此这种欺骗技术也很难检测到,”Checkmarx 说。
此外,研究人员发现提交者的身份可以被欺骗,将提交归因于真实的 GitHub 帐户,例如平台上的顶级贡献者。
为此,恶意用户需要检索目标帐户的电子邮件地址——如果开发人员选择启用该功能,通常会隐藏该地址——并使用特定命令将 Git CLI 中的用户名和电子邮件设置为欺骗用户的用户名和电子邮件. 虽然这增加了 GitHub 存储库的声誉,但被欺骗的用户永远不会被告知他们的名字被使用。
“为了使他们的项目看起来可靠,攻击者可以使用这种技术一次或多次,并用已知的可靠贡献者填充他们的存储库的贡献者部分,这反过来使项目看起来值得信赖,”Checkmarx 指出。
GitHub 用户可以使用提交签名验证功能对他们的提交进行加密签名,但未签名的提交不会被标记。
根据 Checkmarx 的说法,用户可以启用“警惕模式”,在该模式下显示所有提交的验证状态,从而提高该功能的有效性。
“虚假元数据可能会误导开发人员使用他们故意不使用的代码,并且可能包含恶意代码。缺乏对提交者身份和提交时间戳的验证本身就是一个问题。