0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

YouTube源代碼管理器Git存在Bug

lhl545545 ? 來(lái)源:雷鋒網(wǎng) ? 作者:貝爽 ? 2020-11-10 09:41 ? 次閱讀

YouTube-dl事件剛剛過去不久,GitHub又登上了Hacker News榜首。

原因是其源代碼被全部泄露!

開發(fā)者Resynth 發(fā)表的一篇博客中了解到,在一個(gè)向 GitHub 官方 DMCA 倉(cāng)庫(kù)提交的可疑 Commit 中,一名不明身份人員利用 GitHub 應(yīng)用程序中的bug 假冒GitHub CEO 奈特·弗里德曼 (Nat Friedman)上傳了機(jī)密源代碼。

泄露文件已被全部刪除

GitHub想必大家都非常熟悉,它是一個(gè)大型代碼存儲(chǔ)庫(kù),主要為企業(yè)和開發(fā)人員提供托管項(xiàng)目和服務(wù)代碼。蘋果、亞馬遜、Google、Facebook以及其他許多大型科技公司都是其主要客戶。

目前,GitHub已托管超過1億個(gè)存儲(chǔ)庫(kù),為4000萬(wàn)開發(fā)人員提供資源支持。

因此,此泄露事件一出便迅速?zèng)_上了Hacker News熱搜,不少開發(fā)者表示為GitHub平臺(tái)的安全性感到擔(dān)憂。

對(duì)此,GitHub CEO Friedman本人則第一時(shí)間在熱帖下做出了解釋。他表示:

GitHub沒有被黑客入侵,被泄露的是部分GitHub Enterprise Server源代碼。二者雖然共享大量代碼,但GitHub主要是由Rube編寫,還是有很大差異的。

另外,這一事件的起因是幾個(gè)月前,開發(fā)人員無(wú)意間將企業(yè)服務(wù)器源代碼的未脫敏/混淆的 tarball 交付給了一些客戶造成的。我們正在全力修復(fù)平臺(tái)Bug,防止未經(jīng)授權(quán)的不明人士通過偽造身份隨意盜用、修改他人項(xiàng)目。

YouTube源代碼管理器Git存在Bug

最后,F(xiàn)riedman為了安撫用戶甚至還吟了首勃朗寧的詩(shī):一切都很好,情況也很正常,云雀展翅飛翔,蝸牛在荊棘上爬動(dòng),世上一切順當(dāng)!

不過,開發(fā)者們對(duì)此回應(yīng)并不買賬。從他們的吐槽來(lái)看,Github代碼管理系統(tǒng)早已存在多項(xiàng)Bug,比如提交代碼時(shí),Git不會(huì)對(duì)用戶身份進(jìn)行核驗(yàn)。這一點(diǎn)會(huì)給源代碼帶來(lái)極大的安全風(fēng)險(xiǎn),但GitHub平臺(tái)對(duì)此從未重視過。

另外,有人表示正是利用這一缺陷,不明人士才得以冒充Friedman身份發(fā)布了機(jī)密代碼。

源代碼管理器Git存在Bug

Git,是Github用來(lái)托管源代碼的分布式版本管理系統(tǒng),簡(jiǎn)單來(lái)說,就是源代碼管理器。

它的設(shè)計(jì)存在一種明顯的缺陷,即沒有為防止其他用戶盜用提供太多的保護(hù)。

具體來(lái)說,Git 上傳代碼文件的過程,類似于發(fā)送電子郵件。用戶可以在user.name和user.email字段中輸入任何信息。這一過程中,如果兩個(gè)字段之間不采用GPG密鑰關(guān)聯(lián),系統(tǒng)就不會(huì)核查它的指定來(lái)源,那么信息造假會(huì)變得非常容易。

上述不明人士順利提交成功,顯然是Friedman沒為相關(guān)字段建立GPG(General Planning Group)密鑰。

那么,在繞過這層限制后,不明人士又是如何提交至存儲(chǔ)庫(kù),同時(shí)又不損害實(shí)際存在賬戶的?

據(jù)了解,將提交內(nèi)容上傳到Git存儲(chǔ)庫(kù)會(huì)得到一個(gè)散列,可用于查找樹。GitHub是Web應(yīng)用程序的一部分,提供了對(duì)瀏覽器中底層Git結(jié)構(gòu)的訪問權(quán)限,因此,它可以將Git存儲(chǔ)庫(kù)的所有分支存儲(chǔ)在一個(gè)單獨(dú)的底層存儲(chǔ)庫(kù)中,盡管通常不會(huì)在URL結(jié)構(gòu)中顯示這種方式。

為了假冒別人的賬戶,不明人士首先需要克隆一個(gè)DMCA儲(chǔ)存庫(kù)。在擴(kuò)展到存儲(chǔ)庫(kù)之后,再提交泄漏源代碼,并偽造成Friedman的姓名和電子郵件地址。這個(gè)過程Fork存儲(chǔ)庫(kù)可能會(huì)出現(xiàn)錯(cuò)誤,換句話說,URL可能依然指向假冒者真正的用戶名和賬戶。

但在底層Git上,父級(jí)和Fork都是同一個(gè)存儲(chǔ)庫(kù)的一部分,這將允許假冒者創(chuàng)建一個(gè)URL,該URL可以在主存儲(chǔ)庫(kù)中提交,而不是在Fork中。

因此,假冒者從https://github.com/github/dmca開始,將tree/$hash追加到末尾,其中$hash是攻擊者自己的fork提交的散列值。

結(jié)果假冒者得以代替Friedman使用了一個(gè)URL在GitHub上提交了自己的機(jī)密代碼。

值得一提的是,除了代碼安全性的擔(dān)憂之外,這件事也再度引起了開發(fā)者們對(duì)GitHub開源態(tài)度的關(guān)注。

長(zhǎng)久以來(lái),GitHub 一直因?yàn)槲垂_源代碼而飽受詬病,而恰好前幾日,GitHub再度因封殺視頻神器YouTube-dl而陷入輿論風(fēng)波。

據(jù)了解,此次泄露事件的發(fā)生,很可能是這位不知名開發(fā)者對(duì)封殺YouTube-dl一事的報(bào)復(fù)。

或許與下架YouTube-dl有關(guān)

上個(gè)月,在美國(guó)唱片業(yè)協(xié)會(huì)(RIAA)的要求下, GitHub 封禁了7.5萬(wàn)Star的熱門開源項(xiàng)目 YouTube-dl。

當(dāng)時(shí)RIAA其給出的理由是,YouTube-dl其違反了DMCA的反規(guī)避條款:

此源代碼的明確目的是:1)規(guī)避 YouTube 等授權(quán)流媒體服務(wù)所使用的技術(shù)保護(hù)措施;2)未經(jīng)授權(quán)復(fù)制和分發(fā)會(huì)員公司擁有的音樂視頻和音頻。3)除YouTube外,該源代碼在 GitHub上支持更多網(wǎng)站下載視頻。

但GitHub將YouTube-dl下架,卻激怒了開發(fā)者們,他們?cè)贕itHub上復(fù)制并上傳了大量代碼副本,以此對(duì)該下架行為表示抗議。目前在GitHub上搜索YouTube-dl,相關(guān)結(jié)果高達(dá)4108個(gè)。

后來(lái),GitHub公司法律團(tuán)隊(duì)不得不發(fā)出最新警告,稱如果繼續(xù)發(fā)布代碼副本,可能會(huì)對(duì)其進(jìn)行封號(hào)處理。

請(qǐng)注意,在未遵循流程的情況下重新發(fā)布YouTube-dl代碼副本是違反GitHub平臺(tái)DMCA政策和服務(wù)條款的。如果您在明知違反服務(wù)條款的情況下,繼續(xù)向該存儲(chǔ)庫(kù)提交或發(fā)布相關(guān)內(nèi)容,我們會(huì)將其刪除,并可能中止對(duì)您帳戶的訪問權(quán)限。

雖然造成此次泄露事件的不知名人士并未對(duì)此事公開表態(tài),但有人猜測(cè)稱可能是他對(duì)GitHub下架該項(xiàng)目的報(bào)復(fù)。

另外,在Friedman回應(yīng)泄露事件的帖子下可以看到,不少網(wǎng)友對(duì)GitHub因DMCA協(xié)議而下架YouTube-dl表示不滿。

還有一位用戶表示,GitHub之所以這樣做,很可能是因?yàn)槲④浭荝IAA的成員。他說,DMCA 所要求的下架不是讓代碼版權(quán)所有者本身下架,GitHub作為一家倡導(dǎo)開源的獨(dú)立公司,它不需要遵守RIAA的非法請(qǐng)求。

可以看出,網(wǎng)友們的不滿顯示是因?yàn)榉饨皇屡cGitHub最初的開源初衷背道而馳。

GitHub開源精神惹爭(zhēng)議

2018年,微軟以75億美元的價(jià)格收購(gòu)GitHub。新任 CEO Nat Friedman 曾表示:GitHub 將始終堅(jiān)持開發(fā)者優(yōu)先并獨(dú)立運(yùn)營(yíng)。

Resynth在博客中也表示:微軟一再?gòu)?qiáng)調(diào)致力于開源,這一點(diǎn)我們從很多商業(yè)廣告中經(jīng)常可以看到,它的目的是讓微軟出于開源發(fā)展的最前沿。

但現(xiàn)在來(lái)看,微軟似乎并沒有做到承諾的那樣,而且YouTube-dl也只是最近發(fā)生的一例而已。事實(shí)上,GitHub因?qū)⑵湓创a保密的問題已經(jīng)在業(yè)內(nèi)廣受批評(píng)。

另外,Resynth也提醒稱,這次事件也不得不讓人們擔(dān)心 GitHub 源代碼的安全性。因?yàn)殚]源應(yīng)用程序執(zhí)行的是“隱蔽式安全 (Security By Obscurity)”,即源代碼是隱藏的,目的是降低安全風(fēng)險(xiǎn)。

如果 GitHub 真的公開源代碼,很可能會(huì)損害其整體的安全性。
責(zé)任編輯:pj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9233

    瀏覽量

    85636
  • BUG
    BUG
    +關(guān)注

    關(guān)注

    0

    文章

    155

    瀏覽量

    15681
  • Youtube
    +關(guān)注

    關(guān)注

    0

    文章

    143

    瀏覽量

    15569
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    云服務(wù) Flexus X 實(shí)例:部署 Gitea,擁有自己的 Git 倉(cāng)庫(kù),管理本地代碼

    、零售、金融、游戲等眾多領(lǐng)域的通用工作負(fù)載需求。本文旨在詳細(xì)闡述如何高效利用“云服務(wù) Flexus X 實(shí)例”,包括如何在其中從零開始,通過安裝相關(guān)依賴、安裝 Docker、安裝 Gitea 等步驟,實(shí)現(xiàn)自己的 Git 倉(cāng)庫(kù),管理
    的頭像 發(fā)表于 01-07 16:59 ?76次閱讀
    云服務(wù)<b class='flag-5'>器</b> Flexus X 實(shí)例:部署 Gitea,擁有自己的 <b class='flag-5'>Git</b> 倉(cāng)庫(kù),<b class='flag-5'>管理</b>本地<b class='flag-5'>代碼</b>

    Flexus X 實(shí)例 C#/.Net Core 結(jié)合(git 代碼管理、docker 自定義鏡像)快速發(fā)布部署 - 讓你的項(xiàng)目飛起來(lái)~

    與 Docker 容器化部署,實(shí)現(xiàn)代碼高效管理與無(wú)縫遷移。即刻行動(dòng),讓您的 Web 服務(wù)更加穩(wěn)定、高效,領(lǐng)跑數(shù)字化轉(zhuǎn)型之路! ???本實(shí)驗(yàn)深入演示了如何在 Ubuntu 環(huán)境中,利用 Git 進(jìn)行版本控制
    的頭像 發(fā)表于 12-25 21:15 ?168次閱讀
    Flexus X 實(shí)例 C#/.Net Core 結(jié)合(<b class='flag-5'>git</b> <b class='flag-5'>代碼</b><b class='flag-5'>管理</b>、docker 自定義鏡像)快速發(fā)布部署 - 讓你的項(xiàng)目飛起來(lái)~

    Gmapping源代碼

    Gmapping源代碼.docx
    發(fā)表于 11-16 13:42 ?0次下載

    TLV320AIC31的HPLOUT輸出到音頻管理器,音頻管理器輸出接到耳機(jī),聲音幾乎聽不到怎么處理?

    TLV320AIC31的HPLOUT后面接到音頻管理器的輸入,對(duì)我這邊要求是,匹配阻抗600歐姆時(shí),輸出電壓最大有效值800mv,請(qǐng)問TLV320AIC31的HPLOUT滿足這樣的輸出要求嗎,還是說必須
    發(fā)表于 10-12 07:02

    負(fù)載管理器的主要功能

    負(fù)載管理器(Load Manager)是計(jì)算機(jī)系統(tǒng)中的一個(gè)關(guān)鍵組件,它負(fù)責(zé)分配和管理計(jì)算資源,以確保系統(tǒng)運(yùn)行的效率和穩(wěn)定性。負(fù)載管理器的主要功能包括任務(wù)調(diào)度、資源分配、性能監(jiān)控、故障恢復(fù)等。以下
    的頭像 發(fā)表于 10-10 11:26 ?377次閱讀

    hex可以轉(zhuǎn)成源代碼

    Hex文件可以轉(zhuǎn)換成源代碼的近似形式,但無(wú)法直接還原為原始的、完全相同的源代碼 。這是因?yàn)镠ex文件是二進(jìn)制文件,包含了程序編譯后的機(jī)器碼,這些機(jī)器碼與原始的源代碼在結(jié)構(gòu)和表達(dá)上存在
    的頭像 發(fā)表于 09-02 10:41 ?1089次閱讀

    stm32H7 HAL庫(kù)中存在bug

    stm32H7 hal 庫(kù)里面的以太網(wǎng)代碼,坑了魚鷹很多次(不知道最新版是否已經(jīng)修復(fù)了這些bug),這里分享一篇網(wǎng)上的文章,因?yàn)轸~鷹也遇到過,靠它解決了其中一個(gè)編譯優(yōu)化問題,在此感謝作者。不過hal
    的頭像 發(fā)表于 08-12 17:37 ?1245次閱讀

    企業(yè)如何保護(hù)源代碼安全?做好源代碼防泄密工作

    出現(xiàn)了相似或相同功能的產(chǎn)品。這無(wú)疑引發(fā)了企業(yè)管理者們對(duì)于企業(yè)源代碼數(shù)據(jù)泄漏的深深憂慮。 許多企業(yè)錯(cuò)誤地認(rèn)為,只要采用了版本管理工具如Git或SVN,
    的頭像 發(fā)表于 05-22 16:01 ?472次閱讀

    超級(jí)電容管理器bq33100數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《超級(jí)電容管理器bq33100數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 04-01 10:13 ?2次下載
    超級(jí)電容<b class='flag-5'>管理器</b>bq33100數(shù)據(jù)表

    Windows 11 22H2新版任務(wù)管理器新增啟用隱藏功能

    關(guān)于如何隱藏調(diào)用舊版任務(wù)管理器,網(wǎng)友 @thebookisclosed 分享了詳細(xì)步驟。他指出,在現(xiàn)有 Windows 11 環(huán)境中,即使按 Ctrl+Shift+Esc 組合鍵也難以調(diào)出老版本的任務(wù)管理器,需通過特定路徑“C:\Windows\SysWOW64\Task
    的頭像 發(fā)表于 03-27 15:08 ?500次閱讀

    安卓版Chrome瀏覽現(xiàn)已支持第三方密碼管理器調(diào)用

    據(jù)報(bào)道,數(shù)據(jù)解析專家Leppeva64近日在安卓版谷歌Chrome瀏覽源代碼中透露,該瀏覽已在安卓平臺(tái)上實(shí)現(xiàn)了對(duì)第三方密碼管理器的調(diào)用支持,并覆蓋Stable、Beta及Cana
    的頭像 發(fā)表于 03-19 11:04 ?726次閱讀

    藍(lán)牙 | 軟件:Git管理高通的ChipCode項(xiàng)目

    處理卡住了,我們只能從git下手。Git有優(yōu)秀的項(xiàng)目管理代碼管理的能力,所以學(xué)一學(xué)git來(lái)
    的頭像 發(fā)表于 01-26 08:29 ?416次閱讀
    藍(lán)牙 | 軟件:<b class='flag-5'>Git</b><b class='flag-5'>管理</b>高通的ChipCode項(xiàng)目

    源代碼審計(jì)怎么做?有哪些常用工具

    地匹配、查找。 2、Checkmax:通過虛擬編譯自動(dòng)對(duì)軟件源代碼分析,并建立了代碼元素及代碼元素之間關(guān)系的邏輯圖。 然后對(duì)這個(gè)內(nèi)部代碼
    發(fā)表于 01-17 09:35

    Git開發(fā)者關(guān)注內(nèi)存安全問題,探討引入Rust語(yǔ)言

    根據(jù)最新披露的郵件討論,Git開發(fā)團(tuán)隊(duì)熱議在Git項(xiàng)目中引入Rust的可行性。作為一種開源的分布式代碼版本管理工具,廣泛運(yùn)用于各種開發(fā)項(xiàng)目。盡管現(xiàn)在
    的頭像 發(fā)表于 01-15 14:23 ?638次閱讀
    <b class='flag-5'>Git</b>開發(fā)者關(guān)注內(nèi)存安全問題,探討引入Rust語(yǔ)言

    智能制造行業(yè)--客戶現(xiàn)場(chǎng)調(diào)試源代碼如何防泄密

    的困難,因?yàn)?b class='flag-5'>源代碼研發(fā)員工在工作過程中有一個(gè)版本管理服務(wù),這個(gè)不能完全禁止,也不能完全開放。安秉信息源代碼防泄密方案在前幾期已經(jīng)詳細(xì)的介紹過,可以很好的幫助企業(yè)做
    的頭像 發(fā)表于 01-11 16:27 ?527次閱讀
    智能制造行業(yè)--客戶現(xiàn)場(chǎng)調(diào)試<b class='flag-5'>源代碼</b>如何防泄密