新思科技:構(gòu)建可信軟件不容忽視開源組件和依賴管理
開源已經(jīng)成為軟件行業(yè)的趨勢。然而,由于開源使用的便捷性,有些企業(yè)可能會(huì)忽略其帶來的風(fēng)險(xiǎn)。開源組件和依賴管理對于軟件安全性和可信性來說極其重要。
本文引用地址:http://www.ex-cimer.com/article/202211/440683.htm
開源軟件無處不在。無論在什么行業(yè),每個(gè)企業(yè)都需要依賴軟件來滿足其業(yè)務(wù)需要。而且,企業(yè)構(gòu)建和使用的大多數(shù)應(yīng)用程序都包含了開源代碼。隨著各行各業(yè)遷移至云原生應(yīng)用以及應(yīng)用程序越來越復(fù)雜,軟件的安全風(fēng)險(xiǎn)也隨之增長。企業(yè)需要在其軟件開發(fā)生命周期(SLDC)中實(shí)施開源依賴最佳實(shí)踐,并選擇正確的工具來管理其開源風(fēng)險(xiǎn)。新思科技指出對開發(fā)人員進(jìn)行開源安全培訓(xùn)和部署強(qiáng)大的軟件組成分析(SCA)工具,都是保護(hù)代碼、降低開源軟件風(fēng)險(xiǎn)的關(guān)鍵步驟。
新思科技中國區(qū)軟件應(yīng)用安全業(yè)務(wù)總監(jiān)楊國梁表示:“開源已經(jīng)被明確列入了中國‘十四五’規(guī)劃,其價(jià)值正在被越來越多的領(lǐng)域所認(rèn)可。雖然憑借其開放、協(xié)作、共享的特性,開源這一賽道持續(xù)火熱。但其中的風(fēng)險(xiǎn)隱患也不容忽視。過度依賴開源組件可能導(dǎo)致產(chǎn)品同質(zhì)化;更需要重視的是,這還會(huì)增加安全風(fēng)險(xiǎn)、知識產(chǎn)權(quán)風(fēng)險(xiǎn)、供應(yīng)鏈安全風(fēng)險(xiǎn)等。企業(yè)需要制定清晰的開源策略,并在內(nèi)部及供應(yīng)鏈貫徹該策略,借助可靠的測試工具,以滿足業(yè)務(wù)發(fā)展需求的速度開發(fā)可信軟件產(chǎn)品。”
新思科技發(fā)布的《2022年開源安全和風(fēng)險(xiǎn)分析》報(bào)告(OSSRA)強(qiáng)調(diào)了在商業(yè)和專有應(yīng)用程序中使用開源的趨勢,并提供了見解,以幫助開發(fā)人員更好地了解他們所處的互聯(lián)軟件生態(tài)系統(tǒng),同時(shí)還詳細(xì)地介紹了非托管開源所帶來的安全隱患,包括安全漏洞、過期或廢棄的組件以及許可證合規(guī)性問題。該報(bào)告調(diào)研了17個(gè)行業(yè),其中計(jì)算機(jī)硬件和半導(dǎo)體、網(wǎng)絡(luò)安全、能源與清潔技術(shù),以及物聯(lián)網(wǎng)這四個(gè)行業(yè)被審計(jì)的代碼庫中100%包含開源組件。其余的垂直行業(yè)的代碼庫中有93%到99%包含開源組件。
報(bào)告還發(fā)現(xiàn)許可證沖突總體上在減少。超過一半(53%)的被審代碼庫存在許可證沖突,與 2020 年的 65% 相比大幅下降。盡管如此,未經(jīng)審查的依賴關(guān)系的用例有所增加。也就是說,當(dāng)開發(fā)人員引入開源依賴項(xiàng)時(shí),他們通常不知道其中包含許可條款的子依賴項(xiàng)。例如,常用的 node.js 組件的某些版本包含一個(gè)依賴項(xiàng),該依賴項(xiàng)使用了 CC-SA 3 許可協(xié)議下許可的代碼,這可能會(huì)對被許可人提出非預(yù)期的要求,需要對可能的知識產(chǎn)權(quán)IP問題或其它影響進(jìn)行法律評估。
更糟糕的是使用過時(shí)的開源組件仍然是常態(tài)。在新思科技Black Duck審計(jì)服務(wù)團(tuán)隊(duì)今年分析的2,097個(gè)代碼庫中, 88%的代碼庫包含過時(shí)版本的組件。這意味著,市場上有可用的更新/修復(fù)版本,但開發(fā)人員并未采用。
沒有將軟件升級到最新版本的理由有很多。但是,如果沒有一份清單,準(zhǔn)確列明其在代碼使用的開源組件,那過時(shí)的組件可能就會(huì)被遺忘;直到變成一個(gè)易受攻擊的高風(fēng)險(xiǎn)漏洞。
這正是Log4j漏洞產(chǎn)生的原因。漏洞本身固然危險(xiǎn),但引起企業(yè)恐慌和混亂的是,當(dāng)他們試圖修復(fù)漏洞時(shí),卻不知道Log4j在其系統(tǒng)和應(yīng)用程序中的位置。甚至有的企業(yè)還在著急地檢查他們是否應(yīng)用了Log4j。
在危機(jī)發(fā)生之前建立開源依賴最佳實(shí)踐
建立一個(gè)全面的開源軟件管理程序或許令人望而卻步,但企業(yè)可以參考一些最佳實(shí)踐,以循環(huán)漸進(jìn)提升開源軟件安全。
為了避免“零日漏洞”帶來的風(fēng)險(xiǎn),保護(hù)資源和數(shù)據(jù),企業(yè)需要建立軟件治理,包括制定策略、設(shè)置審批流程以及對現(xiàn)有開源軟件依賴項(xiàng)進(jìn)行全面審計(jì)。
1. 制定策略
制定開源策略可以最大限度地降低使用開源軟件的法律、技術(shù)和業(yè)務(wù)風(fēng)險(xiǎn)。有一些企業(yè)甚至設(shè)立開源項(xiàng)目辦公室,以管理與開源軟件相關(guān)的所有事宜。
制定開源策略的第一步是要明確主要利益相關(guān)者。這包括開發(fā)人員、高層管理人員、IT人員、使用開源組件的團(tuán)隊(duì)經(jīng)理、就開源許可證合規(guī)性提供建議的法律專家以及軟件架構(gòu)師等。他們都會(huì)受到策略的影響。所有利益相關(guān)者都應(yīng)該今早參與到開源相關(guān)流程。
開源策略應(yīng)該列明企業(yè)使用開源組件的目的;目前使用多少開源組件;如何使用開源組件;包含哪些開源許可證;開源軟件的使用對于內(nèi)部開發(fā)和交付的軟件有何不同等。企業(yè)還需要建立開源軟件采購和選擇流程。比較理想的情況下,該流程標(biāo)明允許使用的網(wǎng)站、存儲(chǔ)庫、獲取開源軟件的方法,以及如何確定特定軟件包是否適用。此外,還需要規(guī)定誰可以下載開源軟件、從哪里下載,以及在下載、使用或分發(fā)之前是否需要許可。
2. 設(shè)置審批流程
您還應(yīng)該建立一個(gè)審批流程,以確定軟件包是否滿足企業(yè)的需求和質(zhì)量標(biāo)準(zhǔn)。 需要考慮的標(biāo)準(zhǔn)包括代碼質(zhì)量、支持級別、項(xiàng)目成熟度、貢獻(xiàn)者聲譽(yù)和漏洞趨勢。
如果流程審批要發(fā)揮作用,則需要快速處理請求。 建立一個(gè)預(yù)先批準(zhǔn)的開源列表可以幫助加速處理請求。
3. 創(chuàng)建審計(jì)流程以檢測開源軟件
除了確保遵守內(nèi)部政策外,審計(jì)還可以全面了解正在使用的開源軟件。 這將幫助識別和定位開源組件,對于維護(hù)開源許可證合規(guī)性至關(guān)重要。而且,當(dāng)有漏洞披露時(shí),企業(yè)也可以盡快響應(yīng)。
為了查明應(yīng)用中易受攻擊的組件,您必須首先掌握應(yīng)用中的所有開源組件。 這需要考慮代碼的所有版本和fork,檢測源代碼和二進(jìn)制形式的組件,分析經(jīng)常嵌入開源的商業(yè)軟件,并檢查包管理器中聲明以外的內(nèi)容。 手動(dòng)記錄開源清單通常不準(zhǔn)確,將這些任務(wù)自動(dòng)化很有必要。
審計(jì)后,企業(yè)將能夠創(chuàng)建任務(wù)列表和相應(yīng)的計(jì)劃,以幫助改善軟件并實(shí)現(xiàn)合規(guī)性。 此類任務(wù)可能包括提供源代碼,包括代碼或文檔中所需的通知,以及更新最終用戶許可協(xié)議。 如不符合合規(guī)性,您需要尋找替代方案,例如不同的庫。
評論