從軟件安全開發(fā)生命周期分析軟件供應(yīng)鏈安全實踐_第1頁
從軟件安全開發(fā)生命周期分析軟件供應(yīng)鏈安全實踐_第2頁
從軟件安全開發(fā)生命周期分析軟件供應(yīng)鏈安全實踐_第3頁
從軟件安全開發(fā)生命周期分析軟件供應(yīng)鏈安全實踐_第4頁
從軟件安全開發(fā)生命周期分析軟件供應(yīng)鏈安全實踐_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

從軟件安全開發(fā)生命周期分析軟件供應(yīng)鏈安全實踐

一、軟件供應(yīng)鏈安全治理

目前,業(yè)界已充分認識到造成網(wǎng)絡(luò)安全事件出現(xiàn)的主要原因之一,是由于

軟件開發(fā)者在開發(fā)過程中對開發(fā)工具、開發(fā)團隊、開發(fā)生命周期和軟件產(chǎn)品自

身管理不當(dāng),致使軟件存在著安全缺陷,破壞或影響最終用戶的信息安全。

通過推進針對軟件生命周期進行全流程安全管控的落地實踐,有助于從軟

件生命周期的源頭保障軟件供應(yīng)鏈安全。通過建立軟件開發(fā)過程中保證軟件供

應(yīng)鏈安全的體系化方法,為軟件開發(fā)過程中盡可能避免和消除軟件的安全缺

陷、保證軟件供應(yīng)鏈安全奠定重要基礎(chǔ)。

從軟件安全開發(fā)生命周期角度分析軟件供應(yīng)鏈安全的應(yīng)用實踐方法,主要有以

下幾個階段。

1.體系構(gòu)建階段

(1)SDL軟件安全開發(fā)生命周期

微軟在21世紀初期的軟件產(chǎn)品開發(fā)實踐中,意識到無法通過技術(shù)層面徹

底解決軟件面臨的安全風(fēng)險。因此,微軟嘗試從流程和管理的角度解決這個問

題,并探索在各個軟件開發(fā)環(huán)節(jié)中加入安全過程、把控安全風(fēng)險,確保每個環(huán)

節(jié)交付到下一環(huán)節(jié)的交付物都安全可控。于是,針對傳統(tǒng)的瀑布式模型微軟提

出了〃SDL軟件安全開發(fā)生命周期〃這一概念。

軟件安全開發(fā)生命周期(SDL),是一個在幫助開發(fā)人員構(gòu)建更安全的軟

件和解決安全合規(guī)要求的同時降低開發(fā)成本的軟件開發(fā)過程。SDL將軟件開發(fā)

生命周期劃分為7個階段(如圖所示),并提出了17項重要的安全活動,旨

在將安全集成在軟件開發(fā)的每一個階段,以減少軟件中漏洞的數(shù)量并將安全缺

陷降低到最4卷度。SDL更側(cè)重的是軟件開發(fā)的安全保障過程,旨在開發(fā)出安

全的軟件產(chǎn)品。

圖1SDL軟件安全開發(fā)生命周期

在SDL的7個階段中(如圖1所示),SDL要求前6個階段的16

項安全活動,為開發(fā)團隊必須完成的安全活動。同時,SDL認為開發(fā)團隊?wèi)?yīng)該

保持靈活性,以便選擇更多合適的安全活動,如人工代碼分析、滲透測試、相

似應(yīng)用程序的漏洞分析,以確保對某些軟件組件進行更高級別的安全分析。

SDL重視各種工具的使用,重心在從需求階段到測試階段的工具集,如威脅建

模、靜態(tài)源代碼分析等工具。

SDL的7個階段主要的含義如下:

培訓(xùn):針對開發(fā)團隊遂行安全意識與能力的培訓(xùn)I,以確保SDL能有效實施并

落地,同時針對新的安全問題與形勢持續(xù)提升團隊的安全能力;

需求:通過安全需求分析,定義軟件產(chǎn)品安全實現(xiàn)過程中所需要的安全標準和

相關(guān)要求;

設(shè)計:通過分析攻擊面,設(shè)計相對應(yīng)的功能和策略,降低和減少不必要的安全

風(fēng)險。同時通過威脅建模,分析軟件的安全威脅,提出緩解措施;

實施:按設(shè)計要求,實現(xiàn)對應(yīng)功能和策略,以及緩解措施涉及的安全功能和策

略。同時通過安全編碼和禁用不安全的API,減少實施時導(dǎo)致的安全問題,

盡量避免引入編碼級的安全漏洞,并通過代碼審計等措施來確保安全編碼規(guī)范

的實行;

驗證:通過安全測試檢測軟件的安全漏洞,并全面核查攻擊面,各個關(guān)鍵因素

上的威脅緩解措施是否得以驗證;

發(fā)布:建立相應(yīng)的響應(yīng)計劃,進行最終安全檢查,確認所有安全活動均完成后

將最終版本發(fā)送給客戶;

響應(yīng):當(dāng)出現(xiàn)安全事件與漏洞報告時,及時實施應(yīng)急響應(yīng)和漏洞修復(fù)。在此過

程中新發(fā)現(xiàn)的問題和安全問題模式,可用于SDL的持續(xù)改進過程中。

(2)DevSecOps

DevSecOps是一種全新的安全理念和模式,由DevOps的概念延伸和

演變而來。其核心理念是安全是整個IT團隊每個人的責(zé)任,需要貫穿從開發(fā)

到運營整個業(yè)務(wù)生命周期每一個環(huán)節(jié)才能提供有效保障。

DevSecOps覆蓋編碼階段、測試階段、預(yù)發(fā)布階段、發(fā)布階段、線上運

營階段,強調(diào)自動化與平臺化,由CI/CD平臺推動整個開發(fā)和運營流程自動

化。DevSecOps依賴于DevOps流程工具鏈(如圖2所示),將威脅建模

工具、安全編碼工具、安全測試工具、容器安全檢測工具、基線加固工具、漏

洞管理工具等自動化工具無縫集成到DevOps流程中,進而實現(xiàn)開發(fā)?安全

?鮑密安全檢博?安全:aw.安全方案*忠燦?Mnoea?「一,?上.…::

?代碼安全架構(gòu)審嗇?安全茶碼喻?安臺接術(shù)XR.m?Wi砒湖體系相??RASP

?iOE?c±?mOi??履粉理橫咯持建優(yōu)化(HIDS.RASP.?HIDS

等)

?安全花農(nóng)及方案沒計…,.「。”二一,WAF.UEBA?(0防斂*系

計切iSJSAdK

Create

SecuritySecuri7

PreprodPredict

酶布發(fā)布儂

-女含安金:31?在踞女全愴戈?安全啕?口》13忸心?RASP

?欣井成分分析?運行球境幅潸?安全班哂?HJDS

?m?K.Fun-mggtMBiit?在名校驗?Mniawanfi.帆%,麗*系

,,V.'..Til?Chaos-Monkey-?*U?!R>g?八?軍心

?白盒安全測試StyleTesting

圖2DevSecOps工具鏈

很多企業(yè)在向DevSecOps轉(zhuǎn)型時,會發(fā)現(xiàn)很多傳統(tǒng)的安全工具在集成性

和實用性上都難以滿足DevSecOps的需求,因此,在DevSecOps的不同

階段需要采用不同的DevSecOps安全工具(如圖3所示),這些安全工具

主要的共同特點是高度自動化以及可集成性。

集成階段及自動化程度

DevSecOps工具颼開發(fā)構(gòu)建運營

SCA-OSSA??n/a

(口科嗡分分析,電仆分析)<€

SCA-OSG???

4炊科成分分析4A即幽號)n/an/a

SAST

(腌初陳金副電n/an/an/a

DAST/Automated-PTn/an/a

(硼運用安生豫武/白劭化汕^成)n/aG

IASTn/a???n/a

(交q比&州mr?

TM

€n/an/an/an/a

RASP

n/an/an/an/a6

圖3DevSecOps安全工具在不同階段的自動化程度

在軟件供應(yīng)鏈中每個階段都在面臨不同的安全風(fēng)險,為了更好的對軟件供

應(yīng)鏈進行風(fēng)險治理,在DevSecOps模式下,安全開發(fā)工具鏈需要盡量覆蓋

軟件生命周期中的所有階段(如圖4所示)。

?軟件姓>代班發(fā)>蟀蝌1>軟件女>版本發(fā)布>炊件部著>ffifl>系統(tǒng)班!

TM

SCA-OSSA

SCA-OSG

做代病分》即

IAST

DAST/Automated-PT

RASP

RM

(JUM)

圖4DevSecOps模式下軟件生命周期

除了以上所提到的工具之外,在DevSecOps的應(yīng)用實踐過程中,還有一

些更為前瞻性的安全工具,具體可參考DevSecOps敏捷安全技術(shù)金字塔(如

圖5所示)。該金字塔在?2020DevSecOps行業(yè)洞察報告》中首次被提

出,目前已發(fā)展到2.0版本。其描述了一組層次結(jié)構(gòu),金字塔底部是基礎(chǔ)性

技術(shù),越上層的技術(shù)對DevSecOps實踐成熟度的要求越高。

卓越層

CARTA

ASRA實

RASP

Container應(yīng)用實踐層

OSS/SCAIASTBAS

Security

IDS/IPSIAMWAFSAST/DAST—傳統(tǒng)建設(shè)層

圖5DevSecOps敏捷安全技術(shù)金字塔V2.0版

DevSecOps敏捷安全技術(shù)金字塔的不斷升級,是為了給業(yè)界更好的預(yù)測

和參考,關(guān)于DevSecOps敏捷安全技術(shù)未來演進方向的預(yù)測是開放且持續(xù)

性的,隨著DevSecOps實踐的不斷發(fā)展,其中的安全工具會進行調(diào)整和更

新。

2、設(shè)計階段

(1)軟件供應(yīng)商風(fēng)險管理流程

軟件供應(yīng)商風(fēng)險是指與第三方供應(yīng)商相關(guān)的任何可能影響企業(yè)利益或資產(chǎn)

的固有風(fēng)險。在選擇第三方軟件供應(yīng)商時,為了避免因引入第三方供應(yīng)商而帶

來眾多潛在的安全風(fēng)險,需要穩(wěn)健的流程來識別和管理日益增加的軟件供應(yīng)商

風(fēng)險。因此,企業(yè)亟需構(gòu)建有效且穩(wěn)健的軟件供應(yīng)商風(fēng)險管理流程。

構(gòu)建完整的軟件供應(yīng)商風(fēng)險管理流程可以提高軟件供應(yīng)鏈的透明度,同時

幫助企業(yè)實現(xiàn)降低采購成本、識別和減輕供應(yīng)商相關(guān)風(fēng)險以及對軟件供應(yīng)商風(fēng)

險管理系統(tǒng)的持續(xù)優(yōu)化改進。以下是針對軟件供應(yīng)商基本風(fēng)險管理流程(如圖

6幅)。

圖6軟件供應(yīng)商風(fēng)險管理潮呈

標準確立:結(jié)合企業(yè)的實際情況,構(gòu)建軟件供應(yīng)商評估模型,制定軟件供應(yīng)商

考核的評估標準及安全框架;

資格評估:根據(jù)制定的軟件供應(yīng)商評估模型和相關(guān)標準,對初步符合要求的軟

件供應(yīng)商進行多維度的綜合性資格評估,選出匹配度最高的供應(yīng)商;

風(fēng)險評估:對通過資格評估的軟件供應(yīng)商進行安全風(fēng)險評估,針對軟件供應(yīng)商

面臨的潛在的安全風(fēng)險、存在的弱點以及有可能造成的影響綜合分析其可能帶

來的安全風(fēng)險進行評估;

風(fēng)險監(jiān)控:對軟件供應(yīng)商實施長期性的安全風(fēng)險監(jiān)控,持續(xù)識別和管理軟件供

應(yīng)商的安全風(fēng)險,根據(jù)監(jiān)測結(jié)果實施更新軟件供應(yīng)商的風(fēng)險管理策略。

(2)軟件供應(yīng)商評估模型

為了確保企業(yè)可以擁有較為穩(wěn)定的供應(yīng)鏈,提高企業(yè)的綜合競爭力,經(jīng)過

多方面的綜合考察分析,以下構(gòu)建了一個系統(tǒng)化、結(jié)構(gòu)化的軟件供應(yīng)商評估模

型以供參考。軟件供應(yīng)商評估模型的關(guān)鍵意義在于從不同的維度對軟件供應(yīng)商

進行評估,通過考察軟件供應(yīng)商的綜合實力,以選擇最合適的合作伙伴。以下

是通過十二種不同維度對軟件供應(yīng)商評估的全過程(如圖7所示)。

圖7軟件供應(yīng)商評估模型

財務(wù)實力:評估軟件供應(yīng)商的財務(wù)能力以及穩(wěn)定性,確保供應(yīng)商具有穩(wěn)定性和

可靠性來提供業(yè)務(wù)所需要的服務(wù);

質(zhì)量承諾:評估軟件供應(yīng)商的相關(guān)軟件產(chǎn)品是否符合國家及行業(yè)標準要求,信

息安全和數(shù)據(jù)保護控制流程必須遵守法律、監(jiān)管或合同義務(wù)以及任]可行業(yè)標準

的信息安全要求;

企業(yè)資質(zhì):評估軟件供應(yīng)鏈上的第三方供應(yīng)商是否能夠提供軟件安全開發(fā)能力

的企業(yè)級資質(zhì),是否具備國際、國家或行業(yè)的安全開發(fā)資質(zhì),在軟件安全開發(fā)

的過程管理、質(zhì)量管理、配置管理、人員能力等方面是否具備一定的經(jīng)驗,M

有把安全融入軟件開發(fā)過程的能力;

技術(shù)儲備:評估軟件供應(yīng)商是否擁有自主研發(fā)能力以及自主技術(shù)知識產(chǎn)權(quán),對

科技知識是否有進行不斷的積累和及時更新,對企業(yè)提高技術(shù)水平、促進軟件

生產(chǎn)發(fā)展是否有開展一系列的技術(shù)研究;

合作能力:評估軟件供應(yīng)商是否擁有高效的溝通渠道以及全面的解決方案,擁

有共同的價值觀和工作理念有助于建立長期的合作關(guān)系;

軟件交付能力:評估軟件供應(yīng)商在整個軟件及信息服務(wù)交付的過程中,是否能

滿足軟件持續(xù)性交付的要求;

應(yīng)急響應(yīng)能力:評估軟件供應(yīng)商從軟件開發(fā)到運營階段是否持續(xù)實行實時監(jiān)控

機制,是否有利用適當(dāng)?shù)木W(wǎng)絡(luò)和基于端點的控制來收集用戶活動、異常、故障

和事件的安全日志,是否具有適當(dāng)?shù)臉I(yè)務(wù)連續(xù)性和恢復(fù)能力,以防止或減輕業(yè)

務(wù)中斷和相關(guān)影響;

服務(wù)能力:評估軟件供應(yīng)商的售前服務(wù)能力、培訓(xùn)服務(wù)能力以及售后維護服務(wù)

能力是否滿足企業(yè)的要求,在合作期間內(nèi)是否可以始終如一的提供高水平的質(zhì)

量和服務(wù);

創(chuàng)新能力:評估軟件供應(yīng)商的綜合創(chuàng)新能力,包括技術(shù)創(chuàng)新能力、研究開發(fā)能

力、產(chǎn)品創(chuàng)新能力以及生產(chǎn)創(chuàng)造力等;

內(nèi)部管理能力:評估軟件供應(yīng)商是否擁有完善的內(nèi)部管理制度流程、有效的風(fēng)

險防范機制以及是否對員工定期進行安全培訓(xùn)等,對供應(yīng)商內(nèi)部安全開發(fā)標準

和規(guī)范進行審查,要求其能夠?qū)﹂_發(fā)軟件的不同應(yīng)用場景、不同架構(gòu)設(shè)計、不

同開發(fā)語言進行規(guī)范約束,審查軟件供應(yīng)商對其自身信息安全保密程度;

軟件成本:評估軟件供應(yīng)商所提供的軟件成本是否存在虛報等現(xiàn)象,審查產(chǎn)品

及相關(guān)服務(wù)是否可以按照合理的價格交付;

軟件適用性:評估軟件在開發(fā)部署以及動態(tài)運行時的適用性,是否可以持續(xù)滿

足新的需求。

(3)軟件供應(yīng)商風(fēng)險管理的作用

通過對軟件供應(yīng)商風(fēng)險管理有助于企業(yè)更加高效準確地控制軟件供應(yīng)商帶

來的新的安全風(fēng)險,以下是軟件供應(yīng)商風(fēng)險管理的具體作用。

降低風(fēng)險:通過對軟件供應(yīng)商進行徹底的審查可以識別其可能對業(yè)務(wù)構(gòu)成的安

全威脅的任何潛在弱點,根據(jù)軟件供應(yīng)商對企業(yè)業(yè)務(wù)的影響確定漏洞的重要

性;

降低成本:通過對軟件供應(yīng)商風(fēng)險進行充分的評估,可以以主動而非被動的方

式應(yīng)對安全威脅,減少潛在的安全風(fēng)險,避免網(wǎng)絡(luò)安全攻擊或其他數(shù)據(jù)泄露等

問題給企業(yè)造成的財務(wù)損失;

提高效率:通過對軟件供應(yīng)商進行實時風(fēng)險監(jiān)控,可以提前預(yù)知風(fēng)險并及時做

出響應(yīng),提高企業(yè)處理安全風(fēng)險的效率;

培養(yǎng)長期合作關(guān)系:通過對供應(yīng)商風(fēng)險的管理、評估和跟蹤監(jiān)控,加強對供應(yīng)

商健康狀況的監(jiān)督,有助于培養(yǎng)可靠的長期合作關(guān)系。

3、編碼階段

(1)構(gòu)建詳細的軟件物料清單

軟件供應(yīng)鏈安全始于對關(guān)鍵環(huán)節(jié)的可見性,企業(yè)需要為每個應(yīng)用程序持續(xù)

構(gòu)建詳細的SBOM(SoftwareBillofMaterial,軟件物料清單)(如表2所

示),從而全面洞察每個應(yīng)用軟件的組件情況。SBOM是描述軟件包依賴樹

的一系列元數(shù)據(jù),包括供應(yīng)商、版本號和組彳牛名稱等多項關(guān)鍵信息,這些信息

在分析軟件安全漏洞時發(fā)揮著重要作用。

字段SPDX值SWID值

供應(yīng)商(3.5)Packagesupplier:<Entity>@role(softwareCreator/publisher),@name

組件(3.1)PackageName:<softwareklentity>@name

唯一標識(3.2)SPDXID:<softwareldentity><a)taglD

版本(3.3)Packageversion:<softwareklentity>@version

組件散列佰(3.10)PackageChecksun:<Payload>/../<File>(?[hash-algorithm):hash

相互關(guān)系(7.1)Relationship:CONTAINS<Link>@rel,@href個

SBOM編輯人(2.8)Creator:<Entity>@role(tagCreator),@name

表1軟件物料清單示例

上表是一份軟件物料清單示例,其中SPDX和SWID是兩種國際通用的

SBOM字段標準。SPDX(TheSoftwarePackageDataExchange,軟件包

數(shù)據(jù)交換)是Linux基金會下的開放性標準,其用于交流軟件物料清單信息,

包括組件、許可證、版權(quán)等信息-SPDX通過為公司和社區(qū)共享重要數(shù)據(jù)提供

通用格式來減少冗余工作,從而簡化流程并提高合規(guī)性。SWID(Software

Identification,軟件標識)標簽旨在為組織提供一種透明的方式來跟蹤在他們

的托管設(shè)備商安裝的軟件,它于2012年由ISO提出,并于2015年更新為

ISO/IEC19770-2:2015。

SWID標簽文件包含有關(guān)軟件產(chǎn)品特定版本詳盡的描述性信息。除表格

中的兩種應(yīng)用最為廣泛的SBOM字段標準外,還有CycloneDX.

CoSWID.CPE、Grafeas等其他較為常見的標準,各標準的應(yīng)用場景存在一

定的區(qū)別。

SBOM的概念源自制造業(yè),其中物料清單是詳細說明產(chǎn)品中包含的所有項

目的清單。例如:在汽車行業(yè),制造商會為每輛車維護一份詳細的材料清單。

此BOM列出了原始設(shè)備制造商自己制造的零件和第三方供應(yīng)商的零件。當(dāng)發(fā)

現(xiàn)有缺陷的部件時,汽車制造商可以準確地知道哪些車輛受到影響,并可以通

知車主維修或更換。

同樣,構(gòu)建軟件的企業(yè)也需要維護準確、最新的SBOM,其中包括第三方

和開源組件的清單,以確保其代碼質(zhì)量高、合規(guī)且安全。企業(yè)通過要求軟件供

應(yīng)商提供SBOM,以發(fā)現(xiàn)潛在的安全和許可證問題,或者應(yīng)用程序是否使用過

時的庫版本。

當(dāng)發(fā)現(xiàn)此類問題時,管理員可以要求供應(yīng)商使用較新版本重建應(yīng)用程序,

在等待更新的軟件期間,安全人員有機會采取臨時緩解措施來保護應(yīng)用程序免

受攻擊者利用該漏洞遂行攻擊,還可以幫助安全人員在漏洞被披露或核心庫發(fā)

布新版本時,對應(yīng)用程序和代碼進行抽查以避免出現(xiàn)安全問題。

舉個例子:如果安全人員手中有一份在其環(huán)境中運行的每個應(yīng)用程序的物

料清單,那么早在2014年4月,當(dāng)Heartbleed漏洞最初被披露時,安全

人員就無需測試每個應(yīng)用程序中是否包含OpenSSL,而是可以通過檢查列表

就立即知道哪些應(yīng)用程序依賴于易受攻擊的版本和需要采取的措施。

(2)SBOM生產(chǎn)流程

在成熟的體系下,SBOM的生產(chǎn)可以通過軟件生命周期每個階段所使用的

工具和任務(wù)流程化地完成,這些工具和任務(wù)包括知識產(chǎn)權(quán)審計、采購管理、許

可證管理、代碼掃描、版本控制系統(tǒng)、編譯器、構(gòu)建工具、CI/CD工具、包

管理器和版本庫管理工具等(如圖8所示)。

圖8SBOM生產(chǎn)流f呈

SBOM中應(yīng)該包含軟件組件與此組件所依賴的任何其他基礎(chǔ)軟件組件之間

的關(guān)系。軟件產(chǎn)品在發(fā)布任何版本時,SBOM都應(yīng)作為產(chǎn)品文檔的一部分被

提供,在CI/CD的標準實踐中,SBOM中包含的信息將不斷更新。它從在需

求中集成安全性需求開始,或者是SBOM中的一些元素已經(jīng)在需求階段被添

加到用例中,這樣安全性和SBOM就可以成為DevOps過程的標準和結(jié)構(gòu)

化的一部分。

為了確保持續(xù)一致性,應(yīng)在測試工作中將SBOM作為測試用例的一部

分,同時SBOM信息應(yīng)隨著使用工具和組件的更新而更新,使SBOM信息

自動更新成為CI/CD管道中每個構(gòu)建周期標準的一部分。在發(fā)布運營階段使

用SBOM可以在使用的庫或組件存在漏洞時,以更快的時間檢測出有哪些應(yīng)

用程序中存在這些漏洞,并及時進行修復(fù)工作。

(3)SBOM可提高軟件供應(yīng)鏈的透明度

盡管SBOM對許多人來說依然很陌生,但其需求卻不斷呈現(xiàn)增長態(tài)勢。

Gartner在其2020年的〃應(yīng)用程序安全測試魔力象限〃中預(yù)測到:"到

2024年,至少一半的企業(yè)軟件買家要求軟件供應(yīng)商必須提供詳細的、定期更

新的軟件物料清單,同時60%的企業(yè)將為他們創(chuàng)建的所有應(yīng)用程序和服務(wù)自

動構(gòu)建軟件材料清單,而這兩組數(shù)據(jù)在2019年都還不到5%。〃

現(xiàn)代軟件是使用第三方組件組裝而成的,它們以復(fù)雜而獨特的方式粘合在

一起,并與原始代碼集成以實現(xiàn)企業(yè)所需要的功能。在現(xiàn)代多層供應(yīng)鏈中,單

個軟件可能有成百上千的供應(yīng)商,從原材料來源到最終組裝系統(tǒng)的全套供應(yīng)商

中找出某一組件的來源需要花費大量的時間和精力。因此,為所有組件構(gòu)建詳

細準確的SBOM,幫助企業(yè)跟蹤當(dāng)前運行的程序、源代碼、構(gòu)建依賴項、子

組件等所依賴組件的使用情況,檢測軟件組件是否帶有已知的安全漏洞或功能

漏洞。

圖9SBOM的作用

SBOM有助于揭示整個軟件供應(yīng)鏈中的漏洞與弱點,提高軟件供應(yīng)鏈的透

明度,減輕軟件供應(yīng)鏈攻擊的威脅。通過使用SBOM可以幫助企業(yè)進行漏洞

管理、應(yīng)急響應(yīng)、資產(chǎn)管理、許可證和授權(quán)管理、知識產(chǎn)權(quán)管理、合規(guī)性管

理、基線建立和配置管理等(如圖9所示)。

通過自動化創(chuàng)建SBOM可以在漏洞披露時及時地進行響應(yīng)排查以及快速

的安全修復(fù),最小化軟件供應(yīng)鏈的安全風(fēng)險;在開源組件和版本快速迭代的情

況下,從風(fēng)險管理的角度跟蹤和持續(xù)監(jiān)測閉源組件和開源組件的安全態(tài)勢;

同時SBOM列舉了管理開源組件的許可證,可以保護企業(yè)免受不當(dāng)使用

相關(guān)的法律或知識產(chǎn)權(quán)的風(fēng)險,保護應(yīng)用程序在軟件供應(yīng)鏈中的合規(guī)性,避免

將已知缺陷傳遞到軟件供應(yīng)鏈的下游。

(4)SBOM為漏洞風(fēng)險治理節(jié)省大量時間

SBOM的使用可以為軟件供應(yīng)鏈的漏洞治理節(jié)省大量時間。及時性對于企

業(yè)在漏洞修復(fù)時是非常重要的。以往,企業(yè)在修復(fù)已部署系統(tǒng)的漏洞缺陷時往

往需要幾個月甚至是數(shù)年的時間,其重要原因之一是企業(yè)無法在漏洞出現(xiàn)的第

一時間知曉該信息。

軟件供應(yīng)鏈下游的企業(yè)需要等待上游軟件供應(yīng)商完成軟彳曲卜丁,才可以進

行漏洞修復(fù),在等待的時間內(nèi),下游企業(yè)往往會面臨無法預(yù)知的安全風(fēng)險C而

構(gòu)建詳細準確的SBOM則可以避免這一現(xiàn)象的發(fā)生,允許所有利益相關(guān)者在

漏洞發(fā)現(xiàn)時立即開始評估漏洞,并開始制定相關(guān)的補救措施。以下通過一張對

比圖來說明SBOM對漏洞風(fēng)險治理時間的影響(如圖10所示)。

風(fēng)險治理

時間線缺少SBOM

SBOM的影響

A發(fā)現(xiàn)漏洞

—韁*

修復(fù)?原始的件

—他發(fā)-修底坦件

—修凝軟件產(chǎn)品

—修發(fā)產(chǎn)品運營

圖10SBOM對漏洞風(fēng)險治理時間的影響

受感染的開源組件在軟件中未被修復(fù)的每一分鐘都會增加潛在被利用的風(fēng)

險,SBOM有助于企業(yè)在漏洞披露的早期對漏洞進行識別,通過SBOM提

供受感染開源組件和依賴項的準確位置,采取適當(dāng)?shù)牟襟E進行修改,為企業(yè)在

風(fēng)險分析、漏洞管理和補救過程中節(jié)省數(shù)百小時至數(shù)月的時間。

(5)使用基于SCA技術(shù)的工具

企業(yè)需要謹慎、合理地選擇、獲取和使用第三方閉源組件和開源組件。軟

件安全團隊或研發(fā)團隊通過必要的技術(shù)手段確保所使用的第三方組件的安全

性,及時獲取所使用第三方組件和開源組件的漏洞情報,并適時做出響應(yīng)。

軟件成分分析(SoftwareCompositionAnalysis,SCA)是一種對二進

制軟件的組成部分進行識別、分析和追蹤的技術(shù)。SCA可以生成完整的

SBOM,分析開發(fā)人員所使用的各種源碼、模塊、框架和庫,以識別和清點開

源軟件(OSS)的組件及其構(gòu)兩口依賴關(guān)系,并精準識別系統(tǒng)中存在的已知安

全漏洞或者潛在的許可證授權(quán)問題,把這些安全風(fēng)險排除在軟件的發(fā)布上線之

前,也適用于軟件運行中的診斷分析。

軟件成分分析分為兩種模式,靜態(tài)和動態(tài)。靜態(tài)模式是使用工具對目標工

程文件進行解壓,識別和分析各個組件的關(guān)系;動態(tài)模式則是依賴于執(zhí)行過

程,在程序執(zhí)行的同時收集必要的活動元數(shù)據(jù)信息,通過數(shù)據(jù)流跟蹤的方式對

目標組件的各個部分之間的關(guān)系進行標定。通過使用基于多源SCA開源應(yīng)用

安全缺陷檢測技術(shù)的安全審直工具,可以精準識別應(yīng)用開發(fā)過程中,軟件開發(fā)

人員有意或違規(guī)引用的開源第三方組件,并通過對應(yīng)用組成進行分析,多維度

提取開源組件特征,計算組件指紋信息,深度挖掘組件中潛藏的各類安全漏洞

及開源協(xié)議風(fēng)險。

某金融企業(yè)的業(yè)務(wù)團隊無法接受速度的遲滯,在研發(fā)效率和編碼速度的考

量下,大量的軟件應(yīng)用都基于第三方的組件、開源代碼、通用函數(shù)庫實現(xiàn),隨

之而來是絕大多數(shù)應(yīng)用程序都包含開源組件的安全風(fēng)險,為企業(yè)帶來了許多未

知的安全隱患。為了更好地進行開源組件治理工作,該企業(yè)引入基于SCA技

術(shù)的工具,與DevOps流程無縫結(jié)合,在流水線的測試階段自動發(fā)現(xiàn)應(yīng)用程

序中的開源組件,提供關(guān)鍵版本控制和使用信息,并在DevOps的任何階段

檢測到漏洞風(fēng)險和策咯風(fēng)險時觸發(fā)安全警報。所有信息都通過安全和開發(fā)團隊

所使用的平臺工具實時發(fā)送,實現(xiàn)及時的反饋循環(huán)和快速行動。

在不改變該企業(yè)現(xiàn)有開發(fā)測試流程的前提下,將SCA工具與代碼版本管

理系統(tǒng)、構(gòu)建工具、持續(xù)集成系統(tǒng)、缺陷跟蹤系統(tǒng)等無縫對接,將源代碼缺陷

檢測和源代碼合規(guī)檢測融入到企業(yè)開發(fā)測試流程中,幫助企業(yè)以最小代價落地

源代碼安全保障體系,降低軟件安全問題的修復(fù)成本,提升軟件質(zhì)量。

4、發(fā)布運營階段

(1)建立成熟的應(yīng)急響應(yīng)機制

在軟件的發(fā)布運營階段,企業(yè)需要具備安全應(yīng)急響應(yīng)能力(如圖11所

示),能在軟件發(fā)布后對發(fā)生在軟件和軟件補丁獲取渠道的軟件供應(yīng)鏈安全事

件、軟件安全漏洞披露事件進行快速的安全響應(yīng),控制和消除安全事件所帶來

的安全威脅和不良影響,進而追溯和解決造成安全事件的根源所在。

發(fā)布運營階段包括監(jiān)測告警、應(yīng)急響應(yīng)、事件處置、持續(xù)跟進等關(guān)鍵活

動。在日常的運營管理中,企業(yè)可以通過采用自動化分析技術(shù)對數(shù)據(jù)進行實時

統(tǒng)計分析,發(fā)現(xiàn)潛在的安全風(fēng)險,并自動發(fā)送警報信息。在有突發(fā)事件出現(xiàn)

時,通過監(jiān)測預(yù)警,安全人員可以迅速地進行安全響應(yīng),在最短的時間內(nèi)確定

相關(guān)解決方案并進行事件處置,在解決之后進行經(jīng)驗總結(jié)并改進。通過監(jiān)測預(yù)

警技術(shù)對軟件系統(tǒng)進行實時自動監(jiān)測,當(dāng)發(fā)現(xiàn)安全問題時,立即發(fā)出警告,同

時實現(xiàn)信息快速發(fā)布和安全人員的快速響應(yīng)。

圖11安全風(fēng)險監(jiān)測分析及響應(yīng)

在發(fā)布運營階段發(fā)生突發(fā)事件之后的應(yīng)急響應(yīng)與對安全事件進行處理的管

理能力相關(guān),因此,企業(yè)需要加強檢測預(yù)警能力、提高應(yīng)急響應(yīng)速度、加快應(yīng)

急處置效率,從事后被動救火轉(zhuǎn)化為主動應(yīng)急管理。充分預(yù)估突發(fā)事件的場

景,通過管理活動與技術(shù)手段避免突發(fā)事件的發(fā)生,在突發(fā)事件發(fā)生時能夠及

時監(jiān)測預(yù)警,并有序進行處理行為。

由于在應(yīng)用程序發(fā)布很久之后,仍有可能在其中發(fā)現(xiàn)新的安全漏洞,這些

漏洞可能存在于構(gòu)成應(yīng)用程序的底層開源組件中,導(dǎo)致"零日〃漏洞的數(shù)量不

斷增加。因此,企業(yè)需要制定事件響應(yīng)和漏洞處理策略,與領(lǐng)先的漏洞研究機

構(gòu)進行合作,積極監(jiān)控大量漏洞信息來源。同時,進行持續(xù)性的安全檢查,定

期的安全檢查可以保護應(yīng)用程序免受新發(fā)現(xiàn)的安全漏洞的影響。

(2)構(gòu)建完善的運營保障工具鏈

BAS2017年,Gartner《面向威脅技術(shù)的成熟度曲線》中首次提及入侵與

攻擊模擬(BreachandAttackSimulation,BAS)工具(如圖12所

示),并將其歸到新興技術(shù)行列。在2021年,Gartner將BAS納入

"2021年頂級安全和風(fēng)險管理趨勢〃。

BAS通過模擬對端點的惡意軟件攻擊、數(shù)據(jù)泄露和復(fù)雜的APT攻擊,測

試組織的網(wǎng)絡(luò)安全基礎(chǔ)設(shè)施是否安全可靠,在執(zhí)行結(jié)束時,系統(tǒng)將生成關(guān)于組

織安全風(fēng)險的詳細報告,并提供相關(guān)解決方案。同時結(jié)合紅隊和藍隊的技術(shù)使

其實現(xiàn)自動化?口持續(xù)化,實時洞察組織的安全態(tài)勢C

BAS可以確定漏洞的覆蓋范圍并對檢測出的漏洞提供補救意見,防止攻擊

者對漏洞加以利用。除了自動化和持續(xù)監(jiān)控之外,BAS還使安全團隊改變了

他們的防御方式,采取更為主動積極的策略,維護組織各個方面的安全。

WAF早在2007年,國家計算機網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心檢測到中國

大陸被篡改網(wǎng)站總數(shù)累積達61228個,比2006年增加了1.5倍。其中,

中國大陸政府網(wǎng)站被篡改各月累計達4234個。為了更好的應(yīng)對網(wǎng)絡(luò)攻擊,

Web應(yīng)用防護系統(tǒng)也被稱為網(wǎng)站應(yīng)用級入侵防御系統(tǒng)(WebApplication

FirewallWAF)應(yīng)運而生,WAF可以對來自Web應(yīng)用程序客戶端的各類

請求進行內(nèi)容檢測和驗證,確保其安全性和合法性,對非法的請求予以實時阻

圖13WAF技術(shù)原理

WAF通過增強輸入驗證,可以在運營階段有效防止網(wǎng)頁篡改、信息泄

露、木馬植入等惡意網(wǎng)絡(luò)入侵行為,從而減小Web服務(wù)器被攻擊的可能

性。同時,WAF還可以判斷用戶是否是第一次訪問,將請求重定向到默認登

錄頁面并且記錄時間,通過檢測用戶的整個操作行為可以更容易識別攻擊。

RASP作為第一道防線,WAF能夠阻止基本攻擊,但難以椅測到APT等

高級威脅,不僅如此,企業(yè)需要持續(xù)〃調(diào)整〃WAF以適應(yīng)不斷變化的應(yīng)用程

序,這一過程消耗了安全管理人員大量的精力。此時,運行時應(yīng)用程序自我保

護技術(shù)(RuntimeApplicationSelf-protection,RASP)(如圖14所示)

作為新一代運行時保護技術(shù)被引入,RASP可以提供更深入的保護能力,更廣

泛的覆蓋范圍,并且可以花費更少的時間。

RASP將保護代碼像一劑疫苗注入到應(yīng)用程序中,與應(yīng)用程序融為一體,

使應(yīng)用程序具備自我保護能力。RASP結(jié)合應(yīng)用的邏輯及上下文,對訪問應(yīng)用

系統(tǒng)的每一段堆棧進行檢測,當(dāng)應(yīng)用程序遭受到實際攻擊和傷害時,RASP可

以實時檢測和阻斷安全攻擊,無需人工干預(yù),最終實現(xiàn)軟件應(yīng)用的自我保護,

確保軟件應(yīng)用的安全運行。

圖14RASP技術(shù)原理

RASP在運營階段可以應(yīng)對無處不在的應(yīng)用漏洞與網(wǎng)絡(luò)威脅,為應(yīng)用程序

提供全生命周期的動態(tài)安全保護,可以精準識別應(yīng)用運行時暴露出的各種安全

漏洞,進行深度且更加有效的威脅分析,快速定位應(yīng)用漏洞,大大提升修復(fù)效

率,保障應(yīng)用程序的安全性C

(3)威脅情報平臺

通過建立威脅情報平臺(ThreatIntelligencePlatform.TIP)(如圖27

所示),可以幫助安全人員明確企業(yè)的在線資產(chǎn)和安全狀況,根據(jù)企業(yè)自身資

產(chǎn)的重要程度和影響面,進行相關(guān)的漏洞修補和風(fēng)險管理;同時可以幫助安全

人員了解企業(yè)自身正在遭受或未來面臨的安全威脅,提供解決建議。

開源代碼■第三方管理■內(nèi)部情報■共享情報

收集

威脅情報平臺

整合

SIEMI防火墻,IPS■蟒點,SOAR

圖15威脅情報平臺原理

威脅情報平臺與各類網(wǎng)絡(luò)安全設(shè)備和軟件系統(tǒng)協(xié)同工作,為威脅分析和防

護決策提供數(shù)據(jù)支撐,通過對全球網(wǎng)絡(luò)威脅態(tài)勢進行長期監(jiān)測,以大數(shù)據(jù)為基

礎(chǔ)發(fā)布威脅態(tài)勢預(yù)警,實時洞悉風(fēng)險信息,進而快速處置風(fēng)險。

(4)容器安全工具

在發(fā)布運營階段,通過使用容器安全工具(ContainerSecurity)(如圖

28所示),可以自動化構(gòu)建容器資產(chǎn)相關(guān)信息,提供容器環(huán)境中各類資產(chǎn)的

狀態(tài)監(jiān)控,包括容器、鏡像、鏡像倉庫和主機等基礎(chǔ)資產(chǎn)信息,使資產(chǎn)擁有較

強的可擴展能力;通過建立智能應(yīng)用補丁掃描工具,為安全人員提供鏡像管

理、鏡像檢測以及自動化補丁修復(fù)建議。

LHTTPInterfaceNotifierNotificationStorage

Core

LiblndexLibvuln

UpdatersVulnerabilityStorage

LayerContentStorage

圖16某容器安全工具架構(gòu)

為了更好地應(yīng)對未知和迅速變化的攻擊,容器安全工具可以對數(shù)據(jù)進行持

續(xù)監(jiān)控和分析,通過結(jié)合系統(tǒng)規(guī)則、基線和行為建模等要素,自適應(yīng)識別運行

時容器環(huán)境中的安全威脅;建立一鍵自動化檢測機制,給安全人員提供可視化

基線檢查結(jié)果,同時將企業(yè)現(xiàn)有的安全技術(shù)與持續(xù)運營的安全模型相結(jié)合,實

現(xiàn)持續(xù)化的動態(tài)安全檢測。

二、軟件供應(yīng)鏈安全應(yīng)用實踐

1、可信研發(fā)運營安全能力成熟度模型

中國信息通信研究院云計算與大數(shù)據(jù)研究所自2019年起,聯(lián)合業(yè)界眾多

頭部廠商專家制定《可信研發(fā)運營安全能力成熟度模型》標準,提出可信研發(fā)

運營安全能力體系框架(如圖17所示)。可信研發(fā)運營安全能力體系框架的

構(gòu)建繼承SDL與DevSecOps的核心理念,安全前置,汲取SDL與

DevSecOps體系的優(yōu)點,優(yōu)化具體安全實踐要素,是一種貫穿研發(fā)運營全生

命周期的安全理念。

限茬

全口

出,安

;

甲?

里8

舞內(nèi)

目角

【項

置管理

it配

全審

;安

::

更詈理

,當(dāng)

首理

即更

審計

配置

B?岑要

安全

皆坦

組色

依賴

取1日

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論