首頁 > 科技

開源軟體安全隱患:80% 的第三方庫從未更新

2021-06-24 10:42:48

出品|開源中國

文|白開水

Veracode 最新發布的一項《State of Software Security v11: Open Source Edition》研究報告指出,現代軟體的表面下存在著安全問題的雷區,有 80% 的第三方庫在被納入程式碼庫後從未被開發者更新過。

該報告基於對 86000 多個軟體庫的 1300 萬次掃描分析,其中包含 301000 多個獨特的庫;同時還調查了近 2000 名開發人員,以瞭解他們如何使用第三方軟體。Veracode 方面稱,儘管超過三分之二的修復是小事,甚至對最複雜的軟體應用程式的功能也沒有影響。但開源庫不斷髮展,今天看起來安全的東西明天可能就不再安全了,這可能會給軟體供應商和使用者帶來巨大的安全風險。

研究發現,庫的流行度和漏洞每年都有明顯的波動。例如,2019 年 Ruby 中最受歡迎的五個庫中有四個在 2020 年跌出前 10,而 2019 年 Go 中一些最易受攻擊的庫在 2020 年也變得不再那麼容易受攻擊,反之亦然。鑑於幾乎所有的現代應用程式都是使用第三方開源軟體構建的,一個庫中的單個缺陷或調整可以連帶到所有使用該程式碼的應用程式;這也就意味著,這些不斷的變化對軟體安全會產生直接影響。

幾乎所有儲存庫都包含具有至少一個漏洞的庫。Veracode 首席研究官 Chris Eng 解釋稱:「當今絕大多數應用程式都使用開原始碼。庫的安全性可能會迅速發生變化,因此保持應用程式中內容的最新清單至關重要。我們發現,一旦開發人員選擇了一個庫,他們就很少更新它。隨著供應商面臨越來越多的對其供應鏈安全性的審查,根本無法證明‘set it and forget it’的心態是合理的。至關重要的是,開發人員必須讓這些元件保持最新狀態,並在發現新漏洞時迅速做出響應。」

此外,儘管軟體環境是動態的,但開發人員在將開源庫納入軟體應用程式後,往往不會更新它們。而缺乏對易受攻擊的庫與他們的應用程式之間關係的上下文理解,也可能會造成一些限制。報告指出,缺乏資訊的開發者將需要七個多月的時間來修復 50% 的缺陷;但當他們有了正確的資訊和指導時,時間則會大幅減少至三週。

且當發現存在漏洞的庫時,他們可以迅速做出反應,在一小時內解決 17% 的缺陷,在一週內解決 25% 的缺陷。因此,當及時提供準確的資訊時,開發人員可以適當地確定安全的優先次序,並快速修補漏洞。

其他主要發現包括:

  • 92% 的開源庫缺陷可以通過更新修復,69% 的更新只是較小的版本更改或更小;

  • 即使一個開源庫的更新產生了額外的更新,只要其中近三分之二是次要的版本更改,那麼即使是最複雜的應用程式也不太可能破壞其功能;

  • 接受調查的開發人員中只有 52% 有選擇第三方庫的正式流程,而超過四分之一的人不確定,甚至不知道是否有正式流程;

  • 選擇 library 時,「Security」僅排在第三位,而「Functionality」和「Licensing」分別佔據了第一和第二位。


IT145.com E-mail:sddin#qq.com