91%的商業App包含過時或廢棄的開源組件 | 2020 OSSRA 開源安全和風險報告

開源組件在當今軟件生態系統中扮演了關鍵角色,Synopsys於5月12日發佈了 2020開源安全與風險分析報告,該報告強調了商業應用程序中開源軟件使用的趨勢和模式,也提供了有用的見解和建議來幫助組織更好地對他們的軟件風險進行管理。

根據5月12日Synopsys發佈的 2020開源安全與風險分析報告,如今幾乎所有商業軟件中都存在過時或廢棄的開源組件,這會導致面向企業和消費者的許多應用程序都面臨安全問題、違反許可和運維威脅等各種風險。

Synopsys的研究人員分析了超過1250個商業代碼庫。Synopsys的網絡安全研究中心(CyRC)審查了由Black Duck審計服務團隊所執行的基於代碼基的審計。

該報告強調了商業應用程序中開源軟件使用的趨勢和模式。這份2020年的OSSRA報告再次肯定了開源組件在當今軟件生態系統中扮演的關鍵角色。

Synopsys發現,在過去一年所審計的代碼庫中,有99%的代碼庫至少包含一個開源組件。總體而言,開源組件佔據了代碼總量70%的內容。

2020 OSSRA報告中所代表的行業,其中百分比反映了按行業劃分的代碼庫中的開源內容佔比

該報告特別強調了有很多過時或廢棄的開源組件竟然還在廣泛地被各行業持續使用,而這些老舊開源組件要麼已經過期超過四年,要麼在過去兩年沒有任何開發活動。

Synopsys網絡安全研究中心的首席安全戰略官Tim Mackey針對該觀察表示:“如今我們很難忽視開源在現代軟件開發和部署中的重要作用,但是,從安全和許可合規的角度來看人們卻往往很容易忽略這些開源組件對應用程序所產生的風險影響。”

他告訴LinuxInsider新聞網站,這份2020年OSSRA報告強調了組織如何奮力掙扎着試圖去高效地跟蹤和管理他們的開源風險。這些艱難的掙扎包括維護準確無誤的第三方軟件組件清單以及開源代碼依賴關係。

他說:“在多個層面上,保持開源組件的及時更新都是解決應用程序風險的一個關鍵起點。”

重要發現

根據Synopsys的說法,在今年的分析中,最令人擔憂的趨勢是由非託管的開源代碼所帶來的不斷增長的安全風險。代碼審計顯示,75%的代碼庫包含具有已知安全漏洞的開源組件。

這一數字高於去年報告,2019年報告中這樣的代碼庫比例還是60%。類似的,今年審計中發現49%的代碼庫包含高風險漏洞,而去年這一比例僅爲40%。

隨着商業軟件使用越來越多的開源軟件,非託管開源代碼帶來的隱患也與日俱增。

根據今年的Syopsys報告顯示,在所有被審計的代碼庫中,有99%的代碼庫至少包含一個開源組件,而每個代碼庫平均包含445個開源組件。這與2018年報告顯示的每個代碼庫平均包含298個開源組件相比,數量有了顯著的增長。在所有被審計的代碼中,有70%的內容被認定爲開源代碼,這一比例也高於2018年60%的比例,而2015年這個比例還是36%,這幾年來這一比例幾乎翻了一番。

變化趨勢

Mackey說,與去年的分析結果相比,今年的報告顯示了一些意想不到的發展,既有好的結果,也有壞的結果。

他說:“我們在今年的報告中既看到了總體安全趨勢的變化,同時也看到了一些跡象顯示出相關的監管流程並沒有亦步亦趨地跟上大幅增加的使用量。”

好消息是,今年是該機構首次沒有發現底層數據存在“心臟出血漏洞”(HeartBleed vulnerability)。這表明,儘管仍然存在長尾效應,但是一些措施已經開始產生效果,這些措施要麼是進行了代碼重構工作,要麼是提高了對高危漏洞的認識。

另一方面,壞消息是,隨着開源代碼使用量的增加,商業軟件中未修補的漏洞數量也在增加,這說明當前對開源代碼的使用依然主要依賴於手動處理。Mackey解釋說,由於現在報告漏洞的各種機構越來越多,所以漏洞的數量有明顯增長,在這個趨勢下商業軟件中的漏洞當然也會增加。

最終的結果是,如果企業沒有采用自動解決方案來過濾不適用於自己的“通用漏洞披露(CVE)”,他們就不得不根據最新的漏洞報告一次又一次地去執行測試,哪怕是自身應用程序或系統集成不太可能中招的那些漏洞。

風險趨勢

通過代碼審計所發現的最值得注意的開源風險趨勢總結如下:

91%的代碼庫所包含的組件要麼已經過期超過四年,要麼在過去兩年沒有任何開發活動。除了讓安全漏洞存在的可能性增加之外,使用過時的開源組件的風險還在於,對它們進行更新也會引入一些不需要的功能或兼容性問題。

對易受攻擊的開源組件的使用再次呈現上升趨勢。包含易受攻擊的開源組件的代碼庫的比例曾經從2017年的78%下降到2018年的60%,而在2019年這一比例又上升到75%。

類似地,包含高風險漏洞的代碼庫比例從2018年的40%上升到2019年的49%。

但在2019年進行審計的代碼庫中,沒有一個遭受了臭名昭著的“心臟出血漏洞”或2017年曾困擾Equifax的Apache Struts等高危漏洞的影響。

對知識產權和許可的威脅

報告指出,大量使用非託管的開源組件也可能導致產品的知識產權面臨風險。儘管開源軟件以免費著稱,但這些代碼也和商業代碼一樣,同樣受某些許可協議的約束和監管。

研究人員發現,68%的代碼庫中存在着某種形式的開源許可衝突。而33%的代碼庫還含有沒有可識別許可的開源組件。

該報告得出的結論是,如今安全漏洞已經成爲各類軟件的一個主要問題。現在將近一半的代碼庫中包含高風險的漏洞。

其中有大約73%的漏洞可能讓代碼庫所有者面臨某些法律問題。因爲這些代碼庫所使用的某些開源組件的許可看上去與該代碼庫的整體許可有衝突,甚至有些使用根本就屬於未經許可的行爲。

報告還顯示,此類軟件許可衝突發生率在不同行業中存在着顯著的差異。

許可衝突發生率在各行業中高低不等,其中最高的是互聯網和移動APP行業高達93%的許可衝突率,而最低的是虛擬現實、遊戲、娛樂和媒體APP行業59%的許可衝突率。

關於這份報告

這是Synopsys開源安全與風險分析報告的第五版。這份報告爲商業軟件中開源安全、合規性以及代碼質量風險的當前狀態提供了一份詳細的快照。

該報告結果是基於Synopsys的開源審計服務團隊在2019年所審查的匿名代碼數據。出於代碼審計的目的,Synopsys將代碼庫定義爲應用程序、服務或庫提供基礎的源代碼和源庫。

研究人員將託管軟件定義爲其來源、壽命、許可和版本信息均可識別並追蹤的軟件組件。研究人員同時還對這些軟件組件所實施或缺失的更新和安全補丁進行了考察。

報告中的要點

2020年OSSRA報告總結說,各個公司和組織需要對他們所使用的開源組件進行更好的維護。因爲這些開源代碼現在已經成爲他們構建或使用的軟件的關鍵部分。

“我們仍然建議企業在自動化方面進行更多投資,以便爲其所使用的開源軟件創建準確的清單,但在企業中真正需要發生的故事是一個流程的轉變,” Mackey說,“開發團隊、企業IT部門和公司法律團隊需要一起爲開源軟件的使用定義一套流程。”

下載一個開源組件、開源包或開源解決方案,然後直接就使用,這麼做絕非明智之舉。他補充說,如果對開源軟件的下載沒有得到適當的管理,那麼這些開源軟件爲企業在監管方面帶來的挑戰並不亞於任何商業軟件所帶來的挑戰。

開源軟件和商業軟件關鍵的區別在於,開源軟件其背後並沒有一個商業實體可以依託,從而讓律師用法律手段來實現問題的解決。這個需要的補丁要麼來自於支持這個開源組件的開源社區,要麼來自一個企業的本地開發團隊,而後者在理想情況下應該會將該組件的補丁提交回開源社區。

“無論補丁來自於哪種途徑,如果修正補丁的過程中沒有開源社區的參與,那麼隨着開源組件的發展要持續保持一個補丁的兼容狀態就會變得更加困難,” Mackey說。

安全性變差了還是變好了?

據Mackey說,OSSRA的報告沒有考慮開源軟件的整體安全性。相反,該報告關注的是在商業環境中投入使用時的監管情況。

“話雖如此,我們的確也對數據集中所發現的幾個比較突出的漏洞進行了更深入的分析,以便我們更好地理解核心風險是什麼,” 他澄清說。

開源軟件的安全性確實提出了新的挑戰。SaltStack是一家爲數字業務安全性和可靠性提供自動化基礎設施的公司,其CTOThomas Hatch表示,如今一款專有軟件將包括一些開源代碼,這很常見,幾乎能算是普遍現象了。

“但同樣重要的是一定要記住,專有軟件中到底包含了哪些開源軟件版本,這一信息公開時可能並不太可靠,甚至該信息根本不會公開。這就讓對相關開源軟件的持續追蹤變得幾乎不可能,” 他告訴LinuxInsider新聞網站。

認爲開源軟件更安全的最初理由是,由於受衆人關注,人們可以爲之帶來更多的修復。然而,Hatch觀察到,這一論斷似乎並不能解釋爲何當今衆多小型開源項目蔓延式的快速拓展。

“現在的開源代碼實在是太多了,這讓對代碼的審計變得越來越困難。我想說,總體而言今年開源軟件的安全狀況比去年更差。”

雖然許多大型項目正在努力進行改善,但開源代碼的整體增長速度遠遠超過了對其持續追蹤能力的提升。Hatch說,這份OSSRA報告非常有用,但作爲一個還正處於探索階段的項目,日後它將發揮更強大的作用。

這些努力是有用的

Mackey保證說,他們年復一年地發佈這類報告,其真正的目的是爲了讓軟件行業在發展中得到糾正。

他解釋說,當該公司5年前開始發佈OSSRA報告時,對於開源活動對其業務整體運營的影響,許多企業領導人普遍缺乏認識。

正因爲有這樣的背景,於是滋生了許多備受關注的針對開源代碼的漏洞攻擊。五年後,隨着開源代碼的快速發展,對其監管所要求的複雜性也在增加。

OSSRA的報告是基於這家公司通過之前併購而獲得的商業應用完成的。Mackey說,這些基礎數據爲開源代碼提供了一個獨特的視角,而這些是無法通過對開發團隊簡單地做個調查,或者用其他輕量級的數據收集方法所能獲得的。

DevOps安全需求

StackRox是一家爲Kubernate和容器提供安全解決方案的公司,其CTO Ali Golshan說,Synopsys公司提供的2020 OSSRA報告爲一些高級別的發展趨勢提供了很好的風向標。但是,一個公司自己在做出決策時還應該考慮更多的東西,尤其是與開源代碼安全相關的東西。

他告訴LinuxInsider新聞網站:“隨着DevOps實踐與開源解決方案的結合,導致許多雲端原生技術更廣泛的大規模部署,這就讓與開源相關的風險問題變得越來越捉摸不定。”

Golshan還指出,利用漏洞的攻擊面整體上在雲端原生空間中也發生了重大變化——已經從傳統的漏洞攻擊和運行時攻擊轉向了在軟件構建過程中所暴露的更大的攻擊面。

從運維的角度來看,在使用雲端原生技術的同時使用開源組件可能有很多好處,然而從安全的角度來看,這種做法是有一定挑戰性的,他爲此提醒說:“像Synopsys這樣的報告應該被當作是一個很好的提醒,可以促使我們更仔細地去考慮應該如何保護軟件的構建過程。”

作者介紹:

Jack M. Germain,自2003年起擔任ECT新聞網絡記者。他主要關注的領域是企業IT、Linux和開源技術。他寫了許多關於Linux發行版和其他開源軟件的文章。

延伸閱讀:

Abandoned Open Source Code Heightens Commercial Software Security Risks

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章