新研究顯示開源軟體為全球96%的現代應用程式提供支援但也存在著擔憂
日前哈佛商學院、哈佛創新科學實驗室、Linux 基金會、OpenSSF (開源安全基金會) 聯合研究撰寫的《免費和開源軟體普查III》發布,此次研究以前兩次研究為基礎,研究構成現代軟體基石的應用程式級組件。
這項研究分析了10,000 家公司使用的超過1,200 萬條開源軟體使用數據,研究團隊與業界合作收集了來自多個平台的匿名數據,分析包括對生產代碼庫的自動掃描和對軟體組合的全面人工審查,從而深入了解開源軟體的使用情況及其在整個軟體供應鏈中的間接依賴。
本次研究發現的特點包括:
- 96% 的程式碼庫中都存在開源元件
- 雲端服務相關的專用包(也就是非開源) 使用量正在急劇增加
- 業界繼續依賴過時的Python 2 導致面臨安全風險
- 自第二次調查以來Rust 採用率激增500%,標誌著向記憶體安全編程的轉變
- 軟體組件缺乏標準化命名增加了安全風險
- 一小部分貢獻者推動了主要的開源軟體,帶來了可持續性方面的擔憂
這份報告目前在Linux 基金會官方網站提供免費下載,有興趣的網友可以查看報告全文:https://www.linuxfoundation.org/research/census-iii?hsLang=en
單一維護者專案的風險暴露:
研究報告指出,40% 的頂級專案只有1~2 名開發者並且貢獻了超過80% 以上的程式碼,貢獻者/ 維護者的高度集中模式代表潛在的安全隱患。
案例是今年的XZ Utils 供應鏈投毒事件,駭客透過頻繁為該專案提交程式碼獲得主要維護者的好感和信任,之後成為維護者後開始在專案中投毒,然後感染了大量的下游專案。
OpenSSF 基金會正在努力解決這類挑戰:確保審查的原始程式碼就是人們正在運行的程式碼。開源軟體的一大優點就是可以進行廣泛審查,從而尋找有意或無意中包含的漏洞。
然而如果審查的內容不是用於構建最終產品的內容那審查就會變得沒有意義,所以現在OpenSSF 的工作就包括強化構建和分發流程,確保現實中運行的程式碼就是已經經過審查的程式碼。
Python 2 屬於老生常談的問題:
Python 基金會在2000 年發布Python 2,在2008 年發布Python 3 系列,目前Python 主要在Python 3.x 系列上更迭。
比較頭痛的是一些行業的Python 2 使用率為20%~30%,使用過時版本的Python 意味著存在安全隱患,但業界暫時也沒有更好的辦法能夠完成新版本更迭。
OpenSSL 認為如果讓新版本升級變得極其容易或許能夠推動開源軟體的新版本採用率,例如在幾乎所有情況下,新版本都應該完全向後相容舊版本,尤其是以前的舊版本,儘管這需要開發者付出額外的努力,但這應該是正確的方法。