侵權(quán)投訴
訂閱
糾錯(cuò)
加入自媒體

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

過去幾年,開源界一片火熱,開源軟件技術(shù)已全面進(jìn)軍操作系統(tǒng)、云原生、人工智能、大數(shù)據(jù)、半導(dǎo)體、物聯(lián)網(wǎng)等行業(yè)領(lǐng)域。數(shù)據(jù)顯示,我國超九成企業(yè)在使用或正計(jì)劃使用開源技術(shù)。與此同時(shí),全球各大開源組織相繼興起,頭部科技企業(yè)均投入大量人力進(jìn)行開源生態(tài)建設(shè)。然而,隨著開源軟件的發(fā)展,其數(shù)量和影響力在不斷的上升,開源風(fēng)險(xiǎn)也隨之而來。

不恰當(dāng)?shù)厥褂瞄_源軟件,可能會(huì)給企業(yè)造成負(fù)面輿論甚至經(jīng)濟(jì)損失的風(fēng)險(xiǎn)。2021年12月,抖音海外版TikTok上線了一款名為TikTok Live Studio的APP,但不久其下載頁面就被刪除。

TikTok官方對此事做出回應(yīng),原因是該APP違反GPL許可證,使用了GPL許可證下的開源軟件源碼,卻沒有按照GPL許可證要求開源。近年來,類似抖音因違規(guī)使用開源軟件而引發(fā)開源合規(guī)風(fēng)險(xiǎn)的案例屢有發(fā)生。但開源軟件的風(fēng)險(xiǎn)并不止于此,看似免費(fèi)使用的開源代碼之下,暗藏著多重風(fēng)險(xiǎn)。

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

一般來說,開源軟件的風(fēng)險(xiǎn)可能來自四個(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)目包含了已知的第三方庫安全漏洞,也就是說接近1/3的軟件項(xiàng)目都包含了已知安全漏洞,足以可見安全漏洞的普遍性。而軟件供應(yīng)鏈方面的安全問題,是比較難以發(fā)現(xiàn)的。例如Log4Shell與Spring4Shell是2021-2022年影響非常廣泛的兩個(gè)安全漏洞。

這類安全漏洞的特點(diǎn)在于,通過對供應(yīng)鏈上游軟件進(jìn)行攻擊,進(jìn)而可以影響大量下游使用的軟件。在這種情況下,開源軟件來源的安全把控非常重要,但目前開源軟件供應(yīng)鏈面臨的最大挑戰(zhàn),就是企業(yè)自己都不知道用了哪些開源軟件,大公司已經(jīng)開始關(guān)注到開源合規(guī)治理的內(nèi)容,但是很多小公司還沒有這個(gè)意識。

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

其中又分為許可證協(xié)議和專利方面的風(fēng)險(xiǎn)。常見的許可證主要有GPL、LGPL、AGPL、MPL、MIT、BSD、Apache,各個(gè)許可證還包含不同版本。根據(jù)使用條件不同,可以將這些許可證大致分為兩類:Copyleft 許可證和寬松許可證(permissive license),主要對使用、修改和分發(fā)的場景作出相應(yīng)約束。由于目前很多的開源項(xiàng)目里面嵌套著其他開源項(xiàng)目,那么可能存在內(nèi)部許可證上的沖突。對于代碼組件的分析,以及對組件背后相應(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è)自己沒有能力支撐,或沒有商業(yè)公司幫忙的話,開源項(xiàng)目的維護(hù)成本也很高。

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

俄烏事件后,GitHub不允許俄羅斯開發(fā)人員下載代碼,甚至把俄羅斯賬號的代碼提交刪掉,這一“斷供”事件為全球開發(fā)者敲響了警鐘。此外,2022年1月,Faker.js 的作者主動(dòng)惡意破壞自己的項(xiàng)目后“刪庫跑路”,甚至還注入了導(dǎo)致程序死循環(huán)的惡意代碼,引起眾多應(yīng)用程序崩潰,瞬間引發(fā)了開源圈“震動(dòng)”。

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

面對開源軟件的種種風(fēng)險(xiǎn),企業(yè)和開發(fā)者應(yīng)如何安全合規(guī)地使用開源技術(shù),合理“避坑”呢?事實(shí)上,無論是開源還是閉源,本質(zhì)上都是軟件,都會(huì)存在安全漏洞,不能因?yàn)楹ε嘛L(fēng)險(xiǎn)而拒絕使用開源軟件。因此,業(yè)內(nèi)專家提出了一些應(yīng)對開源安全風(fēng)險(xiǎn)問題的辦法,從多個(gè)角度來提升開源軟件的安全性。

首先,針對整個(gè)開源軟件供應(yīng)鏈安全加大關(guān)注,去尋找供應(yīng)鏈中相對來說比較薄弱的風(fēng)險(xiǎn)點(diǎn),并在這個(gè)風(fēng)險(xiǎn)點(diǎn)上加大投入。中國信通院云大所開源和軟件安全部副主任郭雪認(rèn)為,在企業(yè)側(cè)有三個(gè)重要的關(guān)鍵動(dòng)作:建立相應(yīng)的開源安全管理的流程機(jī)制;勇于盤點(diǎn)軟件資產(chǎn),建立SBOM軟件物料清單,對所有的組件一目了然。建立預(yù)警機(jī)制、維護(hù)團(tuán)隊(duì)和維護(hù)機(jī)制。例如,長期追蹤開源軟件最近是否有更新和版本發(fā)布,并檢查目前使用的版本是否有安全漏洞等。安全漏洞發(fā)生后的第一時(shí)間,及時(shí)去打相應(yīng)的補(bǔ)丁等。

其次,在使用開源軟件時(shí),需要謹(jǐn)慎選擇開源軟件,關(guān)注其開源許可證的內(nèi)容及相關(guān)條件,避免潛在的法律風(fēng)險(xiǎn)。對此,企業(yè)應(yīng)當(dāng)建立一個(gè)完善機(jī)制,識別企業(yè)中所使用的開源軟件清單,明確對應(yīng)的開源許可證及權(quán)利約束,及時(shí)規(guī)避相關(guān)合規(guī)風(fēng)險(xiǎn)。同時(shí),通過隔離機(jī)制避免開源許可證傳染。

例如,對于MPL許可證下代碼的使用,應(yīng)把該許可證的代碼放在單獨(dú)的文件內(nèi)避免許可證傳染;LGPL下的代碼,可采用動(dòng)態(tài)鏈接調(diào)用該許可證的庫實(shí)現(xiàn)隔離。目前,國內(nèi)很多大中型公司已經(jīng)成立了專門的開源治理辦公室,以應(yīng)對開源合規(guī)問題。據(jù)上海安勢信息技術(shù)有限公司資深解決方案架構(gòu)師朱賢曼介紹,在實(shí)際業(yè)務(wù)中,對商業(yè)應(yīng)用比較友好的是Apache,法務(wù)風(fēng)險(xiǎn)相對較低,而AGPL、SSPL一般很多公司會(huì)直接禁用。

企業(yè)在對外發(fā)布開源項(xiàng)目時(shí),如果希望商業(yè)化之后保留一個(gè)商業(yè)版本、一個(gè)社區(qū)版本,可能會(huì)選擇類似GPL的許可,一方面可以收集到用戶意見,也就是開源的反饋意見,用于改進(jìn)商業(yè)版,同時(shí)也不希望被直接白嫖。此外,國家層面也在慢慢重視開源合規(guī),出臺了開源技術(shù)相關(guān)的法律法規(guī)。

例如,2021年,中國人民銀行、中央網(wǎng)信辦等五部門聯(lián)合發(fā)布了《關(guān)于規(guī)范金融業(yè)開源技術(shù)應(yīng)用與發(fā)展的意見》,對金融機(jī)構(gòu)安全可控、合規(guī)使用開源技術(shù)進(jìn)行了指導(dǎo)和規(guī)范。其中,《意見》明確提出:推動(dòng)金融機(jī)構(gòu)建立健全評估體系;支持金融機(jī)構(gòu)對開源技術(shù)版權(quán)、專利、商標(biāo)、聲明等進(jìn)行事前合規(guī)審查,梳理開源技術(shù)間依賴性等,避免法律糾紛;支持金融機(jī)構(gòu)制定應(yīng)急處置預(yù)案;支持金融機(jī)構(gòu)加強(qiáng)開源技術(shù)供應(yīng)鏈管理,通過合同或協(xié)議條款,明確開源技術(shù)提供商義務(wù)和責(zé)任等!

第三,如果企業(yè)自己沒有支持開源軟件的能力,建議選擇有商業(yè)背景的公司,可以購買公司提供的服務(wù)。企業(yè)可以與其簽訂法律合同,提出SLA或問題修復(fù)時(shí)效相關(guān)的承諾,這些開源軟件背后的公司扮演了一個(gè)讓供應(yīng)鏈更牢固的角色。

最后,斷供事件不可避免,中國企業(yè)還需未雨綢繆。開源本身不限制地域,但是承載開源這件事情的通常是一個(gè)商業(yè)實(shí)體,商業(yè)實(shí)體會(huì)受到所在地區(qū)的出口管制法,或者其他制裁條例的限制。目前,幾乎所有著名的開源軟件團(tuán)體都位于美國,且有的許可證規(guī)定了管轄法院為美國法院,且適用法律為美國法。

這些事實(shí)無不在提醒我們,開源軟件受到美國出口管制的影響。從這個(gè)角度來看,企業(yè)內(nèi)部可以建內(nèi)部代碼庫,所依賴的東西可以將其放在內(nèi)部代碼庫上,萬一有一天訪問不了國外的開源托管平臺,也有備份的源碼池可以獲得這些代碼。從更長遠(yuǎn)的角度看,開源世界是彼此相互依賴的,在一個(gè)生態(tài)當(dāng)中,誰在生態(tài)位的高端,誰就具備抵御相互依賴的打擊能力。

目前,在開源代碼的貢獻(xiàn)率上,中國已經(jīng)位居全球第二。中國科技公司成為美國開源代碼托管平臺的重要客戶,中國的GitHub用戶已居全球第二,僅次于美國。中國作為最大的開源技術(shù)受惠者之一,并正在成為最大的反哺者之一,因話語權(quán)的不斷擴(kuò)大也將降低開源斷供的風(fēng)險(xiǎn)。同時(shí),國家層面也在主導(dǎo)建設(shè)自己的開源社區(qū)和開源平臺,開展“開源生態(tài)培育”專項(xiàng)行動(dòng),統(tǒng)籌推進(jìn)建設(shè)高水平基金會(huì),打造優(yōu)秀開源項(xiàng)目,建設(shè)我國自己的開源生態(tài)體系。

結(jié)語

開源風(fēng)險(xiǎn)從來不是一個(gè)簡單的問題,對于開源軟件的風(fēng)險(xiǎn)管理,其實(shí)是一個(gè)軟件生態(tài)式的管理,涉及軟件開發(fā)使用過程中的各種角色。無論是哪一方,都需要盡快提升開源安全合規(guī)意識,并遵循國際上的開源風(fēng)險(xiǎn)治理最佳實(shí)踐,盡量將開源風(fēng)險(xiǎn)扼殺在源頭。

       原文標(biāo)題 : 開源真的香,風(fēng)險(xiǎn)知多少?

聲明: 本文由入駐維科號的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報(bào)。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個(gè)字

您提交的評論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

    安防 獵頭職位 更多
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號