GitHub:我開源我自己;CEO:不存在的
蕭簫 發自 凹非寺
量子位 報導 | 公眾號 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最初刪掉的相關專案就18個,現在一搜,竟然冒出了4000多個。
有開發者稱,這次的“偽造事件”估計與Youtube-dl專案被刪有關,也可能是偽造者對微軟並不開放GitHub原始碼的控訴。
關於GitHub開源,還得從微軟收購GitHub後的一系列舉動說起。
微軟和它的“開源”
自2018年微軟收購GitHub後,一直聲稱自己“致力於開源”。
Resynth表示:“我們已經從大量商業廣告裡看到了(微軟對開源的熱愛),微軟打的這些廣告,的確讓它處在開源開發的最前沿。”
但與微軟提倡的“開源”理念相對,它直接封禁了好幾次社群開源的程式碼。
鬧到最近,就是這次偽造事件導火索的“Youtube-dl被封禁事件”。
有開發者表示,想要讓GitHub開放自己的原始碼,如今在微軟這看來,是絕對不可能的。
Resynth也表示,由於有閉源軟體的存在、以及Git的擴張,讓GitHub看起來更像是一個試圖“包含開源專案”的平臺,而非開源本身。
例如,今年6月,GitHub曾經出現過當機兩小時的情況,這期間,成千上萬個開源專案無法被訪問和使用。
對於這次GitHub洩露原始碼的事件,你怎麼看?
已經走丟的GitHub原始碼網址:
參考連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69971123/viewspace-2732896/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 我是如何把 GitHub 開源專案做到 5300+ star 的Github
- 我們自己開發的程式碼託管服務,用於內部替代 Github,免費開源給大家使用Github
- 揚我國威,來自清華的開源專案火爆GithubGithub
- TesterHome 我登出了之前郵箱的賬戶,用 Github 繫結我郵箱,提示不存在如何解決Github
- 我在 GitHub 上看到了一個喪心病狂的開源專案!Github
- 我成了 GitHub StarGithub
- 我對自己說
- Reviewbot 開源 | 為什麼我們要打造自己的程式碼審查服務?View
- 我泡在GitHub上的177天Github
- 開源引路人:我的Apache Mentor之路Apache
- 我的開源GIS解決方案之路
- 【開源】我和 JAP(JA Plus) 的故事
- 這是我自己的發明
- 掘金採訪 GitHub CEO Nat Friedman — 我們應盡全力確保 Star 數真實Github
- 訪問github太慢?我寫了一個開源小工具一鍵變快Github
- 為什麼明明是發自己的部落格,阿里卻刪除我發部的開源作品?阿里
- 2020:我給自己列的書單
- 我在阿里實習做開源阿里
- 記錄我github的hexo的搭建Blog之路GithubHexo
- 我把我自己的日期類庫分享出來給大家用
- 開源了我獨立開發的評論元件 SaaS ? ?元件
- 酷!一鍵構建我自己的PHP框架的開發環境PHP框架開發環境
- github是否可以用開源的程式碼作為訓練集,再將演算法賣給我?Github演算法
- 被噴了!聊聊我開源的RPC框架那些事RPC框架
- 我們自研的 Ice 規則引擎開源了
- 這些年我開源的幾個小專案
- 我的 FlutterUnit 開源專案竟然被套殼商用了Flutter
- 開源小白到核心開發——我與 sealer 的成長故事
- Arthas 開源一週年,GitHub Star 16 K ,我們一直在堅持什麼?Github
- 我寫了一個開源專案AlphabetPyAlphabet
- 我最近寫了個開源專案Datura
- 我是如何提高自己的「程式設計能力」的?程式設計
- 我參與 Seata 開源專案的一些感悟
- 開源demo| 你畫我猜——讓你的生活更有趣
- 如何為我們的開源專案建立完美的 README?
- 我的第一個開源專案 Kiwis2 MockserverMockServer
- Hi,我是ChunJun,一個有趣好用的開源專案
- 我的第一個開源作品Kiwis2 Mock ServerMockServer