大家或許都發(fā)現(xiàn)了,開(kāi)發(fā)人員愈發(fā)依賴開(kāi)源代碼來(lái)快速為其專有軟件添加功能。據(jù)估計(jì),開(kāi)源代碼占專有應(yīng)用程序代碼庫(kù)的 60-80%。相伴而來(lái)的,除了更高的效率,還有更高的風(fēng)險(xiǎn)。因此,管理開(kāi)源代碼對(duì)于降低組織的安全風(fēng)險(xiǎn)至關(guān)重要。那么,如何管理開(kāi)源代碼呢?軟件成分分析(SCA)又是如何管理開(kāi)源代碼的呢?
文章速覽:
什么是軟件成分分析?
軟件成分分析要求
為什么SCA應(yīng)該成為應(yīng)用程序安全產(chǎn)品組合的一部分
如何選擇合適的軟件成分分析工具?
一、什么是軟件成分分析?
軟件成分分析(SCA)是應(yīng)用程序安全測(cè)試(AST)工具市場(chǎng)的一部分,可用于管理開(kāi)源組件。SCA工具對(duì)應(yīng)用程序的代碼庫(kù)(包括容器和注冊(cè)表等相關(guān)部分)執(zhí)行自動(dòng)掃描,以識(shí)別所有開(kāi)源組件、許可證合規(guī)性數(shù)據(jù)以及任何安全漏洞。除了提供開(kāi)源使用的可視性,一些SCA工具還可以通過(guò)優(yōu)先級(jí)劃分和自動(dòng)修復(fù)來(lái)幫助修復(fù)開(kāi)源漏洞。
1.生成組件清單
SCA工具通常從掃描開(kāi)始,生成產(chǎn)品中所有開(kāi)源組件的清單報(bào)告,包括所有直接和間接依賴關(guān)系。掌握所有開(kāi)源組件的詳細(xì)清單是管理開(kāi)源使用的基礎(chǔ)。畢竟,如果不知道自己正在使用哪些組件,你很難確保其安全性或合規(guī)性。
2.確保許可合規(guī)性
一旦確定了所有開(kāi)源組件,SCA工具就會(huì)提供有關(guān)每個(gè)組件的信息,包括歸屬要求以及該許可證是否符合你所在組織的政策。
3.識(shí)別安全漏洞
軟件組合分析工具的主要功能之一是識(shí)別有已知漏洞的開(kāi)源組件。好的SCA解決方案不僅揭示哪些開(kāi)源庫(kù)存在已知漏洞,還會(huì)讓你知道代碼是否調(diào)用受影響的庫(kù),并做修復(fù)建議,以及識(shí)別代碼庫(kù)中需要更新或修補(bǔ)的開(kāi)源庫(kù)。
4.使用SCA可以發(fā)現(xiàn)的漏洞類(lèi)型
當(dāng)代碼存在缺陷或弱點(diǎn)時(shí),通常會(huì)出現(xiàn)開(kāi)源漏洞。這些可能是計(jì)劃外的編碼錯(cuò)誤,也可能是被蓄意插入代碼中的。攻擊者可以利用這些漏洞未經(jīng)授權(quán)地訪問(wèn)系統(tǒng)、竊取數(shù)據(jù)和對(duì)軟件或系統(tǒng)造成損壞。舊軟件或未更新的當(dāng)前軟件版本也可能導(dǎo)致漏洞。這些可能會(huì)導(dǎo)致安全漏洞,攻擊者可以利用這些漏洞滲透你的代碼并竊取敏感和有價(jià)值的數(shù)據(jù),例如,這些數(shù)據(jù)可以被禁用和勒索。
5.高級(jí)SCA功能
高級(jí)SCA解決方案還包括自動(dòng)策略執(zhí)行功能,它將代碼中找到的每個(gè)開(kāi)源組件與組織策略交叉引用,并觸發(fā)不同的響應(yīng),例如啟動(dòng)自動(dòng)審批工作流程或使編譯構(gòu)建。
高級(jí)SCA解決方案可自動(dòng)執(zhí)行開(kāi)源選擇、審批和跟蹤的整個(gè)過(guò)程。有些解決方案甚至能在提出拉取請(qǐng)求和組件進(jìn)入系統(tǒng)之前,提醒開(kāi)發(fā)人員注意組件中的漏洞。這為開(kāi)發(fā)人員節(jié)省了寶貴的時(shí)間,并提高了他們的準(zhǔn)確性。
6.SCA的局限性
SCA專注于識(shí)別和修復(fù)開(kāi)源組件和第三方依賴項(xiàng)中的風(fēng)險(xiǎn)。它并不是為了查找自定義(原始)代碼中的漏洞而設(shè)計(jì)的。例如,SCA無(wú)法緩解SolarWinds供應(yīng)鏈漏洞,因?yàn)镾olarWinds的源代碼是專有的。要掃描和修復(fù)專有代碼,請(qǐng)使用SAST(靜態(tài)應(yīng)用程序安全測(cè)試)。SCA也不會(huì)檢測(cè)不安全的網(wǎng)絡(luò)配置。
舊的SCA解決方案并非旨在掃描開(kāi)發(fā)和部署環(huán)境,因此它們無(wú)法保護(hù)軟件開(kāi)發(fā)生命周期(SDLC) 的后期部分。一些舊的SCA工具無(wú)法提供準(zhǔn)確評(píng)估任何問(wèn)題的風(fēng)險(xiǎn)影響所需的背景。這些工具可能會(huì)產(chǎn)生太多誤報(bào),從而消耗有限的資源。注意:更新、更現(xiàn)代的SCA解決方案已經(jīng)通過(guò)優(yōu)先級(jí)功能解決了這一挑戰(zhàn),因此請(qǐng)確保選擇可以做到這一點(diǎn)的解決方案。
7.軟件成分分析的演變
第一款開(kāi)源手動(dòng)掃描儀于2002年左右發(fā)布。盡管提高了企業(yè)代碼庫(kù)的可見(jiàn)性,但這種早期技術(shù)的誤報(bào)率很高,需要人工干預(yù),無(wú)法滿足敏捷開(kāi)發(fā)環(huán)境的需求。
到2011年,該技術(shù)已得到改進(jìn),能夠實(shí)時(shí)自動(dòng)檢測(cè)漏洞和許可問(wèn)題。這使得軟件和安全團(tuán)隊(duì)能夠在開(kāi)發(fā)周期的早期部署開(kāi)源管理。同時(shí),SCA 解決方案還與存儲(chǔ)庫(kù)、構(gòu)建工具、包管理器和 CI 服務(wù)器等軟件開(kāi)發(fā)工具集成,這將開(kāi)源管理和安全性的力量交給了開(kāi)發(fā)人員。盡管取得了這些進(jìn)步,SCA 仍然非常注重檢測(cè)。
8.新興技術(shù)對(duì)SCA的影響
越來(lái)越多的源代碼、組件和依賴項(xiàng)被用來(lái)創(chuàng)建新的軟件和應(yīng)用程序。據(jù)廣泛估計(jì),一些組織多達(dá)90%的源代碼現(xiàn)在都是開(kāi)源的,這意味著潛在的攻擊面已經(jīng)并將繼續(xù)擴(kuò)大。這增加了開(kāi)源漏洞的風(fēng)險(xiǎn),以及惡意軟件包滲透和攻擊軟件和應(yīng)用程序的威脅。因此,SCA的需求變得越來(lái)越重要。
9.SCA在軟件開(kāi)發(fā)中的未來(lái)
開(kāi)發(fā)人員、DevOps和DevSecOps團(tuán)隊(duì)現(xiàn)在的任務(wù)是在SDLC早期掃描、識(shí)別和修復(fù)開(kāi)源漏洞。他們正在將安全任務(wù)轉(zhuǎn)移到更早地處理和修復(fù)問(wèn)題上,而不是等到軟件準(zhǔn)備投入生產(chǎn)或發(fā)貨時(shí)才去處理和修復(fù)。
在開(kāi)發(fā)過(guò)程中還有一種更新的趨勢(shì),即“智能轉(zhuǎn)移”,它鼓勵(lì)團(tuán)隊(duì)采用靈活的掃描和修復(fù)流程,快速、輕松地修復(fù)SDLC中的代碼,并在現(xiàn)有的開(kāi)發(fā)人員工作流程中完成。現(xiàn)代SCA解決方案可以做到這一點(diǎn),還能確定漏洞的優(yōu)先級(jí),并識(shí)別出可以安全忽略的漏洞。這使得現(xiàn)代SCA成為任何強(qiáng)大應(yīng)用安全策略的核心。
10.檢測(cè)還不夠
檢測(cè)只是第一步,它無(wú)助于企業(yè)降低風(fēng)險(xiǎn),缺少補(bǔ)救措施的檢測(cè)是不完整的應(yīng)用安全模式。
因此,企業(yè)必須采用成熟的SCA安全模式,在檢測(cè)的基礎(chǔ)上進(jìn)行優(yōu)先級(jí)劃分和修復(fù),這樣開(kāi)發(fā)人員和安全專業(yè)人員就能專注于更有價(jià)值的事情。
11.優(yōu)先順序和補(bǔ)救措施
現(xiàn)代SCA解決方案將檢測(cè)和修復(fù)緊密聯(lián)系在了一起。
優(yōu)先排序
成熟的軟件成分分析工具應(yīng)包含優(yōu)先處理開(kāi)源漏洞的技術(shù)。通過(guò)自動(dòng)識(shí)別風(fēng)險(xiǎn)最大的安全漏洞,企業(yè)可以首先解決這些漏洞。開(kāi)發(fā)人員和安全專業(yè)人員就不用浪費(fèi)時(shí)間和資源,在成頁(yè)的警報(bào)中尋找最重要的漏洞,從而避免在生產(chǎn)系統(tǒng)中運(yùn)行極易被利用的漏洞。
補(bǔ)救
自動(dòng)修復(fù)漏洞不僅僅是向開(kāi)發(fā)人員顯示漏洞的位置,還能提出修復(fù)建議,并提供數(shù)據(jù)說(shuō)明修復(fù)可能對(duì)構(gòu)建產(chǎn)生的影響。可以根據(jù)漏洞檢測(cè)、漏洞嚴(yán)重性、CVSS評(píng)分或更新版本發(fā)布時(shí)觸發(fā)的安全漏洞策略啟動(dòng)自動(dòng)修復(fù)工作流程。最可靠的風(fēng)險(xiǎn)緩解策略之一是持續(xù)為開(kāi)源組件打補(bǔ)丁,以避免暴露于已知漏洞。一個(gè)好的SCA解決方案可以實(shí)現(xiàn)這一目標(biāo)。
先進(jìn)的SCA工具(包括repo、瀏覽器和IDE成)可無(wú)縫集成到軟件開(kāi)發(fā)生命周期(SDLC)中,以便在漏洞修復(fù)更容易、成本更低時(shí)及早解決。
二、軟件成分分析要求
1.綜合數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)是任何SCA解決方案的核心。數(shù)據(jù)庫(kù)越全面,匯聚了多個(gè)來(lái)源的數(shù)據(jù),就越能更好地識(shí)別開(kāi)源組件和安全漏洞。如果沒(méi)有一個(gè)全面、持續(xù)更新的數(shù)據(jù)庫(kù),就無(wú)法檢測(cè)到正確版本的開(kāi)源組件,從而無(wú)法更新許可證、修復(fù)安全漏洞以及應(yīng)用更新和補(bǔ)丁。開(kāi)源社區(qū)高度分散。因?yàn)闆](méi)有一個(gè)集中的更新或補(bǔ)丁信息源,所以一切都要依靠數(shù)據(jù)庫(kù)。
2.廣泛的語(yǔ)言支持
SCA解決方案不僅應(yīng)支持當(dāng)前使用的語(yǔ)言,還應(yīng)支持未來(lái)一兩年內(nèi)可能考慮使用的任何語(yǔ)言。沒(méi)人希望在實(shí)施SCA解決方案后,卻發(fā)現(xiàn)它不支持一年后最新項(xiàng)目的語(yǔ)言。所以,未雨綢繆,選擇支持多種語(yǔ)言的解決方案。
3.廣泛的報(bào)告
從庫(kù)存、許可、歸屬和盡職調(diào)查報(bào)告到漏洞和高嚴(yán)重性錯(cuò)誤報(bào)告,解決方案應(yīng)能提供適合各種使用情況的各種報(bào)告工具,包括管理、法律、安全、DevOps和DevSecOps。
4.強(qiáng)有力的政策
選擇具有自動(dòng)策略的解決方案,這些策略既強(qiáng)大又高度靈活,而且可以定義企業(yè)自己的獨(dú)特需求???strong>自動(dòng)執(zhí)行開(kāi)源選擇、審批、跟蹤和補(bǔ)救流程的策略可節(jié)省開(kāi)發(fā)人員的時(shí)間,并大大提高他們的準(zhǔn)確性。
5.漏洞優(yōu)先級(jí)排序和修復(fù)
如前所述,一個(gè)能優(yōu)先處理安全漏洞并提供修復(fù)建議的解決方案是很有必要的。自動(dòng)化程度越高,就越容易在不降低開(kāi)發(fā)速度的情況下首先解決最關(guān)鍵的問(wèn)題。
6.雙重治理和開(kāi)發(fā)人員關(guān)注
SCA解決方案分為兩大類(lèi)——提供管理工具和提供開(kāi)發(fā)人員工具。
管理、安全、DevOps和法律團(tuán)隊(duì)使用的治理解決方案,可提供對(duì)組織軟件組合的全面可見(jiàn)性和控制。
開(kāi)發(fā)人員工具可幫助開(kāi)發(fā)人員在避免拉取易受攻擊的開(kāi)源組件,并通過(guò)與本機(jī)開(kāi)發(fā)環(huán)境集成的工具修復(fù)代碼中檢測(cè)到的任何漏洞。
最好的SCA解決方案同時(shí)提供管理和開(kāi)發(fā)人員工具,這保證了每個(gè)人都能在需要的時(shí)間和地點(diǎn)獲得所需的工具。
7.與DevOps管道集成
在SDLC的每個(gè)階段,選擇能與各種開(kāi)發(fā)人員環(huán)境無(wú)縫集成的SCA解決方案,如資源庫(kù)、構(gòu)建工具、軟件包管理器和CI服務(wù)器,這樣開(kāi)發(fā)人員就能在提出拉取請(qǐng)求之前,決定是否可以或應(yīng)該使用開(kāi)源組件。
8.容器/Kubernetes
容器和Kubernetes的使用很廣泛,但安全性仍然是一個(gè)挑戰(zhàn)。選擇一個(gè)SCA解決方案,從容器化環(huán)境內(nèi)部掃描開(kāi)源組件,識(shí)別漏洞或合規(guī)性問(wèn)題并自動(dòng)執(zhí)行策略。此外,還要確保解決方案對(duì)您的特定容器注冊(cè)表提供本機(jī)支持。
三、軟件成分分析要求
開(kāi)源組件已成為各行各業(yè)軟件應(yīng)用程序的主要組成部分。然而,盡管對(duì)開(kāi)放源碼的依賴程度很高,但仍有太多企業(yè)在確保其開(kāi)放源碼組件符合基本安全標(biāo)準(zhǔn)和許可要求方面較為松懈。有了正確的軟件成分分析解決方案,就能離降低開(kāi)源風(fēng)險(xiǎn)更近一步。
1.監(jiān)管合規(guī)要求概述
目前,各國(guó)政府發(fā)揮著更加積極的作用,推出了企業(yè)必須遵守的新網(wǎng)絡(luò)安全戰(zhàn)略。這些建議和戰(zhàn)略要求供應(yīng)商承擔(dān)更多責(zé)任,提高代碼庫(kù)、軟件、應(yīng)用組件和依賴關(guān)系的可見(jiàn)性,以及更嚴(yán)格的合規(guī)性.
2.SCA如何幫助實(shí)現(xiàn)合規(guī)性
SCA專注于掃描、檢測(cè)和修復(fù)開(kāi)放源代碼中的漏洞,包括識(shí)別和修復(fù)不符合許可要求的組件和依賴關(guān)系。通過(guò)查找此類(lèi)問(wèn)題和符合許可條件的版本,SCA可以幫助確保您的代碼庫(kù)是最新的,完全符合許可條件。
3.軟件成分分析的好處
提高安全性。SCA的具體目的是掃描您的開(kāi)源軟件、組件和依賴關(guān)系,識(shí)別漏洞,并使用現(xiàn)代SCA工具自動(dòng)修復(fù)這些漏洞。如果充分利用這些功能,SCA必將提高應(yīng)用程序的安全性。
節(jié)約成本。手動(dòng)識(shí)別和修復(fù)開(kāi)源漏洞需要大量資源,遺漏漏洞會(huì)對(duì)開(kāi)發(fā)和創(chuàng)新速度產(chǎn)生不利影響。這代價(jià)高昂。SCA加快了這一過(guò)程并使之自動(dòng)化,減輕了開(kāi)發(fā)人員和DevOps團(tuán)隊(duì)的負(fù)擔(dān),使安全實(shí)施成本更低,更徹底。
提高效率。現(xiàn)代SCA工具專門(mén)用于加速和自動(dòng)化檢測(cè)和修復(fù)過(guò)程。因此,它們能讓整個(gè)過(guò)程變得更簡(jiǎn)單、更快捷。此外,它們還能優(yōu)先處理漏洞,這意味著誤報(bào)結(jié)果會(huì)大大減少,團(tuán)隊(duì)修復(fù)無(wú)關(guān)問(wèn)題的時(shí)間也會(huì)大大減少。
提高了開(kāi)發(fā)人員的工作效率。速度、效率和自動(dòng)化將開(kāi)發(fā)人員從耗時(shí)的開(kāi)源掃描和安全防護(hù)任務(wù)中解放出來(lái)?,F(xiàn)在,他們可以比以往任何時(shí)候都更高效地完成這項(xiàng)任務(wù),而且在開(kāi)發(fā)工作流程中完成這項(xiàng)任務(wù)時(shí),整個(gè)過(guò)程可以做到無(wú)縫銜接,從而最大限度地減少對(duì)開(kāi)發(fā)工作的干擾。有了SCA,開(kāi)發(fā)人員可以確保代碼庫(kù)的安全性,同時(shí)還能保持和提高生產(chǎn)力。
四、如何選擇合適的軟件成分分析工具?
你應(yīng)該選擇一種既能滿足您的需求,又盡可能簡(jiǎn)單易用、不具干擾性的SCA工具。
確保選擇的工具對(duì)開(kāi)發(fā)人員友好。該工具最好能在開(kāi)發(fā)人員現(xiàn)有的工作流程中運(yùn)行,這樣他們就不必退出開(kāi)發(fā)環(huán)境來(lái)實(shí)施安全功能,也不需要他們學(xué)習(xí)全新的軟件。為此,它應(yīng)無(wú)縫集成到現(xiàn)有軟件和開(kāi)發(fā)環(huán)境中。
SCA工具不僅要進(jìn)行簡(jiǎn)單的掃描,還應(yīng)對(duì)軟件組件及其依賴關(guān)系進(jìn)行全面分析。它應(yīng)能在特定項(xiàng)目和工作范圍內(nèi)優(yōu)先處理需要您關(guān)注的風(fēng)險(xiǎn)較高的漏洞。它應(yīng)該提供清晰、全面的報(bào)告,這些報(bào)告將成為高質(zhì)量治理和控制的基石,它還應(yīng)該能夠快速、輕松地修復(fù)漏洞。理想情況下,這一流程將是自動(dòng)化和可擴(kuò)展的,這樣您的SCA功能就能隨著您的代碼庫(kù)以及軟件和應(yīng)用程序范圍的擴(kuò)大而增長(zhǎng)?,F(xiàn)在,它應(yīng)該是云本地的。
虹科通過(guò)創(chuàng)新幫助客戶成功,是您優(yōu)選的解決方案合作伙伴。虹科艾特保IT憑借深厚的行業(yè)經(jīng)驗(yàn)和技術(shù)積累,近幾年來(lái)與世界行業(yè)內(nèi)頂級(jí)供應(yīng)商Morphisec,DataLocker,Lepide,SecurityScorecard,veracode,Mend,Onekey,Allegro,Profitap,Apposite等建立了緊密的合作關(guān)系,提供包括網(wǎng)絡(luò)全流量監(jiān)控,數(shù)據(jù)安全,終端安全(動(dòng)態(tài)防御),網(wǎng)絡(luò)安全評(píng)級(jí),網(wǎng)絡(luò)仿真,軟固件安全分析等行業(yè)領(lǐng)先解決方案。讓網(wǎng)絡(luò)安全更簡(jiǎn)單!
-
程序
+關(guān)注
關(guān)注
117文章
3787瀏覽量
81056 -
SCA
+關(guān)注
關(guān)注
1文章
36瀏覽量
11978 -
開(kāi)源代碼
+關(guān)注
關(guān)注
0文章
36瀏覽量
2959
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論