当前位置: 首页 > 科技观察

GitHub被黑了!在不明人士冒充CEO泄露其机密源代码

时间:2023-03-15 19:29:32 科技观察

YouTube-dl后不久,GitHub再次登上黑客新闻榜首。原因是它的所有源代码都被泄露了!根据开发者Resynth发布的博客,在提交给GitHub官方DMCA仓库的可疑Commit中,不知名人士利用GitHub应用程序中的漏洞冒充GitHubCEONatFriedman上传了分类源代码。泄露的文件已全部删除。GitHub想必大家都很熟悉了。是一个大型代码库,主要为企业和开发者提供托管项目和服务代码。苹果、亚马逊、谷歌、Facebook和许多其他大型科技公司都是其主要客户。同时,GitHub托管了超过1亿个仓库,为4000万开发者提供资源支持。因此,此次泄密事件一出,迅速冲上HackerNews热搜,不少开发者对GitHub平台的安全性表示担忧。对此,GitHubCEO弗里德曼本人第一时间在热帖下进行了解释。他说GitHub没有被黑,只是GitHubEnterpriseServer的部分源代码被泄露了。两者虽然共享了很多代码,但GitHub主要是用Ruby写的,所以还是有很大区别的。此外,此事件是由于开发人员在几个月前无意中向一些客户提供了未经批准/混淆的企业服务器源代码压缩包而引起的。我们正在尽最大努力修复平台错误,以防止未经授权的人通过伪造身份窃取和修改他人的项目。最后,弗里德曼还唱了一首勃朗宁的诗来安抚网友:一切都很好很正常,云雀在飞,蜗牛在荆棘上爬,人间一切都好!不过开发商对此回应称“我不买账”。从他们的抱怨来看,Github代码管理系统中已经存在不少bug。例如,在提交代码时,Git不会验证用户的身份。这会给源码带来很大的安全隐患,但是GitHub平台一直没有关注这一点。此外,还有人表示,正是这个漏洞,让不知名的人能够冒充弗里德曼发布机密代码。源代码管理器Git存在BugGit,它是Github用来托管源代码的分布式版本管理系统。简单的说,就是源代码管理器。其设计中的一个明显缺陷是它没有提供太多保护以防止其他用户盗用。具体来说,Git上传代码文件的过程类似于发送邮件。用户可以在user.name和user.email字段中输入任何信息。在这个过程中,如果两个字段之间不使用GPG密钥关联,系统将不会对其指定来源进行验证,信息造假就会变得非常容易。上述不知名人士提交成功,显然Friedman并没有为相关字段创建GPG(GeneralPlanningGroup)密钥。那么,在绕过这层限制之后,一个不知名的人如何在不危及实际账户的情况下提交到存储库呢?据了解,将提交上传到Git存储库将产生一个可用于查找树的散列。GitHub是Web应用程序的一部分,它在浏览器中提供对底层Git结构的访问,因此它可以将Git存储库的所有分支存储在单个底层存储库中,尽管通常不会在URL结构中以这种方式显示。为了冒充其他人的帐户,未知者首先需要克隆DMCA存储库。在扩展到存储库后,泄露的源代码被提交,伪造了Friedman的姓名和电子邮件地址。这个分叉存储库的过程可能是错误的,换句话说,URL可能仍然指向冒充者的真实用户名和帐户。但在底层Git上,父仓库和分叉仓库都是同一个仓库的一部分,这将允许伪造者创建一个URL,在该URL中可以在主仓库中进行提交,但不能在分叉仓库中进行。所以冒名顶替者从https://github.com/github/dmca开始,并在末尾附加tree/$hash,其中$hash是攻击者自己的fork提交的哈希值。结果,冒名顶替者能够使用URL而不是Friedman在GitHub上提交他的机密代码。值得一提的是,除了对代码安全的担忧,此次事件也再次引发了开发者对GitHub开源态度的关注。长期以来,GitHub因不公开其源代码而饱受诟病。就在几天前,GitHub因屏蔽视频神器YouTube-dl再次陷入舆论风暴。据了解,这次泄密事件的发生很可能是不知名开发者封杀YouTube-dl的报复。或许与YouTube-dl下架有关上个月,应美国唱片业协会(RIAA)的要求,GitHub封禁了拥有75,000个Star的热门开源项目YouTube-dl。RIAA当时给出的理由是YouTube-dl违反了DMCA的反规避条款:本源代码的明确目的是:1)规避YouTube等授权流媒体服务使用的技术保护措施;2)未经授权复制和分发会员公司拥有的音乐视频和音频。3)除YouTube外,源码支持更多网站在GitHub上下载视频。但GitHub删除YouTube-dl激怒了开发人员,他们在GitHub上复制并上传了大量代码副本以抗议删除。目前在GitHub上搜索YouTube-dl,相关结果多达4108条。随后,GitHub的企业法务团队不得不发出最新警告,称如果继续发布代码副本,可能会被封禁。请注意,在不遵循流程的情况下重新发布youtube-dl代码的副本违反了GitHub平台DMCA政策和服务条款。如果您继续向此存储库提交或发布您故意违反服务条款的内容,我们将删除它并可能暂停对您帐户的访问。虽然造成泄密的不知名人士尚未就此事公开发表评论,但有人猜测这可能是他对GitHub下架该项目的报复。此外,在弗里德曼回应泄密的帖子下,可以看到不少网友对GitHub以DMCA协议为由下架YouTube-dl表示不满。另一位用户表示,GitHub很可能会这样做,因为微软是RIAA的成员。他表示,DMCA要求的下架并不是代码著作权人本身的下架,GitHub作为一个提倡开源的独立公司,不需要遵守RIAA的非法要求。可见网友的不满是因为禁令违背了GitHub开源的初衷。GitHub的开源精神引发争议2018年,微软以75亿美元收购了GitHub。新任CEONatFriedman曾表示:GitHub将始终坚持开发者至上,独立运营。Resynth也在博客中表示:微软多次强调其对开源的承诺,我们在很多商业广告中经常可以看到,其目的就是让微软始终走在开源发展的前沿。但现在看来,微软似乎并没有做到它所承诺的。YouTube-dl只是最近的一个例子。事实上,GitHub一直被业界广泛批评其源代码保密。此外,Resynth还提醒,这起事件不得不让人担心GitHub源码的安全问题。因为闭源应用实现了“SecurityByObscurity”,即隐藏源代码以降低安全风险。如果GitHub真的公开,它可能会损害其整体安全性。本文转载自雷锋网。如需转载,请在雷锋网官网申请授权。