2018開原始碼安全報告:每個程式碼庫平均包含64個漏洞

類別: IT

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% 的程式碼都是開源元件,這就證明,目前許多應用中所包含的開原始碼要多於自有程式碼。隨著開放原始碼使用量的增長,風險也如影隨形,主要原因在於企業缺乏適當的工具來識別他們內部的以及面向公眾的應用程式中使用了多少或者什麼樣的開源元件。通過將策略、流程和自動化的解決方案整合到軟體開發生命週期中,以便識別、管理和保護開原始碼,企業才能夠最大限度地發揮開源的優勢,同時有效管理漏洞和許可風險。

2018開原始碼安全報告:每個程式碼庫平均包含64個漏洞原文請看這裡