開源真的香,風(fēng)險(xiǎn)知多少?

過(guò)去幾年,開源界一片火熱,開源軟件技術(shù)已全面進(jìn)軍操作系統(tǒng)、云原生、人工智能、大數(shù)據(jù)、半導(dǎo)體、物聯(lián)網(wǎng)等行業(yè)領(lǐng)域。數(shù)據(jù)顯示,我國(guó)超九成企業(yè)在使用或正計(jì)劃使用開源技術(shù)。

本文來(lái)自微信公眾號(hào)“科技云報(bào)到”。

過(guò)去幾年,開源界一片火熱,開源軟件技術(shù)已全面進(jìn)軍操作系統(tǒng)、云原生、人工智能、大數(shù)據(jù)、半導(dǎo)體、物聯(lián)網(wǎng)等行業(yè)領(lǐng)域。

數(shù)據(jù)顯示,我國(guó)超九成企業(yè)在使用或正計(jì)劃使用開源技術(shù)。

與此同時(shí),全球各大開源組織相繼興起,頭部科技企業(yè)均投入大量人力進(jìn)行開源生態(tài)建設(shè)。

然而,隨著開源軟件的發(fā)展,其數(shù)量和影響力在不斷的上升,開源風(fēng)險(xiǎn)也隨之而來(lái)。

不恰當(dāng)?shù)厥褂瞄_源軟件,可能會(huì)給企業(yè)造成負(fù)面輿論甚至經(jīng)濟(jì)損失的風(fēng)險(xiǎn)。

2021年12月,抖音海外版TikTok上線了一款名為TikTok Live Studio的APP,但不久其下載頁(yè)面就被刪除。

TikTok官方對(duì)此事做出回應(yīng),原因是該APP違反GPL許可證,使用了GPL許可證下的開源軟件源碼,卻沒(méi)有按照GPL許可證要求開源。

近年來(lái),類似抖音因違規(guī)使用開源軟件而引發(fā)開源合規(guī)風(fēng)險(xiǎn)的案例屢有發(fā)生。

但開源軟件的風(fēng)險(xiǎn)并不止于此,看似免費(fèi)使用的開源代碼之下,暗藏著多重風(fēng)險(xiǎn)。

360截圖16251112669372.png

開源軟件的風(fēng)險(xiǎn)

一般來(lái)說(shuō),開源軟件的風(fēng)險(xiǎn)可能來(lái)自四個(gè)方面:

安全風(fēng)險(xiǎn)

其中又分為開源軟件本身的安全漏洞導(dǎo)致的風(fēng)險(xiǎn),和目前關(guān)注度很高的軟件供應(yīng)鏈攻擊的風(fēng)險(xiǎn)。

根據(jù)Sonatype 2021年的報(bào)告,29%的流行項(xiàng)目包含了已知的第三方庫(kù)安全漏洞,也就是說(shuō)接近1/3的軟件項(xiàng)目都包含了已知安全漏洞,足以可見安全漏洞的普遍性。

而軟件供應(yīng)鏈方面的安全問(wèn)題,是比較難以發(fā)現(xiàn)的。

例如Log4Shell與Spring4Shell是2021-2022年影響非常廣泛的兩個(gè)安全漏洞。

這類安全漏洞的特點(diǎn)在于,通過(guò)對(duì)供應(yīng)鏈上游軟件進(jìn)行攻擊,進(jìn)而可以影響大量下游使用的軟件。

在這種情況下,開源軟件來(lái)源的安全把控非常重要,但目前開源軟件供應(yīng)鏈面臨的最大挑戰(zhàn),就是企業(yè)自己都不知道用了哪些開源軟件,大公司已經(jīng)開始關(guān)注到開源合規(guī)治理的內(nèi)容,但是很多小公司還沒(méi)有這個(gè)意識(shí)。

法律風(fēng)險(xiǎn)

其中又分為許可證協(xié)議和專利方面的風(fēng)險(xiǎn)。

常見的許可證主要有GPL、LGPL、AGPL、MPL、MIT、BSD、Apache,各個(gè)許可證還包含不同版本。根據(jù)使用條件不同,可以將這些許可證大致分為兩類:Copyleft許可證和寬松許可證(permissive license),主要對(duì)使用、修改和分發(fā)的場(chǎng)景作出相應(yīng)約束。

由于目前很多的開源項(xiàng)目里面嵌套著其他開源項(xiàng)目,那么可能存在內(nèi)部許可證上的沖突。對(duì)于代碼組件的分析,以及對(duì)組件背后相應(yīng)許可證是否沖突,需要專業(yè)的分析。

如果未按照開源許可證的規(guī)定,履行開源合規(guī)義務(wù),可能會(huì)造成侵權(quán)而遭到索賠、訴訟、產(chǎn)品下架、商譽(yù)受損等風(fēng)險(xiǎn)。

在專利方面,一種是本身的創(chuàng)建者/貢獻(xiàn)者實(shí)現(xiàn)的專利,有可能預(yù)埋專利陷阱,另一種是第三方專利維權(quán)風(fēng)險(xiǎn)。此外,還有商標(biāo)侵權(quán)及出口管制方面的風(fēng)險(xiǎn)。

運(yùn)維風(fēng)險(xiǎn)

如果企業(yè)自己沒(méi)有能力支撐,或沒(méi)有商業(yè)公司幫忙的話,開源項(xiàng)目的維護(hù)成本也很高。

斷供風(fēng)險(xiǎn)

俄烏事件后,GitHub不允許俄羅斯開發(fā)人員下載代碼,甚至把俄羅斯賬號(hào)的代碼提交刪掉,這一“斷供”事件為全球開發(fā)者敲響了警鐘。

此外,2022年1月,F(xiàn)aker.js的作者主動(dòng)惡意破壞自己的項(xiàng)目后“刪庫(kù)跑路”,甚至還注入了導(dǎo)致程序死循環(huán)的惡意代碼,引起眾多應(yīng)用程序崩潰,瞬間引發(fā)了開源圈“震動(dòng)”。

直面開源軟件的風(fēng)險(xiǎn)

面對(duì)開源軟件的種種風(fēng)險(xiǎn),企業(yè)和開發(fā)者應(yīng)如何安全合規(guī)地使用開源技術(shù),合理“避坑”呢?

事實(shí)上,無(wú)論是開源還是閉源,本質(zhì)上都是軟件,都會(huì)存在安全漏洞,不能因?yàn)楹ε嘛L(fēng)險(xiǎn)而拒絕使用開源軟件。

因此,業(yè)內(nèi)專家提出了一些應(yīng)對(duì)開源安全風(fēng)險(xiǎn)問(wèn)題的辦法,從多個(gè)角度來(lái)提升開源軟件的安全性。

首先,針對(duì)整個(gè)開源軟件供應(yīng)鏈安全加大關(guān)注,去尋找供應(yīng)鏈中相對(duì)來(lái)說(shuō)比較薄弱的風(fēng)險(xiǎn)點(diǎn),并在這個(gè)風(fēng)險(xiǎn)點(diǎn)上加大投入。

中國(guó)信通院云大所開源和軟件安全部副主任郭雪認(rèn)為,在企業(yè)側(cè)有三個(gè)重要的關(guān)鍵動(dòng)作:

建立相應(yīng)的開源安全管理的流程機(jī)制;

勇于盤點(diǎn)軟件資產(chǎn),建立SBOM軟件物料清單,對(duì)所有的組件一目了然。

建立預(yù)警機(jī)制、維護(hù)團(tuán)隊(duì)和維護(hù)機(jī)制。例如,長(zhǎng)期追蹤開源軟件最近是否有更新和版本發(fā)布,并檢查目前使用的版本是否有安全漏洞等。安全漏洞發(fā)生后的第一時(shí)間,及時(shí)去打相應(yīng)的補(bǔ)丁等。

其次,在使用開源軟件時(shí),需要謹(jǐn)慎選擇開源軟件,關(guān)注其開源許可證的內(nèi)容及相關(guān)條件,避免潛在的法律風(fēng)險(xiǎn)。

對(duì)此,企業(yè)應(yīng)當(dāng)建立一個(gè)完善機(jī)制,識(shí)別企業(yè)中所使用的開源軟件清單,明確對(duì)應(yīng)的開源許可證及權(quán)利約束,及時(shí)規(guī)避相關(guān)合規(guī)風(fēng)險(xiǎn)。

同時(shí),通過(guò)隔離機(jī)制避免開源許可證傳染。

例如,對(duì)于MPL許可證下代碼的使用,應(yīng)把該許可證的代碼放在單獨(dú)的文件內(nèi)避免許可證傳染;LGPL下的代碼,可采用動(dòng)態(tài)鏈接調(diào)用該許可證的庫(kù)實(shí)現(xiàn)隔離。

目前,國(guó)內(nèi)很多大中型公司已經(jīng)成立了專門的開源治理辦公室,以應(yīng)對(duì)開源合規(guī)問(wèn)題。

據(jù)上海安勢(shì)信息技術(shù)有限公司資深解決方案架構(gòu)師朱賢曼介紹,在實(shí)際業(yè)務(wù)中,對(duì)商業(yè)應(yīng)用比較友好的是Apache,法務(wù)風(fēng)險(xiǎn)相對(duì)較低,而AGPL、SSPL一般很多公司會(huì)直接禁用。

企業(yè)在對(duì)外發(fā)布開源項(xiàng)目時(shí),如果希望商業(yè)化之后保留一個(gè)商業(yè)版本、一個(gè)社區(qū)版本,可能會(huì)選擇類似GPL的許可,一方面可以收集到用戶意見,也就是開源的反饋意見,用于改進(jìn)商業(yè)版,同時(shí)也不希望被直接白嫖。

此外,國(guó)家層面也在慢慢重視開源合規(guī),出臺(tái)了開源技術(shù)相關(guān)的法律法規(guī)。

例如,2021年,中國(guó)人民銀行、中央網(wǎng)信辦等五部門聯(lián)合發(fā)布了《關(guān)于規(guī)范金融業(yè)開源技術(shù)應(yīng)用與發(fā)展的意見》,對(duì)金融機(jī)構(gòu)安全可控、合規(guī)使用開源技術(shù)進(jìn)行了指導(dǎo)和規(guī)范。

其中,《意見》明確提出:推動(dòng)金融機(jī)構(gòu)建立健全評(píng)估體系;支持金融機(jī)構(gòu)對(duì)開源技術(shù)版權(quán)、專利、商標(biāo)、聲明等進(jìn)行事前合規(guī)審查,梳理開源技術(shù)間依賴性等,避免法律糾紛;支持金融機(jī)構(gòu)制定應(yīng)急處置預(yù)案;支持金融機(jī)構(gòu)加強(qiáng)開源技術(shù)供應(yīng)鏈管理,通過(guò)合同或協(xié)議條款,明確開源技術(shù)提供商義務(wù)和責(zé)任等。

第三,如果企業(yè)自己沒(méi)有支持開源軟件的能力,建議選擇有商業(yè)背景的公司,可以購(gòu)買公司提供的服務(wù)。

企業(yè)可以與其簽訂法律合同,提出SLA或問(wèn)題修復(fù)時(shí)效相關(guān)的承諾,這些開源軟件背后的公司扮演了一個(gè)讓供應(yīng)鏈更牢固的角色。

最后,斷供事件不可避免,中國(guó)企業(yè)還需未雨綢繆。

開源本身不限制地域,但是承載開源這件事情的通常是一個(gè)商業(yè)實(shí)體,商業(yè)實(shí)體會(huì)受到所在地區(qū)的出口管制法,或者其他制裁條例的限制。

目前,幾乎所有著名的開源軟件團(tuán)體都位于美國(guó),且有的許可證規(guī)定了管轄法院為美國(guó)法院,且適用法律為美國(guó)法。

這些事實(shí)無(wú)不在提醒我們,開源軟件受到美國(guó)出口管制的影響。

從這個(gè)角度來(lái)看,企業(yè)內(nèi)部可以建內(nèi)部代碼庫(kù),所依賴的東西可以將其放在內(nèi)部代碼庫(kù)上,萬(wàn)一有一天訪問(wèn)不了國(guó)外的開源托管平臺(tái),也有備份的源碼池可以獲得這些代碼。

從更長(zhǎng)遠(yuǎn)的角度看,開源世界是彼此相互依賴的,在一個(gè)生態(tài)當(dāng)中,誰(shuí)在生態(tài)位的高端,誰(shuí)就具備抵御相互依賴的打擊能力。

目前,在開源代碼的貢獻(xiàn)率上,中國(guó)已經(jīng)位居全球第二。

中國(guó)科技公司成為美國(guó)開源代碼托管平臺(tái)的重要客戶,中國(guó)的GitHub用戶已居全球第二,僅次于美國(guó)。

中國(guó)作為最大的開源技術(shù)受惠者之一,并正在成為最大的反哺者之一,因話語(yǔ)權(quán)的不斷擴(kuò)大也將降低開源斷供的風(fēng)險(xiǎn)。

同時(shí),國(guó)家層面也在主導(dǎo)建設(shè)自己的開源社區(qū)和開源平臺(tái),開展“開源生態(tài)培育”專項(xiàng)行動(dòng),統(tǒng)籌推進(jìn)建設(shè)高水平基金會(huì),打造優(yōu)秀開源項(xiàng)目,建設(shè)我國(guó)自己的開源生態(tài)體系。

結(jié)語(yǔ)

開源風(fēng)險(xiǎn)從來(lái)不是一個(gè)簡(jiǎn)單的問(wèn)題,對(duì)于開源軟件的風(fēng)險(xiǎn)管理,其實(shí)是一個(gè)軟件生態(tài)式的管理,涉及軟件開發(fā)使用過(guò)程中的各種角色。

無(wú)論是哪一方,都需要盡快提升開源安全合規(guī)意識(shí),并遵循國(guó)際上的開源風(fēng)險(xiǎn)治理最佳實(shí)踐,盡量將開源風(fēng)險(xiǎn)扼殺在源頭。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論