開源更需要社區(qū)參與才能蓬勃發(fā)展。如果沒有社區(qū)參與,企業(yè)將開源組件用于商業(yè)軟件,項(xiàng)目活力很容易減弱。在數(shù)字經(jīng)濟(jì)時(shí)代,軟件風(fēng)險(xiǎn)等同于業(yè)務(wù)風(fēng)險(xiǎn)。掌握軟件中開源組件的信息有利于管理軟件風(fēng)險(xiǎn),進(jìn)而保障業(yè)務(wù)。
近日,非營利性組織Linux基金會(huì)和哈佛創(chuàng)新科學(xué)實(shí)驗(yàn)室發(fā)布了“自由和開放源碼軟件普查II - 應(yīng)用庫”。這次普查列出了1,000多個(gè)最為廣泛使用的開源應(yīng)用庫。新思科技 <https://www.synopsys.com/zh-cn.html?cmp=pr-sig&utm_medium=referral>網(wǎng)絡(luò)安全研究中心(CyRC)將自身基于數(shù)千家公司代碼庫的掃描結(jié)果數(shù)據(jù)匿名化后,貢獻(xiàn)給了此次普查報(bào)告,有助于更全面地了解 FOSS(自由/開源軟件,free and open source software)的使用情況。
Linux基金會(huì)普查 II (Linux Foundation Census II)檢查了最受歡迎的開源應(yīng)用庫,并且羅列了影響這些應(yīng)用庫安全問題的因素。
報(bào)告作者指出:“完全理解 FOSS 的健壯性、經(jīng)濟(jì)價(jià)值和安全性是一件很難的事情,因?yàn)樗且匀ブ行幕头植际降姆绞疆a(chǎn)生的。”由于軟件組件打包方式以及版本分類和識(shí)別方式多種多樣,因此該報(bào)告將它們歸納匯總成8 種Top 500排名。
新思科技軟件質(zhì)量與安全部門安全解決方案經(jīng)理Mike McGuire將軟件包和版本比作汽車的型號(hào)、生產(chǎn)年份和配置。他說:“如果我只說我開一輛豐田凱美瑞汽車,但你仍可能不會(huì)知道我開的是哪一款車。1999年版本,還是2022年版本?在訂購零部件、獲得服務(wù)、跟蹤召回等時(shí)候了解這些信息非常重要。”
Linux基金會(huì)普查 II的目的
報(bào)告作者表示:“這是為了維持 FOSS 長期安全和健康的活動(dòng)提供信息。”該報(bào)告可以幫助我們預(yù)估哪些FOSS軟件包被廣泛地使用在不同的應(yīng)用中。它不是評(píng)估衡量該軟件的風(fēng)險(xiǎn)狀況。許多指標(biāo)可以用來風(fēng)險(xiǎn)提示,但各家企業(yè)可能對(duì)因素的權(quán)重不同。
Mike McGuire對(duì)此表示贊同。廣泛使用并不代表更關(guān)鍵。他解釋道:“大量的應(yīng)用程序可能正在使用某一特定的 Java GUI 框架,所以這個(gè)框架非常流行。但它可能不是軟件的關(guān)鍵部分。每個(gè)企業(yè)應(yīng)用程序構(gòu)建的方式不同,其關(guān)鍵組成也大相徑庭。”
盡管如此,一旦確定了使用最廣泛的軟件,我們就更容易評(píng)估風(fēng)險(xiǎn)狀況。
開源管理的挑戰(zhàn)
現(xiàn)在,改善軟件識(shí)別、分類和維護(hù)面臨著一些挑戰(zhàn)。隨著行業(yè)朝著廣泛標(biāo)準(zhǔn)化和采用軟件物料清單(SBOM)的方向發(fā)展,了解這些挑戰(zhàn)都非常重要,包括:
- 對(duì)軟件組件的標(biāo)準(zhǔn)化命名模式的需求,這樣應(yīng)用程序庫就可以被唯一地標(biāo)識(shí)。如果沒有標(biāo)準(zhǔn)化命名模式,企業(yè)將無法在大規(guī)模,特別是在全球范圍內(nèi),相互交流,以共享此類信息
- 與軟件包版本控制相關(guān)的復(fù)雜性。公司維護(hù)了一個(gè)包的內(nèi)部版本,但沒有將他們的更改反饋回官方庫。這是一個(gè)意想不到的問題。在一個(gè)例子中,研究人員多次觀察到一個(gè)包的 2.87 版本,但官方庫只升級(jí)到了 2.26 版本。如果 SBOM 無法區(qū)分主版本和變更版本,此類軟件的購買者將很難知道自己是否容易受到新發(fā)現(xiàn)的漏洞的影響
新思科技中國區(qū)軟件應(yīng)用安全技術(shù)總監(jiān)楊國梁表示:“開源軟件易獲取、開放、共享,為業(yè)界帶來豐富的紅利。但同時(shí),對(duì)開源組件漏洞的利用,甚至偽裝成開源貢獻(xiàn)者預(yù)埋漏洞,這些都屢見不鮮。近期,Log4Shell和Spring4Shell漏洞在業(yè)界沸沸揚(yáng)揚(yáng),這也體現(xiàn)了掌握已使用開源組件信息的必要性。在漏洞披露時(shí),相關(guān)方可以采取更及時(shí)的行動(dòng)。因此,軟件組成分析 (SCA) 解決方案的重要性日益凸顯。SCA可以為應(yīng)用生成SBOM,如果組件中出現(xiàn)新漏洞,會(huì)及時(shí)主動(dòng)通知用戶。”
大多數(shù)企業(yè)級(jí)應(yīng)用,包括我們常用的購物網(wǎng)站、社交媒體等,服務(wù)海量用戶,需要持續(xù)地穩(wěn)定運(yùn)行。為此,開發(fā)人員經(jīng)常使用日志,以監(jiān)控應(yīng)用的狀態(tài)和安全。Log4j2是提供日志功能的開源組件;Spring Core Framework用于Java應(yīng)用,在基于J2EE的應(yīng)用中被廣泛地使用。由此可見,Log4Shell和Spring4Shell漏洞的影響范圍之大。
影響FOSS長期安全的問題
這些問題包括:
- 大多數(shù)最廣泛使用的FOSS都是由少數(shù)貢獻(xiàn)者開發(fā)的。一個(gè)數(shù)據(jù)集的結(jié)果顯示,排名前 50 的包中,超過 80%的代碼行由 136 名開發(fā)人員負(fù)責(zé)。新思科技《2021年開源安全和風(fēng)險(xiǎn)分析》報(bào)告(OSSRA) <https://www.synopsys.com/zh-cn/software-integrity/resources/reports/open-source-security-risk-analysis.html?cmp=pr-sig&utm_medium=referral>曾指出開源項(xiàng)目的維護(hù)人員并沒有隨開源項(xiàng)目的普及而保持同步增長,從而經(jīng)常導(dǎo)致開發(fā)人員精疲力竭,許多開源項(xiàng)目只能被放棄。如果項(xiàng)目被放棄,漏洞就不會(huì)得到及時(shí)修復(fù)。
- 個(gè)人開發(fā)者帳戶安全的重要性正在增加。個(gè)人賬戶通常不像企業(yè)賬戶那樣受到很好的保護(hù)。在這些個(gè)人開發(fā)人員帳戶的控制下的代碼進(jìn)行更改要容易得多,而且不被發(fā)現(xiàn)。此外,如果個(gè)別開發(fā)人員長時(shí)間中斷,或出現(xiàn)意外,從而導(dǎo)致無法更新代碼,則可能會(huì)出現(xiàn)問題。這不是唯一的風(fēng)險(xiǎn)。例如,如果獨(dú)立的開發(fā)人員移動(dòng)或刪除了他們的項(xiàng)目,這可能會(huì)破壞數(shù)以百萬計(jì)的依賴它的程序包
- 開源領(lǐng)域歷史遺留軟件的持久性。我們都聽說過公司宣布停止對(duì)舊版本操作系統(tǒng)或應(yīng)用程序的支持。但這并不意味著每位用戶都停止使用這些舊版本。許多企業(yè)發(fā)現(xiàn)很難決定切換到不同的軟件包,因?yàn)樵跓o法保證額外收益的情況下切換到新軟件會(huì)產(chǎn)生財(cái)務(wù)和時(shí)間等成本。2021年 OSSRA報(bào)告還發(fā)現(xiàn)85% 的代碼庫含有至少四年未曾更新的開源依賴,即使有更新版本可用,有時(shí)還有很多更新的版本。這會(huì)帶來很多隱患。新版本會(huì)修復(fù)舊版本種的錯(cuò)誤。黑客往往會(huì)尋找使用舊版本的應(yīng)用進(jìn)行攻擊。
Mike McGuire表示:“Linux基金會(huì)普查 II展示了最常用的FOSS以及一些深刻的洞察。雖然它不是指導(dǎo),但是指出組織和個(gè)人都需要積極參與FOSS的開發(fā),而不是留給一小部分開發(fā)人員像現(xiàn)在這樣領(lǐng)導(dǎo)開源項(xiàng)目。該報(bào)告還顯示了SCA工具在檢測(cè)開源歷史遺留軟件方面的重要性,以及 SBOM 領(lǐng)域?qū)?biāo)準(zhǔn)化的持續(xù)需求。”
新思科技開源專家王永雷補(bǔ)充道:“BOM的概念來自制造業(yè),傳統(tǒng)BOM是詳細(xì)列出產(chǎn)品組成的物資明細(xì)。當(dāng)發(fā)現(xiàn)缺陷零件時(shí),制造商可以準(zhǔn)確地知道哪個(gè)產(chǎn)品受到了影響,以便安排修理或更換,F(xiàn)在,隨著開源組件的大規(guī)模使用,SBOM需求已經(jīng)開始呈現(xiàn)出增長態(tài)勢(shì)。新思科技的開源管理工具Black Duck可以創(chuàng)建和管理企業(yè)級(jí)的上下游軟件供應(yīng)鏈完整的SBOM,幫助管理在應(yīng)用和容器中使用開源和第三方代碼所帶來的安全、質(zhì)量和許可證合規(guī)性風(fēng)險(xiǎn)。”