信息來源:安全內參
本周二,安全研究人員發(fā)現(xiàn)流行的持續(xù)集成開發(fā)工具Travis CI發(fā)生大規(guī)模賬戶泄露,超過7.7億條Travis CI免費版用戶日志數(shù)據(jù)以明文方式泄露,其中包含大量敏感機密信息(開發(fā)令牌、云服務憑證等),包括Github、Docker的數(shù)以萬計的開源項目開發(fā)賬戶受到影響。
Aqua Security公司Nautilus團隊的研究人員報告稱,一個幫助開源開發(fā)人員開發(fā)和測試軟件的服務——Travis CI(持續(xù)集成開發(fā)工具)的API正在泄露數(shù)以萬計的身份令牌和其他安全敏感機密。安全專家在一份新報告中表示,其中許多泄露信息允許黑客訪問Github、Docker、AWS和其他代碼存儲庫上開發(fā)人員的私人賬戶。
Travis CI是一種被稱為持續(xù)集成的越來越流行的敏捷開發(fā)工具,通??s寫為CI,它使開發(fā)和測試代碼變更的過程自動化,已經(jīng)成為現(xiàn)代開發(fā)和云原生應用程序管道的重要組成部分。
CI對于每次代碼更改,都會定期構建、測試代碼并將其合并到共享存儲庫中。CI環(huán)境通常存儲許多敏感信息,例如訪問令牌,以自動訪問云或管道中的其他組件。在某些情況下,這些訪問令牌被設置為具有讀取、寫入、管理等的高權限。此類訪問令牌如果失竊,可能導致數(shù)據(jù)泄露、帳戶接管,甚至跨多個云帳戶橫向移動。
大規(guī)模供應鏈攻擊的潘多拉盒子被打開
至少自2015年以來,Travis CI就持續(xù)曝出第三方開發(fā)人員憑據(jù)的可用性問題。當時,安全漏洞服務平臺HackerOne報告說,Travis CI暴露了其開發(fā)人員的一個訪問令牌時,導致HackerOne的一個Github帳戶被入侵。類似的數(shù)據(jù)泄露事件在2019年和2021年再次出現(xiàn)。
泄露的開發(fā)人員訪問令牌可被用來(未授權)讀取或修改存儲在存儲庫中的代碼,而這些Github存儲庫負責分發(fā)大量正在進行的軟件應用程序和代碼庫。未經(jīng)授權訪問此類項目的能力為攻擊者打開了大規(guī)模供應鏈攻擊的大門,攻擊者可以通過篡改存儲庫中的應用程序來從上游對大量依賴生產服務器中的應用程序的項目發(fā)動攻擊。
Aqua Security公司Nautilus團隊的研究人員報告稱,盡管這是一個已知的安全問題,但泄漏仍在繼續(xù)。研究人員使用Travis CI API訪問分兩批采集了從2013年到2022年5月的大量明文日志數(shù)據(jù),數(shù)量分別為4.28億和7.7億條。研究人員僅對其中一小部分數(shù)據(jù)進行采樣分析就發(fā)現(xiàn)了7.3萬個令牌、機密信息、和各種證書。
“這些訪問密鑰和憑證與流行的云服務提供商相關聯(lián),包括GitHub、AWS和Docker Hub,”Aqua Security說?!肮粽呖梢允褂眠@些敏感數(shù)據(jù)發(fā)起大規(guī)模網(wǎng)絡攻擊并在云中橫向移動。任何曾經(jīng)使用過Travis CI的人都有可能被暴露,因此我們建議立即輪換您的密鑰?!?
暴露的訪問令牌樣本(上圖)包括:
-
GitHub的訪問令牌,可能允許對代碼存儲庫進行特權訪問
-
AWS訪問密鑰
-
一組憑據(jù),通常是電子郵件或用戶名和密碼,可訪問MySQL和PostgreSQL等數(shù)據(jù)庫
-
Docker Hub密碼,如果未激活MFA(多因素身份驗證),可能會導致帳戶被接管
下圖為開源項目賬戶泄露的分布情況:
數(shù)千個GitHub令牌泄露
Aqua Security研究人員補充說:
我們發(fā)現(xiàn)了數(shù)千個GitHub OAuth令牌。可以肯定地假設其中至少有10-20%是有效可用的,特別是那些在最近的日志中發(fā)現(xiàn)的。我們在云實驗室中模擬了一個橫向移動場景,它基于這個初始訪問場景:
1.通過公開的Travis CI日志提取GitHub OAuth令牌。
2.使用公開的令牌在私有代碼存儲庫中發(fā)現(xiàn)敏感數(shù)據(jù)(即AWS訪問密鑰)。
3.使用AWS S3存儲桶服務中的AWS訪問密鑰進行橫向移動嘗試。
4.通過枚舉發(fā)現(xiàn)云存儲對象。
5.數(shù)據(jù)從目標的S3泄露到攻擊者的S3。
對于Aqua Security的安全報告,Travis CI目前沒有公開回復。鑒于這種暴露的反復出現(xiàn),開發(fā)人員應定期主動輪換訪問令牌和其他憑據(jù)。此外,還應該定期掃描代碼工件,以確保它們不包含憑據(jù)。