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