GitHub 忽然 “開源” 了自己代碼的一部分,還將它放在了 GitHub 上。TypeScript 的開發(fā)者 Resynth 忽然 Po 了篇文章,表示代碼托管服務(wù) GitHub 的全部源代碼被泄露。他表示,在向官方 GitHub DMCA 提交的可疑文件中,一個(gè)身份不明的人利用 GitHub 應(yīng)用程序中的一個(gè)漏洞,冒充 GitHub 的 CEO 納特?弗里德曼(Nat Friedman)上傳了機(jī)密源代碼。事情一出,在 HN 上激起了網(wǎng)友的熱烈討論,也再次引發(fā)了關(guān)于 GitHub 安全問題的思考。網(wǎng)友 lrvick 表示,包括他在內(nèi)的許多安全人員,早就對(duì) GitHub 上很多相關(guān)漏洞進(jìn)行了公開演示。但除非 “搞出個(gè)病毒”,微軟根本就不承認(rèn)這些漏洞的存在。而且,他早就說過,GitHub 提交簽名的部分存在嚴(yán)重的設(shè)計(jì)缺陷,然而如今這件事發(fā)生,他們才引起重視。如何偽造成 CEO 本人泄露代碼?
GitHub 的源代碼管理器 Git,并不能有效地防止用戶假冒。Git 的提交方式更接近于電子郵件,這也就意味著,用戶可以隨意起用戶名和填寫郵箱,所以做點(diǎn)小手腳也沒關(guān)系。—— 除非提交的信息上有 GitHub CEO 弗里德曼的 GPG 簽名,否則 Git 在提交信息時(shí),根本不會(huì)確認(rèn)這是不是 CEO 本人的提交。(這次有問題的代碼提交,就沒有 CEO 本人的簽名信息)GPG(GNU Privacy Guard)是一個(gè)密鑰軟件,用于加密、簽名通信的內(nèi)容,也可作為管理非對(duì)稱密碼學(xué)的密鑰。
除非 GPG 簽名與郵箱地址相關(guān)聯(lián),它并不會(huì)對(duì)提交對(duì)象的真?zhèn)芜M(jìn)行確認(rèn)。也就是說,當(dāng)你提出一個(gè)提交請(qǐng)求到 Git 本地倉(cāng)庫(kù)時(shí),你就會(huì)得到一個(gè)代表提交請(qǐng)求的哈希值,可以通過它直接跳轉(zhuǎn)到你的分支。GitHub 類似于一個(gè) Web 應(yīng)用程序,負(fù)責(zé)提供瀏覽器到 Git 底層架構(gòu)的請(qǐng)求交互,它會(huì)將所有的分支保存到一個(gè)底層倉(cāng)庫(kù)里,哪怕它不以通常的形式出現(xiàn)在在 URL 架構(gòu)中。于是,一位陌生的用戶提交的文件 “光明正大地” 進(jìn)入了 GitHub 的 DCMA 存儲(chǔ)庫(kù),還偽造成了 CEO 弗里德曼的樣子。為了做到這一點(diǎn),這位陌生用戶先是復(fù)制了一份 DCMA 存儲(chǔ)庫(kù)、搞個(gè)分支出來,便于提交要泄露的 GitHub 源代碼;然后,陌生用戶偽造了弗里德曼的用戶名和郵箱,將它提交了。于是,在 DCMA 存儲(chǔ)庫(kù)里,名為弗里德曼的用戶,自己提交了一份 GitHub 源代碼。CEO 回應(yīng)后,網(wǎng)友卻炸了
對(duì)此,GitHub CEO 弗里德曼做出了回應(yīng),表示 GitHub 前段時(shí)間不小心混淆了一部分源代碼給客戶,但這不會(huì)影響 GitHub 的安全。他甚至還吟了首勃朗寧的詩(shī):一切都很好,情況也很正常,云雀展翅飛翔,蝸牛在荊棘上爬動(dòng),世上一切順當(dāng)!但顯然,網(wǎng)友們并不在意這段源碼是不是 CEO 本人泄露的,相反,這件事情再一次激起了他們針對(duì) “GitHub 開源” 這件事本身的怒火。網(wǎng)友 exabrial:您(指 CEO)認(rèn)為這是正常情況?你們是不是想通過偽造 / 無(wú)效的 DCMA,刪掉其他的什么項(xiàng)目?CEO 弗里德曼:這邊建議您閱讀 DCMA 工作原理呢。網(wǎng)友 dannyw:如果 GitHub 真的提倡開源,它就不會(huì)是現(xiàn)在這樣。據(jù)我所知,微軟是 RIAA 的成員哦。
網(wǎng)友 dannyw 之所以提到 RIAA(美國(guó)唱片業(yè)協(xié)會(huì)),是因?yàn)?GitHub 前段時(shí)間應(yīng) RIAA 的要求,直接刪除了 GitHub 上開源的油管視頻下載器?Youtube-dl。一石激起千層浪,原本 GitHub 最初刪掉的相關(guān)項(xiàng)目就 18 個(gè),現(xiàn)在一搜,竟然冒出了 4000 多個(gè)。有開發(fā)者稱,這次的 “偽造事件” 估計(jì)與 Youtube-dl 項(xiàng)目被刪有關(guān),也可能是偽造者對(duì)微軟并不開放 GitHub 源代碼的控訴。關(guān)于 GitHub 開源,還得從微軟收購(gòu) GitHub 后的一系列舉動(dòng)說起。微軟和它的 “開源”
自 2018 年微軟收購(gòu) GitHub 后,一直聲稱自己 “致力于開源”。Resynth 表示:“我們已經(jīng)從大量商業(yè)廣告里看到了(微軟對(duì)開源的熱愛),微軟打的這些廣告,的確讓它處在開源開發(fā)的最前沿。”但與微軟提倡的 “開源” 理念相對(duì),它直接封禁了好幾次社區(qū)開源的代碼。鬧到最近,就是這次偽造事件導(dǎo)火索的 “Youtube-dl 被封禁事件”。有開發(fā)者表示,想要讓 GitHub 開放自己的源碼,如今在微軟這看來,是絕對(duì)不可能的。Resynth 也表示,由于有閉源軟件的存在、以及 Git 的擴(kuò)張,讓 GitHub 看起來更像是一個(gè)試圖 “包含開源項(xiàng)目” 的平臺(tái),而非開源本身。例如,今年 6 月,GitHub 曾經(jīng)出現(xiàn)過宕機(jī)兩小時(shí)的情況,這期間,成千上萬(wàn)個(gè)開源項(xiàng)目無(wú)法被訪問和使用。對(duì)于這次 GitHub 泄露源碼的事件,你怎么看?傳送門
已經(jīng)走丟的 GitHub 源碼網(wǎng)址:
https://web.archive.org/web/2/https://github.com/github/dmca/tree/565ece486c7c1652754d7b6d2b5ed9cb4097f9d5關(guān)注「Python 知識(shí)大全」,做全棧開發(fā)工程師
回復(fù) 【資料】獲取高質(zhì)量學(xué)習(xí)資料
覺得本文對(duì)你有幫助?請(qǐng)分享給更多人