免費(fèi)開源軟件的潛在安全風(fēng)險(xiǎn)
Linux基金會(huì)和哈佛大學(xué)創(chuàng)新科學(xué)實(shí)驗(yàn)室的研究人員進(jìn)行了廣泛調(diào)查和深入研究,得出了有關(guān)企業(yè)內(nèi)常用的免費(fèi)開源軟件(FOSS)的一些重要結(jié)論與潛在安全風(fēng)險(xiǎn)。
研究人員發(fā)現(xiàn),由于缺少針對(duì)FOSS組件的標(biāo)準(zhǔn)化命名方案,企業(yè)和其他股東難以快速、準(zhǔn)確地識(shí)別可疑或易受攻擊的組件。
其次,他們還發(fā)現(xiàn),需要更加安全地保護(hù)開發(fā)人員的賬號(hào),那些積極為某些廣泛部署開源軟件做貢獻(xiàn)的人員。第三個(gè)發(fā)現(xiàn)是,與其他較舊的硬件或軟件技術(shù)一樣,開源社區(qū)中的舊版軟件包日益危險(xiǎn)。
《哈佛商學(xué)院》的合著者Frank Nagle教授說(shuō):“ FOSS組件幾乎是所有其他軟件的基礎(chǔ),無(wú)論是開放的還是專有的,但我們對(duì)軟件的常用性或安全性信息知之甚少。考慮到了免費(fèi)開源軟件可能對(duì)經(jīng)濟(jì)產(chǎn)生的影響,但卻很少人考慮到支持和維護(hù)這一核心基礎(chǔ)架構(gòu)的系統(tǒng)性工作。”
在這項(xiàng)研究中,Linux基金會(huì)和哈佛大學(xué)的研究人員分析了企業(yè)軟件的使用數(shù)據(jù),這些數(shù)據(jù)由軟件合成分析公司和應(yīng)用安全公司提供,例如Snyk和Synopsys網(wǎng)絡(luò)安全研究中心。在確定常用的開源軟件時(shí),研究人員考慮了FOSS軟件包或組件與其他企業(yè)應(yīng)用程序和系統(tǒng)之間可能存在的從屬關(guān)系。
目的在于確定和衡量企業(yè)環(huán)境中常用的FOSS,了解該軟件的安全性等。FOSS組件幾乎占企業(yè)當(dāng)前正在使用的所有應(yīng)用程序的80%至90%。盡管許多FOSS項(xiàng)目有接受安全檢查,但是很多還沒(méi)有。
研究人員在本周發(fā)布的一份報(bào)告中說(shuō),在諸如OpenSSL之類的有小部分貢獻(xiàn)者基礎(chǔ)的常用項(xiàng)目中,漏洞通常會(huì)被忽略。隨著對(duì)FOSS的依賴日益增長(zhǎng),政府、研究人員和組織通過(guò)審核、漏洞賞金計(jì)劃、黑客馬拉松和會(huì)議更好地了解開源軟件的來(lái)源和安全。Nagle說(shuō):“第一步是要真正了解企業(yè)所依賴的FOSS組件。無(wú)論是通過(guò)定期的安全掃描和代碼審計(jì),還是通過(guò)其數(shù)字產(chǎn)品采用的軟件材料清單。”
頂級(jí)項(xiàng)目和頂級(jí)風(fēng)險(xiǎn)
Linux基金會(huì)與哈佛大學(xué)創(chuàng)新科學(xué)實(shí)驗(yàn)室的聯(lián)合研究表明,企業(yè)內(nèi)10個(gè)最常用的FOSS軟件包是async,inherits,isarray,kindof,lodash,minimist,native,qs,readable-stream和string-decoder。研究人員還確定了最常用的非JavaScript程序包,其中包括com.fasterxml.jackson.core:jackson-core,com.fasterxml.jackson.core:Jackson-databind,com.google.guava:guava和commons -codec。
在確定了最重要的項(xiàng)目之后,研究人員著手尋找這些項(xiàng)目中最活躍的貢獻(xiàn)者,并確定了其中約75%的公司從屬關(guān)系。在研究過(guò)程中,研究人員發(fā)現(xiàn),最常用的七個(gè)開源軟件項(xiàng)目中的七個(gè)托管在開發(fā)人員個(gè)體賬號(hào)上,其安全性比企業(yè)賬號(hào)更弱。報(bào)告警告說(shuō):“個(gè)體賬號(hào)的開發(fā)人員控制和更改代碼非常容易實(shí)現(xiàn),無(wú)需檢測(cè)即可進(jìn)行。”
此外,根據(jù)研究人員的說(shuō)法,對(duì)開發(fā)人員個(gè)體賬號(hào)的攻擊正在增加,利用賬號(hào)接管、后門和其他惡意代碼等實(shí)現(xiàn)代碼訪問(wèn)的風(fēng)險(xiǎn)越來(lái)越大。Nagle說(shuō):“如果這類個(gè)人賬號(hào)的存儲(chǔ)庫(kù)支持的話,可以執(zhí)行兩因素身份驗(yàn)證。”
個(gè)人賬號(hào)控制的常用FOSS的另一個(gè)風(fēng)險(xiǎn)是開發(fā)人員,他們有刪除賬號(hào)或刪除有爭(zhēng)議和分歧代碼的決定權(quán)。Nagle指出:“更廣泛和長(zhǎng)期的解決方案是,將此類項(xiàng)目轉(zhuǎn)移到企業(yè)賬號(hào),而不是由個(gè)人賬號(hào)控制,這有助于增強(qiáng)項(xiàng)目的歸責(zé)性和將來(lái)的可用性。”
研究表明, FOSS組件需要有更好的命名規(guī)則。Nagle表示,由于FOSS可以自由修改和復(fù)制,因此可以有多個(gè)版本,分支和類似名稱的存儲(chǔ)庫(kù)。為了進(jìn)一步確保安全,重要的是對(duì)正在使用的FOSS組件情況以及支持和維護(hù)工作有個(gè)共識(shí)。
研究人員的另一個(gè)發(fā)現(xiàn)是,與舊版不受支持的軟件或硬件版本一樣的是,舊版開源組件也面臨風(fēng)險(xiǎn)。例如,Nagle指出了常用的PuTTY SSH軟件的0.70版,該軟件于2017年7月發(fā)布。將近兩年后,直到2019年3月該軟件的更新0.71版才發(fā)布。像這樣常用軟件的更新和檢查就可以解決存在于代碼庫(kù)20多年的安全問(wèn)題了。”