近日,軟件和芯片設計公司 Synopsys 發佈《2020年開源安全和風險分析報告》,指出不安全的開源軟件已無處不在。一方面,99%的審計代碼庫中至少包含一個開源組件,另外一方面,通過審覈的代碼庫中有75%包含具備已知安全漏洞的開源組件,老化和廢棄的開源組件也無處不在。編程
3月,安全和許可證合規性管理解決方案提供商 WhiteSource 一樣發佈了一份《2019年開源組件安全漏洞現狀報告》。統計顯示,2019年公開的開源軟件漏洞數量激增至6000多個,增幅達近50%,緣由包含開源軟件應用的擴大。安全
兩份報告指向同個現象——開源軟件的應用已很是普遍,開源和「咱們必須只使用專有代碼」的想法間的戰爭已經結束了,取而代之的是對開源軟件是否安全的討論。服務器
關注和應用的增長帶來更多安全問題markdown
WhiteSource 在報告中說明,開源軟件漏洞數量的上升能夠歸因於開放源組件的普遍採用,過去幾年開源社區的大量增加,以及媒體對最近一些數據泄露事件的報道,(使得人們)對開放源代碼安全的關注提升。網絡
正如 Synopsys 公司的報告中所提到的,開源組件和庫是每一個行業每一個應用程序的基礎。架構
Synopsys 公司的開源安全工具和審計團隊——黑鴨審計針對17個行業的1253個代碼庫進行審計,具體包括企業服務/SaaS,保健,生命科學,金融服務,物聯網,電信,計算機硬件等行業,其中99%包含開源組件,有9個行業的審計代碼庫中100%包含開源組件。此外,Synopsys 在2015年審計中發現,開源代碼佔比爲36%,這一比例到2019年幾乎翻了一番,達到70%。具體數量上,2019年每一個代碼庫平均有445個開源組件,較2018年的298個顯著增長。框架
「開源(以前)一直被視爲愛好者和修補者的領域,但它如今已是現代經濟的組成部分,是智能手機、汽車、物聯網和許多關鍵基礎設施等平常技術的基本組成部分」,Linux 基金會和哈佛大學年初也發佈了一份開源軟件安全性審查結果,其聯合主任弗蘭克·納格爾表示開源應用已很是普遍。ide
同時,開源社區的力量也正在壯大。曾經極力反對開源的微軟,2019年已成爲 GitHub 上開源貢獻最多的企業,緊隨其後的還有Google、Red Hat、IBM、Intel 等科技巨頭。國內企業阿里的開源貢獻排名第12,百度和騰訊分列第2一、23位。工具
隨應用一塊兒擴大的還有風險。Synopsys 的報告顯示,49%的已審計代碼庫中包含高風險漏洞。ui
早在2006年的 LinuxWorld 大會上,Linux 內核維護人 Alan Cox 就強調,有至關數量的資金被用來***開放源代碼系統,許多開放源代碼項目遠談不上安全,「許多分析只關注知名度很高的項目,只有部分項目的‘高質量’是名副其實的。」
但開源軟件安全引發普遍而激烈的討論是因爲2014年的一個安全漏洞。當時網景公司旗下開源密碼庫 OpenSSL 中的 Heartbleed 安全漏洞被發現。這個漏洞影響了近20%,即50萬的 Web 服務器,中國也有超過3萬臺主機受到影響。據搜索引擎商 Shodan 報告,該漏洞截至2019年末,引發了91000多起脆弱性事件。
Heartbleed 甚至直接致使 Linux 基金會啓動了一項「核心基礎設施計劃」(CII),以支持開源軟件項目安全性。並且 CII 在過去6年中,已爲開源安全籌集了數百萬美圓。
另外,2017年,Apache Sturts 的一個漏洞被發現。Struts 是一種開源的 MVC 框架,用於建立基於 Java 的 Web 應用。Apache Struts 團隊很快打了補丁,並關閉了該問題。但5月,有人利用該漏洞開始***徵信企業 Equifax,兩個月後才被發現。期間,Equifax 有20.9萬名客戶的信用卡號被訪問,數據泄露,最終涉及到1.45億用戶。過後,Equifax 被重罰7億美圓,時任 CEO 引咎辭職。
這兩個漏洞被 Synopsys 的報告稱爲是「臭名昭著」的,所以他們也專門作了追蹤,而在此次的審計中,兩個漏洞都未出現,「儘管咱們取得了成果,但心臟出血(Heartbleed)依舊是個全球問題……自2015年以來,經審計的代碼庫中發現漏洞的平均年齡略低於4.5年,存在超過10年的漏洞佔比爲19%,審計中發現的最古老的漏洞已經存在22年,爲 CVE-1999- 0061。」
該報告還顯示,91% 的代碼庫中包含已通過時超過 4 年或者過去 2 年內都沒有開發跡象的開源組件。除了增長安全風險外,在版本控制中落後太遠的危險是——更新到最新版本的簡單行爲會帶來沒必要要的功能更改,例如關鍵功能的消失。在過去兩年中,有88個代碼庫的組件沒有開發活動,面臨更高的漏洞風險。
開源依舊被認爲可提升軟件安全性
不過,對於 Heartbleed 事件以及開源軟件漏洞,有開發者認爲,閉源軟件如 Windows 系統及其 IIS 服務中,漏洞較之開源軟件更多。有時,這些漏洞也更嚴重。開源並不會致使更多風險。
1月,美國國家安全局公佈了一個 Windows 10 的漏洞,該漏洞使全球約10億多臺 PC 易受***。這一漏洞被叫作「永恆之黑」,有人稱其爲微軟又一「史詩級」漏洞。早在2017年4月14日,能夠利用 Windows 系統的 SMB 漏洞獲取系統最高權限的「永恆之藍」網絡***工具被髮布,5月12日,不法分子經過改造「永恆之藍」製做了 Wannacry 勒索病毒,英國、俄羅斯、整個歐洲以及中國國內多個高校校內網、大型企業內網和政府機構專網被勒索,需支付高額贖金才能解密恢復文件。
上個月,Kenna Security 發佈了《 Prioritization to Prediction: Volume 5: In Search of Assets at Risk》報告,分析 Microsoft、Linux 和 Mac 資產的風險情況。報告顯示,微軟資產的 70% 至少具備一個高風險漏洞,其他未修補的 3600 萬個漏洞要高於 Max、Linux 和 Unix 資產的總和。微軟還擁有最高的封閉式高風險漏洞百分比,爲 83%,Linux 中這一比例僅有40%。不過報告也指出,Microsoft 能夠更快地修復漏洞。
在一些場景中,開源依舊被認爲是保障安全的有效方式。開源「聖經」《大教堂與集市》中也提到開源能夠保障安全的緣由:開源社區最強大的一個強項是非中心化的同行評審,全部致力於細節不被疏漏的傳統方法,都沒法和它相比。
近期,特朗普稱一些外國電力設備可能會利用美國大功率電力系統的漏洞進行***,所以他簽署了一項電力設備禁令。對此,美國的一項開放源代碼電力系統計劃公司 LF Energy 的 CEO 表示,電力設備風險並不徹底是硬件的問題,應該更加關注的是***面和風險點的所在,好比嵌入系統的固件問題。
所以,應該開源設備中的硬件和軟件,甚至直接對整個技術棧進行開源:「在將來,不管是民族國家仍是大型能源公司,惡意***者均可以訪問和*** OEM 的黑盒,而想要檢驗電網惟一的方法就是使用開源,在一個開放的社區中,具備開放的治理和徹底的透明度。」
美國軍方國防高級研究計劃局年初推出「開放可編程安全5G」(OPS-5G)新計劃。計劃承諾建立支持安全5G以及後續移動網絡(好比6G)的開源軟件和系統。緣由在於,開源軟件在安全方面的一大優點就是提升了代碼可見性,這意味着能夠檢查、分析和審覈代碼,這項工做能夠手動進行,也可藉助自動化工做進行。此外,開源的可移植性有助於硬件生態系統和軟件生態系統相脫離,大大提升了供應鏈***的難度。
有觀點認爲,開源軟件更方便使用者檢查有無後門,這對一些國家級的大型項目來講,可保證高度可控。此外,軟件可信性僅和分發途徑有關,軟件自己的質量與軟件廠商關係更大,而開源開發在不少情形下,由於有「同行評審」,因此更加安全。
多份報告建議公司重視管理開源軟件
開源軟件安全問題多被認爲是源於管理上的疏漏。多項研究在討論開源軟件安全問題的時候,都反覆提到這一點。
「隨着開源軟件愈來愈受歡迎,識別和減輕已知的漏洞,是開放源碼管理的一個關鍵因素」,Synopsys 在報告中表示。此外,Gartner 分析師 Dale Gardner 在分析軟件組成現狀時說,「成熟的組織正在擴大開放源碼管理,以包括根據給定軟件包的來源和支持,對軟件總體‘健康’的評估。」
在 Synopsys 發佈《2020年開源安全和風險分析報告》和奇安信代碼安全事業部發起「開源項目檢測計劃」,Linux 基金會聯合哈佛大學2月發佈的《開源軟件供應鏈安全報告》,以及《提升開源軟件信任與安全報告》中,均總結了一些開源軟件出現安全問題的緣由。撇去一些存在於全部軟件中的通病,如開發人員的技術能力和安全知識問題等,大體能夠歸爲如下幾點:
•
開源軟件使用者更新不及時。許多組織在使用任何給定的開源組建的最新版本放上面落後得驚人。開源社區對軟件的更新更快,可是大量使用開源組件的公司沒有應用他們須要的補丁,使得業務面臨被***風險。
•
開源項目缺少管理工具。大多數開源項目的開發缺乏 SDL(安全開發生命週期)的流程和工具;許多開源項目關注少,資源有限;開源軟件之間的關聯依賴,致使開源軟件的漏洞管理很是複雜;若是漏洞污染的是基本對象的原型,可能會影響應用程序中全部對象的行爲。
•
***者對開源生態的***,好比向開源庫中注入惡意代碼、向包管理器倉庫投放惡意組件等。如2019年8月,開源的系統管理工具 Webmin 被爆存在高風險遠程命令執行漏洞,據 Webmin開發人員透露,該漏洞不是編碼錯誤的後果,而是「惡意代碼注入受損的基礎架構中」致使的。
•
開源項目分發不合規。如公共註冊中心或開源軟件市場沒有對進入的開源項目進行代碼審覈,致使安全問題增多。
許多問題都指向公司對開源軟件缺少正確的管理。而這些報告也一樣給出了一些防患開源軟件漏洞的措施。
•
盤點本身的開源項目,作資產梳理。Synopsys 的報告中建議使用軟件物料清單 BOM,爲開源組件提供充分的可見性。也有建議公司可引入控制,創建開源軟件安全引入和退出機制。
•
有效識別漏洞並警告。Synopsys 公司認爲,只有小部分開源漏洞會被利用,在開源組建的生命週期內,須要設置漏洞修補優先級。一樣,奇安信代碼安全事業部總經理黃永剛建議,企業應及時發現存在漏洞的開源軟件版本並進行升級。在軟件運行階段,企業需監控開源軟件漏洞情報信息,及時響應。
•
組建專業團隊。包括成立安全小組,監測外部威脅和脆弱性披露的變化;組織開發和法律團隊;建立管理開源活動的策略等等。
開源開發每每被認爲是「常發佈」(Release often)以及「更少漏洞」的,但近期的幾份報告將目光放到更普遍的開源應用中去,得出相反的結論——使用者每每不能及時更新軟件,這可能形成安全風險。
關於開源比閉源安全仍是更危險,一直以來都會引發激烈的討論,你以爲開源能讓軟件中的漏洞獲得更快修補,更好地保障軟件安全嗎?