飛象網(wǎng)訊 軟件供應(yīng)鏈環(huán)節(jié)多且復(fù)雜。網(wǎng)絡(luò)不法分子可能只需攻擊其中某個有缺陷的環(huán)節(jié),就能造成大規(guī)模的破壞。他們可以通過多種途徑攻擊軟件供應(yīng)鏈,比如通過攻擊網(wǎng)站建設(shè)者、開源組件或第三方數(shù)據(jù)存儲等。
近幾個月,Log4Shell漏洞風(fēng)波未平,Spring4Shell漏洞風(fēng)險又起。這兩個零日漏洞都反映了不安全的開源組件可能對業(yè)務(wù)產(chǎn)生影響。Log4j2是支持企業(yè)應(yīng)用日志功能的開源組件;Spring Core Framework是Java軟件開發(fā)中最常用的框架之一。大多數(shù)企業(yè)級應(yīng)用,包括我們常用的購物網(wǎng)站、社交媒體等,都有很大幾率用到這些組件。一旦遭遇攻擊,影響范圍甚廣。
新思科技(Synopsys)發(fā)布的《2021年開源安全和風(fēng)險分析》報告(OSSRA)曾指出,開源和第三方軟件的使用持續(xù)快速增長。這意味著開發(fā)團(tuán)隊在企業(yè)軟件開發(fā)生命周期(SDLC)中一般會以某種形式引入開源組件。
新思科技中國區(qū)軟件應(yīng)用安全技術(shù)總監(jiān)楊國梁指出:“如果您的團(tuán)隊是軟件提供商,那么對開源的使用以及構(gòu)建應(yīng)用程序所依賴的第三方和商業(yè)組件,將使您成為供應(yīng)鏈的一部分。不過,需要注意的是,這條供應(yīng)鏈并不是只有您的團(tuán)隊,它不限于開發(fā)和交付環(huán)節(jié),而是一直延伸到應(yīng)用程序的最終用戶。供應(yīng)鏈包含與應(yīng)用程序相關(guān)或在其編寫、開發(fā)和部署中使用到的所有組件和服務(wù)。由此可見,供應(yīng)鏈還包括由開發(fā)團(tuán)隊創(chuàng)建的專有代碼和組件、軟件使用的 API 和云服務(wù),以及用于構(gòu)建該軟件并將其交付給最終用戶的基礎(chǔ)架構(gòu)!
從根本上講,確保軟件供應(yīng)鏈安全必須考慮如何保護(hù)應(yīng)用遠(yuǎn)離上游風(fēng)險,以及如何防止企業(yè)產(chǎn)生下游風(fēng)險。為了幫助您輕松便捷地開始解決供應(yīng)鏈安全問題,新思科技?xì)w納了有助于安全活動取得成功的六個考慮因素。
1. 您使用的開源軟件是否安全?
很難說開源軟件和閉源代碼哪一個帶來的風(fēng)險更多,然而如果不能對開源組件進(jìn)行充分防護(hù),就會給企業(yè)的整體安全帶來巨大風(fēng)險。開發(fā)人員很可能在其創(chuàng)建的所有應(yīng)用程序中都使用開源組件。新思科技2021年OSSRA報告證明了這一事實:98%的被掃描代碼庫中包含開源組件。
開源很可能被采用在每個項目,但通常不會引起注意。合作的軟件供應(yīng)商也是如此;他們的開發(fā)人員也會有意或無意地將開源引入到其項目中。雖然這本質(zhì)上并不是一件壞事,但也確實為上游風(fēng)險打開了敞口。您有責(zé)任跟蹤供應(yīng)鏈中的開源組件、許可證和漏洞及其相關(guān)風(fēng)險。鑒于這項工作規(guī)模很大,因此,僅依賴人工是行不通的,而且維護(hù)也極其費時費力。
除安全風(fēng)險外,企業(yè)或組織還必須考慮法律風(fēng)險。與安全風(fēng)險相比,許可證違規(guī)和沖突等原因而產(chǎn)生的法律影響通常不太受到關(guān)注,但很容易演變成并購、供應(yīng)商糾紛和分銷問題。供應(yīng)鏈漏洞產(chǎn)生的法律風(fēng)險會對軟件供應(yīng)商或分銷商的聲譽和財務(wù)安全構(gòu)成威脅。
另外,當(dāng)開發(fā)團(tuán)隊使用過時的組件、近期未更新的組件、或因開發(fā)社區(qū)人手不足而未能對代碼進(jìn)行積極維護(hù)的項目組件時,就可能引入運營風(fēng)險。除了帶來代碼質(zhì)量、可靠性和可維護(hù)性問題外,運營風(fēng)險也是引發(fā)安全風(fēng)險的途徑。
2. 您編寫的代碼是否安全?
由于大部分的應(yīng)用代碼都是開源代碼,因此,總體攻擊面的一大部分都是針對開源組件的,這點不足為奇。然而,確保您的開發(fā)人員編寫的代碼能夠有效地保護(hù)敏感數(shù)據(jù)和系統(tǒng)免受網(wǎng)絡(luò)攻擊仍然至關(guān)重要。
無意中編碼到應(yīng)用中的安全缺陷和漏洞為諸多攻擊打開了大門,例如緩沖區(qū)溢出、SQL注入和跨站腳本等。假如系統(tǒng)發(fā)生漏洞,這些安全缺陷會導(dǎo)致敏感數(shù)據(jù)容易暴露。攻擊者可以利用這些漏洞注入惡意代碼,然后伺機(jī)滲透操作系統(tǒng)以及運行
該軟件的企業(yè)所維護(hù)的其它系統(tǒng)
3. 您能保護(hù)自己不被故意埋下的惡意代碼所傷害嗎?
權(quán)威獨立調(diào)研公司Forrester在2021年網(wǎng)絡(luò)安全事件預(yù)測中指出,三分之一的安全漏洞由內(nèi)部威脅引起。無論是心懷不滿的開發(fā)人員創(chuàng)建后門,還是黑客入侵系統(tǒng)并發(fā)起更大的攻擊,處心積慮埋下的惡意代碼都會給您構(gòu)建和運行的軟件帶來重大風(fēng)險。由于大多數(shù)的惡意代碼都是由熟悉軟件系統(tǒng)的人員植入,因此,易受攻擊的系統(tǒng)看起來可能完全正常,導(dǎo)致使用傳統(tǒng)工具難以識別出這些風(fēng)險。
4. 您的開發(fā)和交付基礎(chǔ)架構(gòu)是否安全?
數(shù)據(jù)存儲需求不斷增長,部署期限越來越短,而且快速可擴(kuò)展性變得空前重要。面對這種情況,軟件行業(yè)越來越依賴云技術(shù)為其應(yīng)用軟件提供動力。這種云原生方法在某種程度上意味著采用能夠滿足可擴(kuò)展性和敏捷性需求的應(yīng)用部署方法。這正是容器化和基礎(chǔ)架構(gòu)即代碼 (IaC) 的用武之地。因此,企業(yè)需要很好地了解哪些軟件被打包到容器中,以及云平臺如何使用IaC來確保部署安全。
5. 您的應(yīng)用與其它系統(tǒng)進(jìn)行通信的API和協(xié)議是否安全?
API和協(xié)議允許您在應(yīng)用和用戶之間快速地傳輸數(shù)據(jù)和服務(wù)。盡管這些方法日益普及,但大多數(shù)企業(yè)都難以維護(hù)其所使用的API清單。因此,他們對哪些應(yīng)用和用戶可以訪問哪些服務(wù)的控制力有限。
缺乏對API的可視性和控制會威脅到關(guān)鍵系統(tǒng)和敏感用戶信息的安全性。黑客會伺機(jī)利用固有缺陷來執(zhí)行破壞關(guān)鍵系統(tǒng)或發(fā)動中間人攻擊(本質(zhì)上是竊聽)等行為,最終目標(biāo)是竊取密鑰、密碼、登錄憑據(jù)和賬戶詳情等信息,以便在供應(yīng)鏈的其它地方發(fā)起殺傷性更大的攻擊。
6. 您的軟件供應(yīng)鏈對客戶和其他利益相關(guān)者是否透明?
讓消費者了解他們正在采購的應(yīng)用中包含哪些組件,從而更加準(zhǔn)確及時地發(fā)現(xiàn)并消除安全與合規(guī)問題。維護(hù)軟件物料清單(SBOM)也是供應(yīng)鏈安全計劃取得成功的最佳實踐和基石。如果沒有針對應(yīng)用中所含內(nèi)容的完整動態(tài)視圖,您自己、供應(yīng)商和消費者都將無法自信地確定所面臨的風(fēng)險。
新思科技開源專家王永雷總結(jié)道:“我們建議企業(yè)結(jié)合上面列出的問題,檢查現(xiàn)有的安全活動、政策和程序。這樣可以有助于找到供應(yīng)鏈安全計劃中需要關(guān)注的薄弱環(huán)節(jié)。雖然供應(yīng)鏈安全看似遙不可及,但理清其中的關(guān)聯(lián),將其分解為清晰簡潔的考慮因素,能夠幫助您更快地構(gòu)建安全、可信的供應(yīng)鏈。當(dāng)然,這也需要借助Black Duck軟件組成分析等工具,創(chuàng)建和管理企業(yè)級的上下游軟件供應(yīng)鏈完整的SBOM,處理已識別出的薄弱環(huán)節(jié), 并消除潛在的風(fēng)險。”