從Okta源代碼泄露看GitHub的安全威脅與防護(hù)
日前,知名云身份安全服務(wù)商Okta正式披露其私有GitHub存儲(chǔ)庫(kù)遭到黑客攻擊,部分源代碼遭泄露。盡管Okta公司表示,本次泄露事件不會(huì)造成其客戶的隱私數(shù)據(jù)安全,Okta有充分的技術(shù)手段來(lái)保護(hù)用戶服務(wù)安全。但安全研究人員認(rèn)為,源代碼泄露造成隱形危害在短時(shí)間內(nèi)尚難以準(zhǔn)確評(píng)估。
GitHub擁有9000萬(wàn)活躍用戶,是目前全球最受歡迎的源代碼管理工具。由于它是信息系統(tǒng)底層基礎(chǔ)設(shè)施的重要部分,因此長(zhǎng)期以來(lái)受到非法攻擊團(tuán)伙的重點(diǎn)關(guān)注。本次Okta源代碼泄漏事件,只是近年針對(duì)GitHub代碼庫(kù)非法訪問(wèn)攻擊中的最新案例。Dropbox、Gentoo Linux和微軟的GitHub賬戶之前也都遭受過(guò)類似的攻擊。
攻擊者不僅企圖獲取源代碼,同時(shí)也覬覦代碼中的敏感信息,以便在后續(xù)攻擊活動(dòng)中使用。通過(guò)訪問(wèn)應(yīng)用系統(tǒng)的源代碼,攻擊者可以查找其中的漏洞,然后在后續(xù)攻擊中利用這些漏洞。同時(shí),攻擊者還可以獲取存儲(chǔ)在GitHub中的硬編碼密鑰、密碼及其他憑據(jù),從而訪問(wèn)托管在AWS、Azure或GCP中的云服務(wù)和數(shù)據(jù)庫(kù)。
Okta的GitHub代碼庫(kù)被入侵是一個(gè)教訓(xùn)深刻的例子,表明了保護(hù)企業(yè)內(nèi)部的訪問(wèn)安全到底有多難,但這并不是獨(dú)特的案例。雖然GitHub提供了一些保護(hù)代碼管理庫(kù)應(yīng)用安全的防護(hù)工具,但很多企業(yè)組織并不充分知道如何使用工具。而且遺憾的是,一些最重要的安全功能需要額外付費(fèi)才能夠使用。
不過(guò),以下七個(gè)實(shí)踐經(jīng)驗(yàn)被證明可以提高GitHub的安全性,對(duì)于目前正在應(yīng)用GitHub的企業(yè)組織可以盡快關(guān)注并嘗試應(yīng)用。
1.不要將私人賬戶用于工作
對(duì)于開發(fā)人員,私人GitHub賬戶是其個(gè)人品牌履歷的一部分,可幫助其職業(yè)生涯的晉升和成長(zhǎng)。遺憾的是,這也是如今使用GitHub的組織面臨的最大漏洞之一:它們對(duì)私人賬戶用于工作往往沒(méi)有嚴(yán)格管理。從代碼安全的角度,私人GitHub賬戶不應(yīng)該用于工作,盡管這么做會(huì)帶來(lái)一些便利性,但企業(yè)根本沒(méi)有辦法有效控制誰(shuí)可以訪問(wèn)創(chuàng)建私人GitHub賬戶的私人Gmail地址。
2.通過(guò)單點(diǎn)登錄進(jìn)行身份驗(yàn)證
在GitHub現(xiàn)有的業(yè)務(wù)模式中,用戶需要為集成單點(diǎn)登錄(SSO)服務(wù)支付額外的費(fèi)用。但是從代碼訪問(wèn)安全的角度,企業(yè)應(yīng)該將GitHub連接到組織的SSO系統(tǒng)中,比如Okta、Azure AD或Google Workspace。開發(fā)人員的身份信息應(yīng)該和企業(yè)進(jìn)行鎖定,只允許通過(guò)統(tǒng)一的SSO進(jìn)行身份驗(yàn)證。
3.所有賬戶都采用2FA
在很多企業(yè)的SSO提供程序中,會(huì)設(shè)有豁免組和策略異常處置,這可以使SSO MFA被攻擊者輕松繞過(guò)。因此,當(dāng)企業(yè)通過(guò)SSO執(zhí)行統(tǒng)一的身份驗(yàn)證時(shí),最安全的選擇是對(duì)組織中的所有GitHub用戶都要強(qiáng)制執(zhí)行多因素身份驗(yàn)證2FA,防止繞過(guò)行為的發(fā)生。
4.使用SSH密鑰用于git操作
雖然GitHub通過(guò)個(gè)人訪問(wèn)令牌(PAT)引入了細(xì)粒度權(quán)限控制,但它們?nèi)匀蝗菀自獾骄W(wǎng)絡(luò)釣魚的攻擊,因?yàn)檫@些令牌常常以明文形式存儲(chǔ)。如果使用SSH密鑰對(duì)git操作進(jìn)行身份驗(yàn)證,企業(yè)需要使用完善的PKI來(lái)管理如何配置和提供SSH密鑰,還可以將其與企業(yè)的設(shè)備管理和CA證書有效聯(lián)系起來(lái)。
5.使用角色限制特權(quán)訪問(wèn)
GitHub目前提供了幾種不同的代碼庫(kù)角色,可以基于最小權(quán)限原則進(jìn)行分配。基本權(quán)限可以在組織層面加以控制。在實(shí)際使用中,管理者需要合理分配保障成員高效工作所需的最小權(quán)限角色,盡量避免讓開發(fā)人員擁有高等級(jí)的管理員權(quán)限。
6.嚴(yán)格限制外部合作者使用
與第三方供應(yīng)商合作是管理大型軟件項(xiàng)目的一個(gè)常態(tài)。然而,目前GitHub所能提供的外部合作者管理能力存在較大不足,難以確保企業(yè)的開發(fā)活動(dòng)安全。因此,需要強(qiáng)制要求外部合作者通過(guò)公司的SSO進(jìn)行身份驗(yàn)證,杜絕代碼庫(kù)管理員直接邀請(qǐng)他們?cè)L問(wèn)代碼庫(kù)的情況發(fā)生。
7.審核,分析,再審核
沒(méi)有一家企業(yè)的安全控制策略和措施是完美的,即使制定了再好的GitHub應(yīng)用安全策略,賬戶也會(huì)出現(xiàn)安全疏漏,錯(cuò)誤也會(huì)在所難免。因此,企業(yè)在應(yīng)用GitHub過(guò)程中,要花時(shí)間實(shí)施定期審計(jì)流程,以尋找不安全的休眠賬戶,并限制代碼庫(kù)中特權(quán)角色的數(shù)量。一旦企業(yè)的GitHub環(huán)境被嚴(yán)格保護(hù)后,應(yīng)注意及時(shí)發(fā)現(xiàn)那些違反策略的情況,比如用戶仍然在SSO之外進(jìn)行身份驗(yàn)證,或者沒(méi)有使用2FA。
參考鏈接:https://www.darkreading.com/edge-articles/why-attackers-target-github-and-how-you-can-secure-it















 
 
 













 
 
 
 