2018 開源代碼安全報告:每個代碼庫平均包含 64 個漏洞

Linux愛好者2018-07-09 03:04:36

(點擊上方公眾號,可快速關注)


來源:開源中國社區

www.oschina.net/news/97759/2018-synopsys-opensource-report


Synopsys 公司近日發佈了“2018 年開源代碼安全和風險分析” Black Duck(黑鴨)報告,深入考察了商業軟件中開源安全性,許可證合規以及代碼質量風險的狀況。本次報告討論的是從 2017 年審計的超過 1,100 個商業代碼庫中的匿名數據所得出的結果,行業包括汽車、大數據(主要是人工智能和商業智能)、網絡安全、企業軟件、金融服務、醫療保健、物聯網(IoT)、製造業和移動應用市場。



開源軟件與定製代碼相比,既不是更不安全,也不是更安全。但是,開源軟件的某些特性使得流行組件中的對攻擊者非常有吸引力。Black Duck(黑鴨)審計結果顯示,現在,開源代碼在商業應用和內部應用中無處不在,這在漏洞被披露時為攻擊者提供了目標非常豐富的環境。漏洞以及對漏洞的利用通常是通過全國漏洞數據庫(NVD,National Vulnerability Database)、郵件列表和項目主頁等來源進行披露的。


商業軟件把更新自動推送給用戶,而開源軟件與之不同,後者採用一種拉動支持(pull support)模式,即:用戶自行負責跟蹤他們所使用的開源軟件的漏洞、修復和更新。開源代碼可以通過多種方式進入代碼庫,不僅可以通過第三方供應商和外部開發團隊進入,也可以通過內部開發人員進入。如果一個組織機構不瞭解其所使用的所有開源代碼,它就不可能抵禦針對這些組件中已知漏洞的常見攻擊,並且它自己也會暴露在許可證合規風險之中。



2017 年,Black Duck On-Demand(黑鴨按需)審計在每個代碼庫中發現了 257 個。到 2018 年,每個代碼庫中開源組件的數量增長了約 75%。審計發現,96% 的被掃描應用中存在開源組件,這一比例與去年的報告相似。而在被掃描的應用的代碼庫中,開源代碼的平均比例從去年的 36% 增長到 57%,這表明開源代碼的使用量在持續大幅度增長,同時也表明,目前大量的應用所包含的開源代碼要多於專有代碼。


某些開源組件對開發人員來說非常重要,以至於這些組件在極大部分的應用中都能找到。今年,用於開發 HTML、CSS 和 JavaScript 的開源工具包 Bootstrap 出現在 40% 的全部被掃描應用中;緊隨其後的是 jQuery,有36%的應用包括該開源組件。在各行業常見的組件中,值得注意的是 Lodash,這是一個為編程任務提供實用函數的 JavaScript 庫。Lodash 是諸如醫療保健、物聯網、互聯網、市場營銷、電子商務和電信等


行業所採用的應用中最經常使用的開源組件。



審計還發現,每個代碼庫中開源漏洞的數量增長了 134%,而 78% 的被檢查代碼庫中包含至少一個漏洞,每個代碼庫平均包含 64 個漏洞。這一高增長率部分歸因於2017年報告的創記錄的漏洞數量。僅美國國家漏洞數據庫(NVD,National Vulnerability Database)就列出了超過 14,700 個漏洞,而 2016 年僅列出 6,400 個漏洞。其他報告給出的漏洞總數超過 2 萬個,其中近8000 是 NVD 報告未列出的。這些數字說明了 2017 年所報告的所有已知漏洞的情況,但其中超過 4,800 個是開源漏洞,這延續了已知開源漏洞為期五年的增長趨勢。過去 17 年來,已經有超過 40,000 個開源漏洞被報道。


掃描揭示的另一個重要數據點是,所發現的漏洞的平均年齡正在增加。平均而言,審計中發現的漏洞大約在六年前已經被披露了,而在 2017 年報告則顯示是四年前被披露。這表明,負責修復工作的人員需要花費更長時間才能完成修復(如果他們確實正在著手修復的話),這就使得越來越多的漏洞在代碼庫中積累起來。



此外,這些開源組件還廣泛存在許可證問題,企業不太可能使用傳統的電子表格方法來跟蹤這麼大量的許可證義務,而如果沒有一套自動化流程的話,這可能就是件不可能的工作。這也導致 74% 的被審計代碼庫中包含的組件,其中最常見的是違反 GPL 許可證協議,存在於 44% 的代碼庫中。該報告進行審計的代碼庫中,85% 或存在許可證衝突,或包含不具備許可證的組件。



其中,互聯網和軟件基礎設施垂直行業的應用包含高風險開源漏洞的比例最高,為 67%;其次是互聯網和移動應用行業,比例為 60%。具有諷刺意味的是,網絡安全行業的仍然被發現存在很高比例的高風險開源漏洞,雖然低於去年的59%,但依然高達41%,這使得該垂直行業處於第四高的位置。


在金融服務和金融科技市場中,34% 的被掃描應用包含高風險漏洞,而醫療保健、健康技術和生命科學垂直行業中的應用緊隨其後,有 31% 的應用包含高風險漏洞。製造業、工業和機器人技術在這方面的比例最低,為 9%,這可能是由於 OEM(製造商)對整個軟件供應鏈上的供應商施加壓力,要求後者提供經過審查的、乾淨的代碼。相反,製造業垂直行業在中佔據了第三大許可證衝突的位置,比例高達  91%。


事實上,根據黑鴨按需審計集團(Black Duck On-Demand)提供的審計數據,所有垂直行業的企業都應該關注開源許可證問題,也應該關注由於未能遵守開源許可證協議而導致的代碼知識產權訴訟或侵權(compromise)所帶來的潛在風險。存在許可證衝突的應用在各個行業分佈情況互不相同:在零售和電子商務行業中低至 61%,而在電信和無線行業則很高 – 他們 100% 的被掃描代碼都存在某種形式的開源許可衝突。



負責分析此報告的由 Synopsys 開源研究與創新中心(COSRI)表示,再爭辯是否應該使用開源代碼已經沒有什麼意義了。可以證明的是,目前,大多數應用程序代碼都是開源的。在經過審計的包含開源代碼的代碼庫中,這些代碼庫中平均 57% 的代碼都是開源組件,這就證明,目前許多應用中所包含的開源代碼要多於自有代碼。隨著開放源代碼使用量的增長,風險也如影隨形,主要原因在於企業缺乏適當的工具來識別他們內部的以及面向公眾的應用程序中使用了多少或者什麼樣的開源組件。通過將策略、流程和自動化的解決方案集成到軟件開發生命週期中,以便識別、管理和保護開源代碼,企業才能夠最大限度地發揮開源的優勢,同時有效管理漏洞和許可風險。



【關於投稿】


如果大家有原創好文投稿,請直接給公號發送留言。


① 留言格式:
【投稿】+《 文章標題》+ 文章鏈接

② 示例:
【投稿】《不要自稱是程序員,我十多年的 IT 職場總結》:http://blog.jobbole.com/94148/

③ 最後請附上您的個人簡介哈~



看完本文有收穫?請分享給更多人

關注「Linux 愛好者」,提升Linux技能

閱讀原文

TAGS: