GitHub:我开源了我自己 ?
萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI
大家好,我是阿逛。
前几天有一个新闻:GitHub忽然“开源”了自己代码的一部分,还将它放在了GitHub上。
事件起因是这样的:
TypeScript的开发者Resynth忽然Po了篇文章,表示代码托管服务GitHub的全部源代码被泄露。
他表示,在向官方GitHub DMCA提交的可疑文件中,一个身份不明的人利用GitHub应用程序中的一个漏洞,冒充GitHub的CEO纳特·弗里德曼(Nat Friedman)上传了机密源代码。
事情一出,在HN上激起了网友的热烈讨论,也再次引发了关于GitHub安全问题的思考。
网友lrvick表示,包括他在内的许多安全人员,早就对GitHub上很多相关漏洞进行了公开演示。但除非“搞出个病毒”,微软根本就不承认这些漏洞的存在。
而且,他早就说过,GitHub提交签名的部分存在严重的设计缺陷,然而如今这件事发生,他们才引起重视。
所以,这位陌生用户是怎么做到的?
如何伪造成CEO本人泄露代码?
GitHub的源代码管理器Git,并不能有效地防止用户假冒。
Git的提交方式更接近于电子邮件,这也就意味着,用户可以随意起用户名和填写邮箱,所以做点小手脚也没关系。
——除非提交的信息上有GitHub CEO弗里德曼的GPG签名,否则Git在提交信息时,根本不会确认这是不是CEO本人的提交。(这次有问题的代码提交,就没有CEO本人的签名信息)
GPG(GNU Privacy Guard)是一个密钥软件,用于加密、签名通信的内容,也可作为管理非对称密码学的密钥。
除非GPG签名与邮箱地址相关联,它并不会对提交对象的真伪进行确认。
也就是说,当你提出一个提交请求到Git本地仓库时,你就会得到一个代表提交请求的哈希值,可以通过它直接跳转到你的分支。
GitHub类似于一个Web应用程序,负责提供浏览器到Git底层架构的请求交互,它会将所有的分支保存到一个底层仓库里,哪怕它不以通常的形式出现在在URL架构中。
于是,一位陌生的用户提交的文件“光明正大地”进入了GitHub的DMCA存储库,还伪造成了CEO弗里德曼的样子。
为了做到这一点,这位陌生用户先是复制了一份DMCA存储库、搞个分支出来,便于提交要泄露的GitHub源代码;
然后,陌生用户伪造了弗里德曼的用户名和邮箱,将它提交了。于是,在DMCA存储库里,名为弗里德曼的用户,自己提交了一份GitHub源代码。
CEO回应后,网友却炸了
对此,GitHub CEO弗里德曼做出了回应,表示GitHub前段时间不小心混淆了一部分源代码给客户,但这不会影响GitHub的安全。
他甚至还吟了首勃朗宁的诗:一切都很好,情况也很正常,云雀展翅飞翔,蜗牛在荆棘上爬动,世上一切顺当!
但显然,网友们并不在意这段源码是不是CEO本人泄露的,相反,这件事情再一次激起了他们针对“GitHub开源”这件事本身的怒火。
网友exabrial:您(指CEO)认为这是正常情况?你们是不是想通过伪造/无效的DMCA,删掉其他的什么项目?
CEO弗里德曼:这边建议您阅读DMCA工作原理呢。
网友dannyw:如果GitHub真的提倡开源,它就不会是现在这样。据我所知,微软是RIAA的成员哦。
网友dannyw之所以提到RIAA(美国唱片业协会),是因为GitHub前段时间应RIAA的要求,直接删除了GitHub上开源的油管视频下载器Youtube-dl。
这个事件 逛逛GitHub 也发过文章:这个 72k Star 的 GitHub 项目被封了
一石激起千层浪,原本GitHub最初删掉的相关项目就18个,现在一搜,竟然冒出了4000多个。
有开发者称,这次的“伪造事件”估计与Youtube-dl项目被删有关,也可能是伪造者对微软并不开放GitHub源代码的控诉。
关于GitHub开源,还得从微软收购GitHub后的一系列举动说起。
微软和它的“开源”
自2018年微软收购GitHub后,一直声称自己“致力于开源”。
Resynth表示:“我们已经从大量商业广告里看到了(微软对开源的热爱),微软打的这些广告,的确让它处在开源开发的最前沿。”
但与微软提倡的“开源”理念相对,它直接封禁了好几次社区开源的代码。
闹到最近,就是这次伪造事件导火索的“Youtube-dl被封禁事件”。
有开发者表示,想要让GitHub开放自己的源码,如今在微软这看来,是绝对不可能的。
Resynth也表示,由于有闭源软件的存在、以及Git的扩张,让GitHub看起来更像是一个试图“包含开源项目”的平台,而非开源本身。
例如,今年6月,GitHub曾经出现过宕机两小时的情况,这期间,成千上万个开源项目无法被访问和使用。
对于这次GitHub泄露源码的事件,你怎么看?
已经走丢的GitHub源码网址:
https://web.archive.org/web/2/https://github.com/github/dmca/tree/565ece486c7c1652754d7b6d2b5ed9cb4097f9d5
参考链接:
https://arstechnica.com/information-technology/2020/11/githubs-source-code-was-leaked-on-github-last-night-sort-of/
https://www.zdnet.com/article/github-denies-getting-hacked/
https://resynth1943.net/articles/github-source-code-leak/
https://news.ycombinator.com/item?id=24994746
https://www.theverge.com/2020/6/29/21306674/github-down-errors-outage-june-2020
逛逛GitHub交流群已成立