華文網

是時候重視GitHub的安全威脅了

安全運營團隊通常都忙於處理惡意軟體、網路釣魚和DDoS攻擊。

但IT領域有塊地方卻是儘管有資料洩露、信譽損失、競爭優勢喪失的風險,很多安全運營團隊卻都沒有給予足夠監管的。

GitHub是超級流行的原始程式碼管理平臺,公司和個人都在用GitHub存儲和管理原始程式碼,保持軟體發展專案平穩進行。GitHub以其實用的功能和使用者友好的介面攀上了全球最大代碼倉庫的位置,

如今其上託管著超過8000萬原始程式碼庫。Facebook、穀歌和微軟的部分重要軟體專案也用到了GitHub。

GitHub無疑是成功案例。為什麼安全運營團隊需要多加注意呢?

這是因為,GitHub如此流行,公司研發團隊極有可能把一些項目也放到了GitHub上。但過去幾年的事實已經證明,某些開發人員那漫不經心的GitHub使用習慣會產生嚴重的安全風險。

即便開發人員遵循最佳實踐,用Fortify一類的原始程式碼分析工具檢查過提交源碼中是否存在安全性漏洞,這些風險依然存在。

漫不經心的安全操作本身就足夠危險。而在駭客死死盯上這個管理鬆散的系統時,風險就更大了。

為什麼駭客會盯上GitHub

原因有很多:

原始程式碼

存儲在GitHub上的軟體是很有價值的智慧財產權。將這些代碼複製下來有可能讓其他公司甚至民族國家快速研發出派生應用,

節省幾年甚至幾十年的研發時間,或者不付版權費就利用了別人的商業秘密。駭客還可以盜取原始程式碼轉賣到暗網。

攻擊方法

原始程式碼可能為駭客提供攻擊生產環境中軟體的思路。盜取原始程式碼能賦予他們時間去研究和查找漏洞,比通過滲透要簡單得多。他們甚至可以在生產環境中運行代碼並嘗試攻擊,不斷精煉攻擊,提升攻擊速度、隱蔽性和有效性。

登錄憑證

提交到GitHub上的代碼和支援檔有時候一不小心就包含了登錄其他服務的憑證,比如登錄AWS的。駭客獲取到這些代碼,也就獲得了相關服務的訪問權,有了盜取更多資料和中斷運營的機會。

未授權訪問

開發人員通常都會有以個人郵箱帳戶登錄公司代碼庫的許可權。這些帳戶就是漏洞,尤其是在開發人員離職後。另外,開發人員手裡的許可權往往還是公司所有代碼庫的,

而不僅僅是自己負責的專案的,這就留下了巨大的攻擊介面。

內部人威脅

主動監視的缺乏可使得惡意內部人易於隱藏異常行為。某個開發人員訪問幾十個代碼庫就是內部人威脅的徵兆,而此類行為應被檢測並標記。

2016年Uber託管在GitHub上的源碼庫被滲透時,駭客收穫的贓物中有一部分就是登錄憑證。攻擊者不僅僅拿到了先進的智慧財產權;還挖到了內含700萬Uber司機和5000萬客戶個人資訊的AWS憑證。這些個人資料中包括了姓名、位址、駕照等等資訊。

應對GitHub帶來的安全威脅

幸運的是,安全運營團隊可以採取一些實用措施來收緊公司GitHub代碼庫的安全。比如:

清理登錄憑證

提醒開發人員留心自己的GitHub登錄憑證。專案的存取權限只對參與專案的開發人員開放。當開發人員脫離專案,憑證應被撤銷。

反復檢查代碼庫設置

GitHub背後的軟體——軟體版本控制程式Git,原本是用來管理Linux內核開發的。無論Git還是GitHub,在開源項目中的應用都很廣。一些開發人員,尤其是那些開源項目貢獻者,基本將所有GitHub代碼庫都當成公共的,也不管專案是否真的開源。最好反復檢查一下公司的GitHub配置,確保專案訪問權是否超出了所需範圍。

公開代碼中不混入秘密

提醒開發人員不要將登錄憑證和其他高度敏感的資訊混入了代碼、GitHub項目介紹頁或其他外部人可以訪問的GitHub內容。自Uber資料洩露事件之後,GitHub就敦促開發人員小心對待此事,但來自安全運營團隊的定期提醒永遠不多餘。

監測GitHub上的可疑行為

哪些行為是可疑的?代碼提交的激增、授權某人下載超大量原始程式碼、不正常位置的登錄、公司外部用戶的登錄或請求等等。

收集GitHub日誌

持續監視GitHub的最佳方式,是收集公司代碼庫GitHub資料的日誌。從現在開始收集也為時不晚。

對GitHub行為做個基線安全評估

可以用工具分析GitHub日誌中報告的行為,定義出正常行為的基線,讓未來的異常行為檢測更加容易。

自動化GitHub日誌監視

你會想要持續監視GitHub行為以確保公司原始程式碼安全,保證外部人沒有滲透你的代碼庫。寫腳本來自動化這一工作,或者找個預置了自動化的解決方案都可以。

軟體代碼是公司最有價值資產之一。將GitHub納入公司安全運營團隊常規威脅追捕工作不僅僅可以保護該有價值資產,還可以保住公司的信譽和競爭優勢。

這些個人資料中包括了姓名、位址、駕照等等資訊。

應對GitHub帶來的安全威脅

幸運的是,安全運營團隊可以採取一些實用措施來收緊公司GitHub代碼庫的安全。比如:

清理登錄憑證

提醒開發人員留心自己的GitHub登錄憑證。專案的存取權限只對參與專案的開發人員開放。當開發人員脫離專案,憑證應被撤銷。

反復檢查代碼庫設置

GitHub背後的軟體——軟體版本控制程式Git,原本是用來管理Linux內核開發的。無論Git還是GitHub,在開源項目中的應用都很廣。一些開發人員,尤其是那些開源項目貢獻者,基本將所有GitHub代碼庫都當成公共的,也不管專案是否真的開源。最好反復檢查一下公司的GitHub配置,確保專案訪問權是否超出了所需範圍。

公開代碼中不混入秘密

提醒開發人員不要將登錄憑證和其他高度敏感的資訊混入了代碼、GitHub項目介紹頁或其他外部人可以訪問的GitHub內容。自Uber資料洩露事件之後,GitHub就敦促開發人員小心對待此事,但來自安全運營團隊的定期提醒永遠不多餘。

監測GitHub上的可疑行為

哪些行為是可疑的?代碼提交的激增、授權某人下載超大量原始程式碼、不正常位置的登錄、公司外部用戶的登錄或請求等等。

收集GitHub日誌

持續監視GitHub的最佳方式,是收集公司代碼庫GitHub資料的日誌。從現在開始收集也為時不晚。

對GitHub行為做個基線安全評估

可以用工具分析GitHub日誌中報告的行為,定義出正常行為的基線,讓未來的異常行為檢測更加容易。

自動化GitHub日誌監視

你會想要持續監視GitHub行為以確保公司原始程式碼安全,保證外部人沒有滲透你的代碼庫。寫腳本來自動化這一工作,或者找個預置了自動化的解決方案都可以。

軟體代碼是公司最有價值資產之一。將GitHub納入公司安全運營團隊常規威脅追捕工作不僅僅可以保護該有價值資產,還可以保住公司的信譽和競爭優勢。