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

YouTube-dl事件刚刚过去不久,GitHub又登上了Hacker News榜首。
原因是其源代码被全部泄露!
机密|GitHub被黑!不明人士冒充CEO泄露GitHub机密源代码
文章插图
从开发者Resynth 发表的一篇博客中了解到,在一个向 GitHub 官方 DMCA 仓库提交的可疑 Commit 中,一名不明身份人员利用 GitHub 应用程序中的bug 假冒GitHub CEO 奈特·弗里德曼 (Nat Friedman)上传了机密源代码。
机密|GitHub被黑!不明人士冒充CEO泄露GitHub机密源代码
文章插图
泄露文件已被全部删除
GitHub想必大家都非常熟悉,它是一个大型代码存储库,主要为企业和开发人员提供托管项目和服务代码。苹果,亚马逊,谷歌,Facebook以及其他许多大型科技公司都是其主要客户。同时,GitHub已托管超过1亿个存储库,为4000万开发人员提供资源支持。
因此,此泄露事件一出便迅速冲上了Hacker News热搜,不少开发者表示为GitHub平台的安全性感到担忧。
对此,GitHub CEO Friedman本人则第一时间在热帖下做出了解释。他表示,
GitHub没有被黑客入侵,被泄露的是部分GitHub Enterprise Server源代码。二者虽然共享大量代码,但GitHub主要是由Rube编写,还是有很大差异的。
另外,这一事件的起因是几个月前,开发人员无意间将企业服务器源代码的未脱敏/混淆的 tarball 交付给了一些客户造成的。我们正在全力修复平台Bug,防止未经授权的不明人士通过伪造身份随意盗用、修改他人项目。
机密|GitHub被黑!不明人士冒充CEO泄露GitHub机密源代码
文章插图
最后,Friedman为了安抚用户甚至还吟了首勃朗宁的诗:一切都很好,情况也很正常,云雀展翅飞翔,蜗牛在荆棘上爬动,世上一切顺当!
不过,开发者们对此回应并不买账。从他们的吐槽来看,Github代码管理系统早已存在多项Bug,比如提交代码时,Git不会对用户身份进行核验。这一点会给源代码带来极大的安全风险,但GitHub平台对此从未重视过。
另外,有人表示正是利用这一缺陷,不明人士才得以冒充Friedman身份发布了机密代码。
源代码管理器Git存在BugGit,是Github用来托管源代码的分布式版本管理系统,简单来说,就是源代码管理器。
它的设计存在一种明显的缺陷,即没有为防止其他用户盗用提供太多的保护。具体来说,Git 上传代码文件的过程,类似于发送电子邮件。用户可以在user.name和user.email字段中输入任何信息。这一过程中,如果两个字段之间不采用GPG密钥关联,系统就不会核查它的指定来源,那么信息造假会变得非常容易。
机密|GitHub被黑!不明人士冒充CEO泄露GitHub机密源代码
文章插图
上述不明人士顺利提交成功,显然是Friedman没为相关字段建立GPG(General Planning Group)密钥。
那么,在绕过这层限制后,不明人士又是如何提交至存储库,同时又不损害实际存在账户的?据了解,将提交内容上传到Git存储库会得到一个散列,可用于查找树。GitHub是Web应用程序的一部分,提供了对浏览器中底层Git结构的访问权限,因此,它可以将Git存储库的所有分支存储在一个单独的底层存储库中,尽管通常不会在URL结构中显示这种方式。
为了假冒别人的账户,不明人士首先需要克隆一个DMCA储存库。在扩展到存储库之后,再提交泄漏源代码,并伪造成Friedman的姓名和电子邮件地址。这个过程Fork存储库可能会出现错误,换句话说,URL可能依然指向假冒者真正的用户名和账户。
但在底层Git上,父级和Fork都是同一个存储库的一部分,这将允许假冒者创建一个URL,该URL可以在主存储库中提交,而不是在Fork中。
机密|GitHub被黑!不明人士冒充CEO泄露GitHub机密源代码
文章插图
因此,假冒者从https://github.com/github/dmca开始,将tree/$hash追加到末尾,其中$hash是攻击者自己的fork提交的散列值。
结果假冒者得以代替Friedman使用了一个URL在GitHub上提交了自己的机密代码。
值得一提的是,除了代码安全性的担忧之外,这件事也再度引起了开发者们对GitHub开源态度的关注。长久以来,GitHub 一直因为未公开源代码而饱受诟病,而恰好前几日,GitHub再度因封杀视频神器YouTube-dl而陷入舆论风波。
据了解,此次泄露事件的发生,很可能是这位不知名开发者对封杀YouTube-dl一事的报复。
或许与下架YouTube-dl有关上个月,在美国唱片业协会(RIAA)的要求下, GitHub 封禁了7.5万Star的热门开源项目 YouTube-dl。
机密|GitHub被黑!不明人士冒充CEO泄露GitHub机密源代码
文章插图