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