是時候重視GitHub的安全威脅了
安全運營團隊通常都忙于處理惡意軟件、網(wǎng)絡釣魚和DDoS攻擊。但IT領(lǐng)域有塊地方卻是盡管有數(shù)據(jù)泄露、信譽損失、競爭優(yōu)勢喪失的風險,很多安全運營團隊卻都沒有給予足夠監(jiān)管的。
GitHub是超級流行的源代碼管理平臺,公司和個人都在用GitHub存儲和管理源代碼,保持軟件開發(fā)項目平穩(wěn)進行。GitHub以其實用的功能和用戶友好的界面攀上了全球最大代碼倉庫的位置,如今其上托管著超過8000萬源代碼庫。Facebook、谷歌和微軟的部分重要軟件項目也用到了GitHub。
GitHub無疑是成功案例。為什么安全運營團隊需要多加注意呢?
這是因為,GitHub如此流行,公司研發(fā)團隊極有可能把一些項目也放到了GitHub上。但過去幾年的事實已經(jīng)證明,某些開發(fā)人員那漫不經(jīng)心的GitHub使用習慣會產(chǎn)生嚴重的安全風險。即便開發(fā)人員遵循最佳實踐,用Fortify一類的源代碼分析工具檢查過提交源碼中是否存在安全漏洞,這些風險依然存在。
漫不經(jīng)心的安全操作本身就足夠危險。而在黑客死死盯上這個管理松散的系統(tǒng)時,風險就更大了。
為什么黑客會盯上GitHub
原因有很多:
1. 源代碼
存儲在GitHub上的軟件是很有價值的知識產(chǎn)權(quán)。將這些代碼復制下來有可能讓其他公司甚至民族國家快速研發(fā)出派生應用,節(jié)省幾年甚至幾十年的研發(fā)時間,或者不付版權(quán)費就利用了別人的商業(yè)秘密。黑客還可以盜取源代碼轉(zhuǎn)賣到暗網(wǎng)。
2. 攻擊方法
源代碼可能為黑客提供攻擊生產(chǎn)環(huán)境中軟件的思路。盜取源代碼能賦予他們時間去研究和查找漏洞,比通過滲透要簡單得多。他們甚至可以在生產(chǎn)環(huán)境中運行代碼并嘗試攻擊,不斷精煉攻擊,提升攻擊速度、隱蔽性和有效性。
3. 登錄憑證
提交到GitHub上的代碼和支持文件有時候一不小心就包含了登錄其他服務的憑證,比如登錄AWS的。黑客獲取到這些代碼,也就獲得了相關(guān)服務的訪問權(quán),有了盜取更多數(shù)據(jù)和中斷運營的機會。
4. 未授權(quán)訪問
開發(fā)人員通常都會有以個人郵箱賬戶登錄公司代碼庫的權(quán)限。這些賬戶就是漏洞,尤其是在開發(fā)人員離職后。另外,開發(fā)人員手里的權(quán)限往往還是公司所有代碼庫的,而不僅僅是自己負責的項目的,這就留下了巨大的攻擊界面。
5. 內(nèi)部人威脅
主動監(jiān)視的缺乏可使得惡意內(nèi)部人易于隱藏異常行為。某個開發(fā)人員訪問幾十個代碼庫就是內(nèi)部人威脅的征兆,而此類行為應被檢測并標記。
2016年Uber托管在GitHub上的源碼庫被滲透時,黑客收獲的贓物中有一部分就是登錄憑證。攻擊者不僅僅拿到了先進的知識產(chǎn)權(quán);還挖到了內(nèi)含700萬Uber司機和5000萬客戶個人信息的AWS憑證。這些個人數(shù)據(jù)中包括了姓名、地址、駕照等等信息。
二、應對GitHub帶來的安全威脅
幸運的是,安全運營團隊可以采取一些實用措施來收緊公司GitHub代碼庫的安全。比如:
1. 清理登錄憑證
提醒開發(fā)人員留心自己的GitHub登錄憑證。項目的訪問權(quán)限只對參與項目的開發(fā)人員開放。當開發(fā)人員脫離項目,憑證應被撤銷。
2. 反復檢查代碼庫設置
GitHub背后的軟件——軟件版本控制程序Git,原本是用來管理Linux內(nèi)核開發(fā)的。無論Git還是GitHub,在開源項目中的應用都很廣。一些開發(fā)人員,尤其是那些開源項目貢獻者,基本將所有GitHub代碼庫都當成公共的,也不管項目是否真的開源。最好反復檢查一下公司的GitHub配置,確保項目訪問權(quán)是否超出了所需范圍。
3. 公開代碼中不混入秘密
提醒開發(fā)人員不要將登錄憑證和其他高度敏感的信息混入了代碼、GitHub項目介紹頁或其他外部人可以訪問的GitHub內(nèi)容。自Uber數(shù)據(jù)泄露事件之后,GitHub就敦促開發(fā)人員小心對待此事,但來自安全運營團隊的定期提醒永遠不多余。
4. 監(jiān)測GitHub上的可疑行為
哪些行為是可疑的?代碼提交的激增、授權(quán)某人下載超大量源代碼、不正常位置的登錄、公司外部用戶的登錄或請求等等。
5. 收集GitHub日志
持續(xù)監(jiān)視GitHub的最佳方式,是收集公司代碼庫GitHub數(shù)據(jù)的日志。從現(xiàn)在開始收集也為時不晚。
6. 對GitHub行為做個基線安全評估
可以用工具分析GitHub日志中報告的行為,定義出正常行為的基線,讓未來的異常行為檢測更加容易。
7. 自動化GitHub日志監(jiān)視
你會想要持續(xù)監(jiān)視GitHub行為以確保公司源代碼安全,保證外部人沒有滲透你的代碼庫。寫腳本來自動化這一工作,或者找個預置了自動化的解決方案都可以。
軟件代碼是公司最有價值資產(chǎn)之一。將GitHub納入公司安全運營團隊常規(guī)威脅追捕工作不僅僅可以保護該有價值資產(chǎn),還可以保住公司的信譽和競爭優(yōu)勢。