?你的代碼泄露了嗎
譯文就在幾周前,每個(gè)安全分析師都在談?wù)撘粋€(gè)名為 Lapsus$ 的勒索組織:他們竊取并泄露了一些大型科技公司的源代碼,其中包括來(lái)自三星的近200GB 源代碼和微軟必應(yīng)、必應(yīng)地圖以及 Cortana 項(xiàng)目的部分源代碼。而就在幾個(gè)月之前,流媒體平臺(tái)Twitch也遭遇了同樣的命運(yùn)。
過(guò)去幾年中,我們目睹了企業(yè)數(shù)據(jù)庫(kù)在線泄露事件的激增。雖然所有提到的泄密都屬于惡意行為——黑客的動(dòng)機(jī)是通過(guò)表明他已經(jīng)入侵了公司并可以訪問(wèn)數(shù)據(jù)來(lái)向公司施加壓力——但我們不要忘記,錯(cuò)誤發(fā)生的頻率確實(shí)比我們想象的要多,而且悄無(wú)聲息:當(dāng)開(kāi)發(fā)人員以為在私有環(huán)境中工作卻無(wú)意中推送到公共數(shù)據(jù)庫(kù)就足夠了。
不幸的是,除了明顯的聲譽(yù)損害之外,源代碼泄露的問(wèn)題有時(shí)會(huì)被誤解。因此,本文將總結(jié)源代碼泄漏導(dǎo)致的風(fēng)險(xiǎn),但最重要的是,為您提供了解您的公司是否成為受害者的方法。今天將邀請(qǐng)您使用專(zhuān)用的免費(fèi)工具來(lái)評(píng)估您的 GitHub 足跡。
源代碼和知識(shí)產(chǎn)權(quán)
在一個(gè)95% 的 IT 部門(mén)都會(huì)以某種方式依賴(lài)開(kāi)源軟件的世界里,人們很容易忘記,從編寫(xiě)第一行代碼的那一刻起,源代碼就被視為知識(shí)產(chǎn)權(quán),它受版權(quán)保護(hù)。事實(shí)上,包含說(shuō)明版權(quán)所有者和權(quán)限的源代碼文件很常見(jiàn)。
從本質(zhì)上講,源代碼是一種有漏洞的資產(chǎn)。分布式版本控制系統(tǒng)和代碼共享平臺(tái)極大地促進(jìn)了整個(gè)代碼庫(kù)在互聯(lián)網(wǎng)上的擴(kuò)展和應(yīng)用。與此同時(shí),這又推動(dòng)了開(kāi)源社區(qū)的發(fā)展,并取得了巨大的成就。但對(duì)于越來(lái)越多將源代碼作為核心價(jià)值資產(chǎn)的公司來(lái)說(shuō)仍然存在問(wèn)題。因此,確保在全球范圍內(nèi)尊重源代碼版權(quán)已成為一項(xiàng)幾乎不可能完成的任務(wù)。
源代碼還可能包含版權(quán)、專(zhuān)利或商標(biāo)無(wú)法保護(hù)的商業(yè)秘密。在一個(gè)創(chuàng)新和速度至關(guān)重要的行業(yè)中,如果不能對(duì)這些信息保密,對(duì)于一些初創(chuàng)公司來(lái)說(shuō)可能就是游戲的終結(jié)。而對(duì)于較大的企業(yè)來(lái)說(shuō),更好地監(jiān)控和控制源代碼的哪些部分已共享以及與誰(shuí)共享的目的則是為了避免訴訟費(fèi)。
另一個(gè)層面,公開(kāi)的源代碼讓黑客可以深入了解生產(chǎn)環(huán)境中部署的工作負(fù)載,有時(shí)會(huì)服務(wù)于數(shù)百萬(wàn)用戶。這也可能是個(gè)問(wèn)題的。
源代碼中的潛在威脅
代碼相當(dāng)于實(shí)物產(chǎn)品的模型。對(duì)于精通技術(shù)的人來(lái)說(shuō),完全了解大型系統(tǒng)或軟件的內(nèi)部工作原理意味著他們可以輕松地發(fā)現(xiàn)硬編碼憑據(jù)等漏洞。例如,GitGuardian 在掃描三星代碼時(shí)發(fā)現(xiàn)了 6600 多個(gè)密鑰:
“在三星源代碼中發(fā)現(xiàn)的 6,600 多個(gè)密鑰中,大約 90% 用于三星的內(nèi)部服務(wù)和基礎(chǔ)設(shè)施,而另外 10% 至關(guān)重要的是,可以授予對(duì)三星外部服務(wù)或工具(如 AWS、GitHub、Artifactory 和 Google)的訪問(wèn)權(quán)限?!盙itGuardian 的開(kāi)發(fā)者權(quán)益倡導(dǎo)者 Mackenzie Jackson 說(shuō)。
這并不一定意味著黑客可以在泄漏后立即利用機(jī)密、訪問(wèn)控制缺陷和其他安全漏洞。但是,它仍然是他們工具箱中的另一項(xiàng)資產(chǎn)。對(duì)于攻擊者來(lái)說(shuō),一些微弱的信號(hào)甚至可能比業(yè)務(wù)邏輯本身更有價(jià)值,例如開(kāi)發(fā)人員的個(gè)人身份信息 (PII)、習(xí)慣、語(yǔ)言,以及更全球化的公司文化。數(shù)千行代碼可以揭示比我們想象的更多的信息。
如何確定您的源代碼是否泄露?
如前所述,無(wú)論您的企業(yè)過(guò)去是否遭受過(guò)數(shù)據(jù)泄露,您的專(zhuān)有代碼都可能在您不知情的情況下公開(kāi)出現(xiàn)在 GitHub 上。即使您的企業(yè)在該平臺(tái)上沒(méi)有正式亮相,您的開(kāi)發(fā)人員也有可能參與開(kāi)源項(xiàng)目或使用個(gè)人存儲(chǔ)庫(kù)來(lái)共享代碼。
因此,應(yīng)該認(rèn)真對(duì)待您公司在 GitHub 上的信息。威脅情報(bào)應(yīng)該可以解答以下問(wèn)題:互聯(lián)網(wǎng)上可以公開(kāi)哪些資產(chǎn)?它們包括用戶數(shù)據(jù)嗎?它們是否提供了攻擊者可以利用的關(guān)鍵且有效的信息?是否仍然可以控制泄露的資產(chǎn)(例如,通過(guò)啟動(dòng) DMCA 刪除流程)?
從技術(shù)層面講,識(shí)別源代碼泄漏的唯一解決辦法是對(duì)專(zhuān)有代碼進(jìn)行指紋識(shí)別,并將其與公共文件數(shù)據(jù)庫(kù)進(jìn)行比較。這正是 HasMyCodeLeaked 的目的,這是GitGuardian提供的免費(fèi)工具,可幫助任何人快速識(shí)別與知識(shí)產(chǎn)權(quán)相關(guān)的最關(guān)鍵匹配項(xiàng)。該工具的工作原理就是在 GitHub 的公共歷史記錄中精確查找您的代碼指紋(識(shí)別文件的校驗(yàn)和,包括所有修訂版本)。
它將為您生成包含源代碼的所有存儲(chǔ)庫(kù)的可搜索報(bào)告,并通過(guò)智能過(guò)濾來(lái)識(shí)別高風(fēng)險(xiǎn)存儲(chǔ)庫(kù)。
結(jié)論
源代碼泄漏需要被認(rèn)真對(duì)待。它們正在損害您的品牌聲譽(yù),還可能使公司的核心資產(chǎn)面臨風(fēng)險(xiǎn)。雖然 DMCA 刪除請(qǐng)求可以確保從公共平臺(tái)撤回受版權(quán)保護(hù)的內(nèi)容,但商業(yè)機(jī)密仍有可能被泄露,并危及您業(yè)務(wù)中的創(chuàng)新點(diǎn)。在安全方面,它們提供了攻擊者最重視的東西:一個(gè)軟件內(nèi)部工作的完整圖景,包括它的缺陷、流程和所涉及的人員。
隨著代碼共享平臺(tái) GitHub 的爆發(fā)式發(fā)展,監(jiān)控一個(gè)公司的公共足跡已成為威脅情報(bào)分析師最具挑戰(zhàn)的任務(wù)之一。這也是HasMyCodeLeaked的由來(lái),專(zhuān)門(mén)用于幫助您確定知識(shí)產(chǎn)權(quán)是否已泄露的免費(fèi)工具。