当开发人员在GitHub上寻找开源项目时,会习惯对其元数据进行检查,但研究发现,这些元数据很容易被伪造,并以此用来传播恶意代码。
Checkmarx 的研究人员在一份新报告中警告说,开发人员在查看元数据时应当尽力核实背后贡献者的身份,而不应仅停留于对元素据表面的检查。
通常,开发人员在GitHub上寻找开源项目时,会倾向于选择那些活跃的、有积极维护记录的贡献者所提供的项目,Git对每一次更改分配了一个唯一的 ID,该ID记录了由谁更新、具体的更新内容以及时间戳,相对而言,拥有较多的更新反映了贡献者对这个项目的重视,从而看起来得到了较好的维护与优化。
但根据Checkmarx的说法,攻击者可以轻松伪造这些维护记录。根据报告称,衡量 GitHub 上用户活动的一个重要指标是用户个人资料页面上的活跃热图,显示用户在一段时间内的活跃程度,而攻击者能在注册的全新账户上通过伪造带有时间戳的提交记录,使之看起来已经平台上活跃了很长时间。
【图:利用git set更改本地两个环境变量,从而在GitHub上显示伪造的时间戳】
类似的,攻击者还可以“借用”一些知名的、信誉度良好的贡献者身份上传包含恶意代码的项目,攻击者只需要找到这些贡献者的电子邮件地址,然后在 Git 命令行上设置用户名和电子邮件地址并提交更改。报告称,尽管 GitHub 提供了隐藏电子邮件地址的方法,但大多数人并没有使用这些功能,这使得攻击者可以相对容易地获取这些邮件地址。此外,被借用身份的贡献者也不会收到任何关于他们的账户被添加为另一个项目的贡献者的通知。
Checkmarx的供应链安全主管Tzachi Zornstain强调,开发人员在选择开源项目时,要重视这些项目贡献者的身份是否已被验证,如果一个项目包含多个贡献者提交的代码,要确保这些贡献者也是必须真实可靠。
他还建议这些项目贡献者使用GitHub的数字签名功能,对自己的代码进行签名,这样他们的贡献就会被验证。该功能包括一个 "警惕模式",显示所有在其名下贡献的代码的状态,包括其他人可能在其名下提交的代码。GitHub还指出,所有贡献者如果希望能够这样做,就需要在2023年前开启双因素认证。
参考来源:
https://www.darkreading.com/application-security/how-attackers-could-dupe-developers-into-downloading-malicious-code-from-github
精彩推荐