Travis CI 漏洞致數千個開源專案機密洩露
近日,研究人員 Felix Lange 爆出 Travis CI 存在嚴重安全漏洞,所有公共開源儲存庫的安全環境變數(簽名秘鑰、訪問憑據和所有公共開源專案的 API tokens 等)都包含到 pull request 構建中,如果這些環境變數被竊取,那麼這一漏洞將導致數千個開源專案的核心被洩露。 |
Travis CI 是一個開源的持續整合構建專案,別具一格地採用了
yaml 格式,累計為超過 90 萬個開源專案和 60 萬使用者提供服務。因為它能與 GitHub 和 Bitbucket 無縫整合,所以目前大多數的 GitHub 專案都已移入到 Travis CI 的構建佇列中。
如下圖所言,當使用者在執行構建時,Travis CI 會將
GitHub 儲存庫克隆到一個全新的虛擬環境中,並執行一系列的任務來構建和測試程式碼。如果其中一個或多個任務失敗,則意味著構建中斷,如果任務全部成功,則意味著構建透過,Travis CI 可以將使用者的程式碼部署到
web 伺服器或應用程式主機上。
在此之前,Travis CI 的文件始終提示使用者:" 加密的環境變數無法從分叉中提取請求,因為存在將此類資訊暴露給未知程式碼的安全風險 "。然而這個漏洞(
CVE-2021-41077)卻出現在了 Travis CI 的啟用過程中,並且嚴重影響了 9 月 3 日至 10 日之間建立的某些特定構建。
在 Travis CI 的啟用過程中,開發者應該新增一個 "
.travis.yml" 檔案到開源專案儲存庫中,這個檔案會告訴 Travis CI 應該做什麼,不應該做什麼,甚至可能包含機密內容,另一個把核心加密的東西是 "
Travis' web UI"。理想狀況下,
Travis 應該阻止公眾訪問任何秘密環境變數,以太坊加密貨幣專案負責人 P é ter Szil á gyi 稱," 安全的環境變數是在
Travis ’ s web UI 上配置的(由 Travis 獨家擁有),然後這些變數會被新增到構建執行的環境中,但僅適用於受信任的程式碼,即已合併的程式碼。外部程式碼 (
PRs ) 不該插入
env 變數,因為維護者無法控制外部人員提交的程式碼,但是 Travis 卻將金鑰注入了不受信任的構建中 "。
在這個漏洞出現 8 天后,Lange 將問題同步給了 Travis 的公司,並建議所有依賴 Travis CI 的專案更換他們的核心 " secret" 。
Travis CI 的 Montana Mendy 則在安全公告中說道," 根據最新報告,從另一個庫分叉出來的公共儲存庫可以提交 pull request(如在 GitHub、 BitBucket、 Assembla 中),在構建的過程中列印一些文件,即使在未授權情況下依然可以訪問原始公共儲存庫,在這種情況下,專案的核心在 Travis CI 資料庫中仍然處於加密狀態。"
9 月 10 日,Travis CI 默默地修補了這個漏洞。
9 月 13 日,Travis CI 釋出了一篇簡短的安全公告,如下圖所示。
在這封公告中,沒有對此次漏洞的分析,沒有安全報告,也沒有警告使用者他們的機密內容可能已經被盜。這種 " 草率敷衍 " 的態度引起了社群的不滿,Szil á gyi 與社群的幾位成員一起抨擊了該公告,網路開發商 Jake Jarvis 稱這是一封 " 令人尷尬的‘安全公告’。"
但是 Travis CI 認為 " 我們已經完成了一系列的安全補丁來解決這件事情,更新機密內容是所有使用者都應該執行的操作 "。
Travis CI 之所以引起社群公憤,在於它並沒有公開透明地將此次的漏洞詳情公之於眾,並將部分責任理所應當地推卸給了專案的開發者,而那封 " 敷衍意味 " 極強的安全公告則更是讓本就岌岌可危的關係雪上加霜。但也有人認為,Travis 雖然處理事情的方式欠佳,但好在完成了一系列的安全補丁,將損失降到了最低,所以也並不算有重大過錯。
最後,你支援哪一方的觀點,歡迎在下方投票。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2840999/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DevOps平臺Travis CI漏洞暴露數千個開源專案敏感資料dev
- 開始使用Travis CI持續整合你的專案吧
- 漏洞利用之資訊洩露
- Facebook指控比基尼照片應用開發商洩露其機密檔案
- 導致資料洩露的 6 個疏忽
- NoSQL資料庫漏洞可導致資料洩露 影響成千上萬Microsoft Azure客戶SQL資料庫ROS
- CSDN明文密碼洩露密碼
- 傳聞美的被病毒勒索千萬美元 | 英特爾處理器曝新型漏洞,可導致機密資料洩露
- Citrix NetScaler多重漏洞導致DoS攻擊和資料洩露
- 蘋果macOS“快速預覽”曝漏洞:洩露加密檔案蘋果Mac加密
- Go Module 匯入到專案內且搭配 Travis CI 或 Drone 工具Go
- objc系列譯文(6.5):為iOS專案搭建Travis CI伺服器OBJiOS伺服器
- AMD、蘋果、高通GPU存在漏洞,可致AI模型訓練資料洩露蘋果GPUAI模型
- 威脅快報|首爆新型TLS 1.2協議漏洞,數千網站面臨資料洩露風險TLS協議網站
- 找個開源專案
- 匿名黑客洩露vBulletin零日漏洞,波及全球數萬站點黑客
- 訊息稱黑客洩露英偉達 75GB 機密檔案,包括 DLSS 原始碼!黑客原始碼
- 什麼是資料洩露?哪些問題可導致資料洩露
- 微軟:微軟帳戶使用洩露密碼達4400萬個微軟密碼
- 解放雙手,基於github travis-ci docker自動化部署java專案GithubDockerJava
- JPEG影象也可導致資料洩露?Facebook修復HHVM伺服器漏洞伺服器
- 順豐“客戶資訊洩露”事發,資料防洩密專家出招防“內鬼”
- 每天數千個漏洞被公開 選什麼工具能讓漏洞追不上我?
- 推特零日漏洞遭利用, 540萬個賬戶資料洩露
- 資源洩露檢測《續》薦
- 持續整合服務 Travis CI 教程
- 開源專案推薦:提高研發效率的5個開源專案
- db link洩露密碼的處理密碼
- Travis CI 配置檔案 .travis.yml 的語法介紹和一些用法舉例
- 企業開源指南:建立一個開源專案
- 分享個 golang 開源小專案Golang
- 開源一個文字分析專案
- 如何熟悉一個開源專案?
- JS敏感資訊洩露:不容忽視的WEB漏洞JSWeb
- 記一次Go websocket 專案記憶體洩露排查 + 使用Go pprof定位記憶體洩露GoWeb記憶體洩露
- 超四成網站存安全漏洞 或致55億條個人資訊存洩露風險網站
- 一個檔案的開源專案,開啟你的開源之旅
- 三星多個專案程式碼洩露 包括SmartThings原始碼和金鑰原始碼