軟件供應(yīng)鏈安全如此重要,但為什么難以解決?

科技云報(bào)道原創(chuàng)。

軟件供應(yīng)鏈安全如今已經(jīng)成了一個(gè)世界性難題。從2021年底Apache Log4j“核彈級(jí)”風(fēng)險(xiǎn)爆發(fā),時(shí)至今日影響仍然存在,保障軟件供應(yīng)鏈安全已成為業(yè)界關(guān)注焦點(diǎn)。

但近2年時(shí)間過(guò)去了,軟件供應(yīng)鏈安全問(wèn)題似乎并沒(méi)有得以緩解,安全事件層出不窮,開(kāi)源漏洞風(fēng)險(xiǎn)與日俱增。

Venafi對(duì)來(lái)自全球不同企業(yè)的1000位CIO調(diào)研顯示,其中82%的人表示他們的組織容易受到針對(duì)軟件供應(yīng)鏈的網(wǎng)絡(luò)攻擊。

奇安信《2023中國(guó)軟件供應(yīng)鏈安全分析報(bào)告》顯示,開(kāi)源項(xiàng)目維護(hù)者對(duì)安全問(wèn)題的重視度和修復(fù)積極性較低。

同時(shí),不活躍(超過(guò)一年未更新發(fā)布過(guò)版本)的開(kāi)源軟件,一旦出現(xiàn)安全漏洞,難以得到及時(shí)修復(fù)。

為什么人人都知道軟件供應(yīng)鏈安全問(wèn)題很重要,卻難以解決?

軟件供應(yīng)鏈安全與開(kāi)源息息相關(guān)

要搞清楚軟件供應(yīng)鏈安全的癥結(jié),先得厘清其涵義。

基于中國(guó)信通院的定義,軟件供應(yīng)鏈安全是指“軟件供應(yīng)鏈上軟件設(shè)計(jì)與開(kāi)發(fā)的各個(gè)階段中來(lái)自本身的編碼過(guò)程、工具、設(shè)備或供應(yīng)鏈上游的代碼、模塊和服務(wù)的安全,以及軟件交付渠道及使用過(guò)程安全的總和?!?/p>

這里是把軟件供應(yīng)鏈安全分為了兩部分:一是軟件自身的供應(yīng)鏈安全,二是軟件供應(yīng)鏈交界面的安全管理。

軟件自身的供應(yīng)鏈,可以簡(jiǎn)單理解為應(yīng)用的代碼來(lái)源,應(yīng)用的代碼來(lái)源主要有兩個(gè)部分:一個(gè)是產(chǎn)品研發(fā)自己寫(xiě)的代碼,另一個(gè)就是引入的第三方的開(kāi)源組件代碼。針對(duì)這兩者的安全檢測(cè)也是我們常說(shuō)的開(kāi)發(fā)安全。

軟件供應(yīng)鏈交接界面,針對(duì)的是開(kāi)源軟件或者商業(yè)采購(gòu)第三方軟件。

這部分的供應(yīng)鏈安全管理,主要是在交付和使用過(guò)程中進(jìn)行相關(guān)的準(zhǔn)入檢測(cè),并形成標(biāo)準(zhǔn)化可溯源的軟件物料清單。

事實(shí)上,軟件供應(yīng)鏈的安全的重要性提升和開(kāi)源的大趨勢(shì)是息息相關(guān)的。

軟件開(kāi)源化的趨勢(shì)是一個(gè)累積的過(guò)程,十幾年的時(shí)間經(jīng)歷了一個(gè)量變到質(zhì)變的階段,現(xiàn)在全球的開(kāi)發(fā)者都在依賴(lài)開(kāi)源組件來(lái)做應(yīng)用的研發(fā),絕大多數(shù)現(xiàn)代代碼庫(kù)都包含開(kāi)源組件。

但是開(kāi)源的繁榮本身就建立在一系列自由許可協(xié)議和免責(zé)條款上——其中也包括風(fēng)險(xiǎn)免責(zé),“使用者風(fēng)險(xiǎn)自負(fù)”是開(kāi)源社區(qū)的共識(shí)。

近年來(lái),開(kāi)源軟件自身的安全狀況持續(xù)下滑,企業(yè)軟件開(kāi)發(fā)中因使用開(kāi)源軟件而引入安全風(fēng)險(xiǎn)的狀況更加糟糕,例如:危險(xiǎn)開(kāi)源組件的使用、自研代碼缺陷漏洞引入、容器鏡像漏洞引入等,這些風(fēng)險(xiǎn)導(dǎo)致軟件系統(tǒng)的整體安全防護(hù)難度越來(lái)越大。

因此,開(kāi)源軟件供應(yīng)鏈安全風(fēng)險(xiǎn)治理任重道遠(yuǎn)。

直面軟件供應(yīng)鏈安全治理挑戰(zhàn)

盡管業(yè)界已經(jīng)普遍認(rèn)識(shí)到軟件供應(yīng)鏈安全的重要性,但治理起來(lái)依然面臨重重挑戰(zhàn)。

騰訊安全開(kāi)發(fā)安全專(zhuān)家劉天勇表示,從技術(shù)角度看,軟件供應(yīng)鏈安全的治理的難點(diǎn)可以分成三部分:

一是檢測(cè)門(mén)檻高。

開(kāi)源組件的來(lái)源復(fù)雜,依靠單一的技術(shù)手段難以做到全面覆蓋。

市面上常見(jiàn)的開(kāi)源組件檢測(cè)技術(shù)是基于源代碼的SCA分析,但基于源碼的SCA難以覆蓋軟件供應(yīng)鏈交接界面的第三方軟件成品。

二是修復(fù)成本高。

在企業(yè)開(kāi)始做開(kāi)源組件的風(fēng)險(xiǎn)治理的時(shí)候,存量業(yè)務(wù)往往會(huì)發(fā)現(xiàn)大量的漏洞,但這些業(yè)務(wù)大多數(shù)處于上線(xiàn)運(yùn)營(yíng)的階段,修復(fù)的過(guò)程對(duì)研發(fā)資源是一個(gè)較大的消耗,同時(shí)對(duì)安全團(tuán)隊(duì)來(lái)說(shuō)也是較大的推動(dòng)阻力。

三是攻擊影響范圍廣。

第三方開(kāi)源組件的使用,間接擴(kuò)大了軟件的受攻擊面,針對(duì)上游供應(yīng)鏈環(huán)節(jié)的漏洞挖掘和惡意利用,能夠快速覆蓋大量的下游軟件,同時(shí)相關(guān)的攻擊具有較高的隱蔽性,常用的安全檢測(cè)手段難以進(jìn)行全面的防御,目前軟件供應(yīng)鏈攻擊已經(jīng)成為攻防演練中非常常用的攻擊手段。

此外,供應(yīng)商對(duì)產(chǎn)品安全性的重視程度不足、開(kāi)發(fā)人員安全開(kāi)發(fā)能力有限等,導(dǎo)致第三方供應(yīng)商產(chǎn)品安全質(zhì)量參差不齊,也加大了軟件供應(yīng)鏈安全治理的難度。

那么,企業(yè)該如何應(yīng)對(duì)這些挑戰(zhàn)?在技術(shù)上是否有對(duì)應(yīng)的解決手段?

SCA和SBOM

當(dāng)前,SCA(Software Composition Analysis)是目前業(yè)界主要的解決開(kāi)源組件風(fēng)險(xiǎn)檢測(cè)的手段。

SCA是一類(lèi)工具的統(tǒng)稱(chēng),可以通過(guò)分析源代碼識(shí)別其中引用的開(kāi)源組件信息(名稱(chēng)、版本、校驗(yàn)值)、組件漏洞、開(kāi)源協(xié)議等信息,從而幫助開(kāi)發(fā)人員和安全人員快速對(duì)于企業(yè)代碼中的開(kāi)源風(fēng)險(xiǎn)進(jìn)行識(shí)別。

隨著供應(yīng)鏈安全開(kāi)始獲得更多關(guān)注,SCA工具內(nèi)置了對(duì)與跟蹤組件相關(guān)的漏洞和安全風(fēng)險(xiǎn)的更深入分析和管理,并成為企業(yè)生成SBOM和管理其開(kāi)源使用的主要方法之一。

Linux基金會(huì)最近的一項(xiàng)調(diào)查發(fā)現(xiàn),SBOM的意識(shí)度很高,目前有47%的IT供應(yīng)商、服務(wù)提供商和受監(jiān)管的行業(yè)在使用SBOM,88%的受訪者預(yù)計(jì)將在2023年使用SBOM。

代碼掃描和滲透測(cè)試

保護(hù)軟件供應(yīng)鏈的核心是一個(gè)應(yīng)用程序安全問(wèn)題,因此傳統(tǒng)的應(yīng)用程序安全代碼掃描工具將在這個(gè)解決方案堆棧中發(fā)揮重要作用。

靜態(tài)應(yīng)用程序安全測(cè)試(SAST)、動(dòng)態(tài)應(yīng)用程序安全測(cè)試(DAST)、交互式應(yīng)用程序安全測(cè)試 (IAST)和運(yùn)行時(shí)應(yīng)用程序掃描保護(hù)(RASP)工具,以及明智地使用滲透測(cè)試,可以幫助企業(yè)測(cè)試他們自己的內(nèi)部代碼,并提供對(duì)第三方代碼的進(jìn)一步檢查,以作為應(yīng)對(duì)風(fēng)險(xiǎn)的后盾。

相比于SCA和SBOM產(chǎn)品依賴(lài)于已知的、先前發(fā)現(xiàn)的漏洞,徹底的應(yīng)用程序滲透評(píng)估可能會(huì)在檢查第三方庫(kù)和框架時(shí)識(shí)別出脆弱的代碼使用情況,而這些代碼以前可能在其他地方?jīng)]有報(bào)告過(guò)。

此外,共享機(jī)密掃描和管理也正在從一個(gè)獨(dú)立的工具類(lèi)別快速轉(zhuǎn)變?yōu)橐粋€(gè)功能,該功能正在融入軟件供應(yīng)鏈安全工具的各個(gè)方面。

這是因?yàn)樵陂_(kāi)發(fā)和實(shí)際環(huán)境中,針對(duì)嵌入在源代碼、配置文件和基礎(chǔ)設(shè)施代碼中的機(jī)密數(shù)據(jù)的網(wǎng)絡(luò)攻擊活動(dòng)仍然猖獗,因此迫切需要解決這個(gè)問(wèn)題。

此外,依賴(lài)關(guān)系管理和分析、受信任的存儲(chǔ)庫(kù)和注冊(cè)中心、安全代碼簽名、CI/ CD管道安全性、第三方風(fēng)險(xiǎn)管理平臺(tái)、IaC安全和CNAPP,都是軟件供應(yīng)鏈安全治理要重點(diǎn)關(guān)注的對(duì)象。

正如Gartner公司的高級(jí)主管兼應(yīng)用安全分析師Dale Gardner所說(shuō):“當(dāng)人們關(guān)注供應(yīng)鏈安全時(shí),他們關(guān)注的是使用SCA、SBOM等工具,這些都是解決方案中非常重要的部分,但它們實(shí)際上只是一種不全面的解決方案?!?/p>

軟件供應(yīng)鏈安全治理并非純粹的技術(shù)問(wèn)題

事實(shí)上,軟件供應(yīng)鏈安全問(wèn)題是人、流程和知識(shí)的問(wèn)題,而非純粹的技術(shù)問(wèn)題。

在解決軟件研發(fā)過(guò)程的供應(yīng)鏈安全問(wèn)題時(shí),需要貼合SDLC(軟件開(kāi)發(fā)生命周期)考慮供應(yīng)鏈安全風(fēng)險(xiǎn)。

為此,Goolge提出了SLSA(Supply-chain Levels for Software Artifacts)框架,微軟提出了SCIM(Supply Chain Integrity Model)框架以及CNCF(云原生計(jì)算基金會(huì))的軟件供應(yīng)鏈最佳實(shí)踐,三種框架都強(qiáng)調(diào)對(duì)于源代碼、第三方依賴(lài)、構(gòu)建系統(tǒng)、制品、發(fā)布、部署的安全性。

以SLSA框架為例,SLSA是一個(gè)標(biāo)準(zhǔn)清單和控制框架,用于緩解軟件項(xiàng)目中的代碼和軟件包的供應(yīng)鏈風(fēng)險(xiǎn)。

SLSA框架從三個(gè)方面評(píng)估軟件供應(yīng)鏈的安全等級(jí),分別是源碼、構(gòu)建和依賴(lài),并可劃分為4個(gè)級(jí)別:

Level 1:構(gòu)建過(guò)程是完全腳本化或自動(dòng)化,且能夠基于結(jié)果識(shí)別來(lái)源源碼;

Level 2:使用有身份認(rèn)證能力的版本控制和托管服務(wù),確保構(gòu)建來(lái)源是可信的;

Level 3:源碼和構(gòu)建平臺(tái)符合可審計(jì)標(biāo)準(zhǔn),且有成品完整性保證;

Level 4:所有變更均有雙人評(píng)審,且有封閉的、可重復(fù)的構(gòu)建過(guò)程。

以Level 4等級(jí)要求為例,在軟件構(gòu)建過(guò)程中企業(yè)需要實(shí)踐以下4點(diǎn):可驗(yàn)證的版本控制、雙人評(píng)審、安全的自動(dòng)化構(gòu)建流程/環(huán)境、可重復(fù)構(gòu)建的流程。

結(jié)語(yǔ)

軟件供應(yīng)鏈上每一個(gè)環(huán)節(jié)的安全問(wèn)題,都有可能成為黑客攻擊的切入口。千里之堤毀于蟻穴,把住軟件供應(yīng)鏈每個(gè)關(guān)卡,莫讓小小漏洞成為洪水猛獸。

免責(zé)聲明:此文內(nèi)容為第三方自媒體作者發(fā)布的觀察或評(píng)論性文章,所有文字和圖片版權(quán)歸作者所有,且僅代表作者個(gè)人觀點(diǎn),與極客網(wǎng)無(wú)關(guān)。文章僅供讀者參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。投訴郵箱:editor@fromgeek.com。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。

2023-08-30
軟件供應(yīng)鏈安全如此重要,但為什么難以解決?
軟件供應(yīng)鏈安全如此重要,但為什么難以解決?

長(zhǎng)按掃碼 閱讀全文