開源供應鏈:一個有關信任的問題
共同作者:Curtis Franklin, Jr
開源軟體通常被認為比專有軟體更安全、更有保障,因為如果用戶願意,他們可以從源代碼編譯軟體。他們知道在他們環境中運行的代碼的來源。在他們的環境中運行的代碼每個部分都可以被審查,也可以追溯每段代碼的開發者。
然而,用戶和提供者們正在逐漸遠離完全控制軟體所帶來的複雜性,而在轉而追求軟體的便捷和易用。
VMware 副總裁兼首席開源官 Dirk Hohndel 說:「當我看到在一個有關網路安全和隱私的講座中,演講者運行 docker run
命令來安裝和運行一些從互聯網上下載的隨機二進位文件時,我經常會大吃一驚。這兩件事似乎有點相左。」
軟體供應鏈,即將應用程序從編碼、打包、分發到最終用戶的過程是相當複雜的。如果其中有一環出現錯誤,可能會導致軟體存在潛在的風險,特別是對於開源軟體。一個惡意行為者可以訪問後端,並在用戶不知情或不受控的情況下向其插入任何可能的惡意代碼。
這樣的問題不單單存在於雲原生領域,在現代應用開發中很常見,這包括 JavaScript、NPM、PyPI、RubyGems 等等。甚至連 Mac 上的 Homebrew 過去也是通過源代碼提供,由用戶自己編譯。
「如今,你只需要下載二進位文件並安裝它,並期望其源代碼並沒有被惡意修改過。」Hohndel 說,「作為一個行業,我們需要更加關注我們的開源代碼供應。這對我來說是非常重要的事,我正努力讓更多的人意識到其重要性。」
然而,這不僅僅是一個二進位與源代碼的關係。只運行一個二進位文件,而不必從源代碼構建所有東西有著巨大的優勢。當軟體開發需求發生轉變時候,這種運行方式允許開發人員在過程中更加靈活和響應更快。通過重用一些二進位文件,他們可以在新的開發和部署中快速地循環。
Hohndel 說:「如果有辦法向這些軟體添加簽名,並建立一個『即時』驗證機制,讓用戶知道他們可以信任此軟體,那就更好了。」
Linux 發行版解決了這個問題,因為發行版充當了看門人的角色,負責檢查進入受支持的軟體存儲庫的軟體包的完整性。
「像通過 Debian 等發行版提供的軟體包都使用了密鑰簽名。要確保它確實是發行版中應包含的軟體,需要進行大量工作。開發者們通過這種方式解決了開源供應鏈問題。」Hohndel 說。
但是,即使在 Linux 發行版上,人們也希望簡化事情,並以正確性和安全性換取速度。現在,諸如 AppImage、Snap 和 Flatpack 之類的項目已經採用了二進位方式,從而將開源供應鏈信任問題帶入了 Linux 發行版。這和 Docker 容器的問題如出一轍。
「理想的解決方案是為開源社區找到一種設計信任系統的方法,該系統可以確保如果二進位文件是用受信任網路中的密鑰簽名的,那麼它就可以被信任,並允許我們可靠地返回源頭並進行審核,」 Hohndel 建議。
但是,所有這些額外的步驟都會產生成本,大多數項目開發者要麼不願意,或無力承擔。一些項目正在嘗試尋找解決該問題的方法。例如,NPM 已開始鼓勵提交軟體包的用戶正確認證和保護其賬戶安全,以提高平台的可信度。
開源社區善於解決問題
Hohndel 致力於解決開源供應鏈問題,並正試圖讓更多開發者意識到其重要性。去年,VMware 收購了 Bitnami,這為管理由 VMware 所簽名的開源軟體提供了一個良機。
「我們正在與各種上游開源社區進行交流,以提高對此的認識。我們還在討論技術解決方案,這些方案將使這些社區更容易解決潛在的開源供應鏈問題。」 Hohndel 說。
開源社區歷來致力於確保軟體質量,這其中也包括安全性和隱私性。不過,Hohndel 說:「我最擔心的是,在對下一個新事物感到興奮時,我們經常忽略了需要的基礎工程原則。」
最終,Hohndel 認為答案將來自開源社區本身。 「開源是一種工程方法論,是一種社會實驗。開源就是人們之間相互信任、相互合作、跨國界和公司之間以及競爭對手之間的合作,以我們以前從未有過的方式。」他解釋說。
via: https://www.linux.com/articles/open-source-supply-chain-a-matter-of-trust/
作者:Swapnil Bhartiya 選題:lujun9972 譯者:Kevin3599 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive