近日,研究人員 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雖然處理事情的方式欠佳,但好在完成了一系列的安全補丁,將損失降到了最低,所以也并不算有重大過錯,
最后,你支持哪一方的觀點,歡迎在下方投票,
更多詳情請點擊鏈接了解
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/301322.html
標籤:其他
