開源軟件安全隱患:80% 的第三方庫從未更新
Veracode 最新發(fā)布的一項《State of Software Security v11: Open Source Edition》研究報告指出,現(xiàn)代軟件的表面下存在著安全問題的雷區(qū),有 80% 的第三方庫在被納入代碼庫后從未被開發(fā)者更新過。
該報告基于對 86000 多個軟件庫的 1300 萬次掃描分析,其中包含 301000 多個獨特的庫;同時還調(diào)查了近 2000 名開發(fā)人員,以了解他們?nèi)绾问褂玫谌杰浖eracode 方面稱,盡管超過三分之二的修復(fù)是小事,甚至對最復(fù)雜的軟件應(yīng)用程序的功能也沒有影響。但開源庫不斷發(fā)展,今天看起來安全的東西明天可能就不再安全了,這可能會給軟件供應(yīng)商和用戶帶來巨大的安全風(fēng)險。
研究發(fā)現(xiàn),庫的流行度和漏洞每年都有明顯的波動。例如,2019 年 Ruby 中最受歡迎的五個庫中有四個在 2020 年跌出前 10,而 2019 年 Go 中一些最易受攻擊的庫在 2020 年也變得不再那么容易受攻擊,反之亦然。鑒于幾乎所有的現(xiàn)代應(yīng)用程序都是使用第三方開源軟件構(gòu)建的,一個庫中的單個缺陷或調(diào)整可以連帶到所有使用該代碼的應(yīng)用程序;這也就意味著,這些不斷的變化對軟件安全會產(chǎn)生直接影響。
幾乎所有存儲庫都包含具有至少一個漏洞的庫。Veracode 首席研究官 Chris Eng 解釋稱:“當(dāng)今絕大多數(shù)應(yīng)用程序都使用開源代碼。庫的安全性可能會迅速發(fā)生變化,因此保持應(yīng)用程序中內(nèi)容的最新清單至關(guān)重要。我們發(fā)現(xiàn),一旦開發(fā)人員選擇了一個庫,他們就很少更新它。隨著供應(yīng)商面臨越來越多的對其供應(yīng)鏈安全性的審查,根本無法證明‘set it and forget it’的心態(tài)是合理的。至關(guān)重要的是,開發(fā)人員必須讓這些組件保持最新狀態(tài),并在發(fā)現(xiàn)新漏洞時迅速做出響應(yīng)。”
此外,盡管軟件環(huán)境是動態(tài)的,但開發(fā)人員在將開源庫納入軟件應(yīng)用程序后,往往不會更新它們。而缺乏對易受攻擊的庫與他們的應(yīng)用程序之間關(guān)系的上下文理解,也可能會造成一些限制。報告指出,缺乏信息的開發(fā)者將需要七個多月的時間來修復(fù) 50% 的缺陷;但當(dāng)他們有了正確的信息和指導(dǎo)時,時間則會大幅減少至三周。
且當(dāng)發(fā)現(xiàn)存在漏洞的庫時,他們可以迅速做出反應(yīng),在一小時內(nèi)解決 17% 的缺陷,在一周內(nèi)解決 25% 的缺陷。因此,當(dāng)及時提供準確的信息時,開發(fā)人員可以適當(dāng)?shù)卮_定安全的優(yōu)先次序,并快速修補漏洞。
其他主要發(fā)現(xiàn)包括:
-
92% 的開源庫缺陷可以通過更新修復(fù),69% 的更新只是較小的版本更改或更小;
-
即使一個開源庫的更新產(chǎn)生了額外的更新,只要其中近三分之二是次要的版本更改,那么即使是最復(fù)雜的應(yīng)用程序也不太可能破壞其功能;
-
接受調(diào)查的開發(fā)人員中只有 52% 有選擇第三方庫的正式流程,而超過四分之一的人不確定,甚至不知道是否有正式流程;
-
選擇 library 時,“Security”僅排在第三位,而“Functionality”和“Licensing”分別占據(jù)了第一和第二位。