吳汝鈺,袁 忠,付玲玲
(中電科網(wǎng)絡(luò)安全科技股份有限公司,四川 成都 610041)
《“十四五”軟件和信息技術(shù)服務(wù)業(yè)發(fā)展規(guī)劃》指出,軟件是新一代信息技術(shù)的靈魂,是數(shù)字經(jīng)濟(jì)發(fā)展的基礎(chǔ),是制造強(qiáng)國(guó)、網(wǎng)絡(luò)強(qiáng)國(guó)、數(shù)字中國(guó)建設(shè)的關(guān)鍵支撐。隨著現(xiàn)代軟件開(kāi)發(fā)過(guò)程的不斷演進(jìn),以及新技術(shù)平臺(tái)的出現(xiàn),特別是以開(kāi)源為主的開(kāi)發(fā)方式的出現(xiàn),使得軟件供應(yīng)鏈條變得越來(lái)越復(fù)雜,暴露給攻擊者的攻擊面越來(lái)越多,攻擊事件頻發(fā),從而對(duì)用戶隱私、財(cái)產(chǎn)乃至國(guó)家安全造成重大威脅。
軟件成為支撐社會(huì)正常運(yùn)轉(zhuǎn)的基本組件的同時(shí),軟件的安全問(wèn)題也被認(rèn)為是根本性、基礎(chǔ)性問(wèn)題,保障軟件供應(yīng)鏈安全已經(jīng)成為業(yè)界關(guān)注的焦點(diǎn),同時(shí)也成為企業(yè)的公共訴求。Gartner公司分析指出,“到2025 年,全球45%組織的軟件供應(yīng)鏈將遭受攻擊,比2021 年增加3 倍”[1]。
基于當(dāng)前突出的軟件供應(yīng)鏈安全問(wèn)題,本文通過(guò)對(duì)業(yè)界軟件供應(yīng)鏈安全相關(guān)體系標(biāo)準(zhǔn)的研究和借鑒,圍繞國(guó)有大型企事業(yè)單位場(chǎng)景,結(jié)合DevSecOps 體系實(shí)踐探索出一套融入企業(yè)現(xiàn)有研發(fā)體系的安全開(kāi)發(fā)方法,可為中大型國(guó)有企事業(yè)單位的實(shí)踐落地提供參考。該安全開(kāi)發(fā)方法通過(guò)在開(kāi)發(fā)過(guò)程中持續(xù)關(guān)注和融入安全,保障軟件出生前的安全。
2021 年,安全類垂直媒體“安全?!卑l(fā)布了第八版中國(guó)網(wǎng)絡(luò)安全行業(yè)全景圖,軟件供應(yīng)鏈安全成為網(wǎng)絡(luò)安全行業(yè)的重要一級(jí)分類。數(shù)說(shuō)安全發(fā)布的《2022 年中國(guó)網(wǎng)絡(luò)安全十大創(chuàng)新方向》中,軟件供應(yīng)鏈安全與開(kāi)發(fā)安全入圍,其發(fā)布的《2022 年中國(guó)網(wǎng)絡(luò)安全市場(chǎng)年度報(bào)告》顯示,開(kāi)發(fā)安全在2021 年榮登安全行業(yè)融資額同比增速榜首。近幾年,圍繞軟件供應(yīng)鏈安全,各國(guó)陸續(xù)出臺(tái)相關(guān)法律法規(guī)、框架體系,逐步規(guī)范并提升行業(yè)軟件供應(yīng)鏈安全良好生態(tài)。
國(guó)際上對(duì)軟件供應(yīng)鏈管理早已達(dá)成共識(shí),特別是美國(guó)在2015 年發(fā)布了供應(yīng)鏈風(fēng)險(xiǎn)管理標(biāo)準(zhǔn),2021 年美國(guó)總統(tǒng)拜登簽署了第14017 號(hào)《美國(guó)供應(yīng)鏈行政令》。隨著網(wǎng)絡(luò)安全形勢(shì)的不斷發(fā)展變化,我國(guó)在網(wǎng)絡(luò)安全領(lǐng)域的重要法規(guī)頻頻出臺(tái),頭部的互聯(lián)網(wǎng)企業(yè)和安全廠商也紛紛投入軟件供應(yīng)鏈的安全建設(shè)中,持續(xù)構(gòu)建符合各企業(yè)的安全防護(hù)體系。
在我國(guó),目前針對(duì)關(guān)鍵基礎(chǔ)設(shè)施的軟件提供商主要集中在中大型國(guó)有企事業(yè)單位。這些企業(yè)因歷史沿革和發(fā)展需要,均存在自有產(chǎn)品體系多、技術(shù)體系覆蓋面廣、業(yè)務(wù)應(yīng)用及環(huán)境復(fù)雜、安全性要求高等特點(diǎn),企業(yè)如何通過(guò)新的平臺(tái)技術(shù)持續(xù)提升研發(fā)效能的同時(shí),加強(qiáng)軟件供應(yīng)鏈安全性是當(dāng)前普遍面臨的問(wèn)題。
本文主要對(duì)4 個(gè)軟件供應(yīng)鏈安全及安全開(kāi)發(fā)體系進(jìn)行了研究借鑒,包括美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(National Institute of Standards and Technology,NIST)發(fā)布的軟件開(kāi)發(fā)安全框架(Secure Software Development Framework,SSDF)、互聯(lián)網(wǎng)安全中心(Center for Internet Security,CIS)發(fā)布的軟件供應(yīng)鏈安全指南、微軟發(fā)布的安全供應(yīng)鏈消費(fèi)框架(Secure Supply Chain Consumption Framework,S2C2F)和中國(guó)信通院發(fā)布的軟件供應(yīng)鏈安全標(biāo)準(zhǔn)體系。
2022 年,NIST 發(fā)布了SSDF1.1 版本,該框架致力于減少已發(fā)布軟件中的漏洞數(shù)量,降低未被發(fā)現(xiàn)或未解決的漏洞被利用時(shí)的潛在影響,并從源頭上解決漏洞問(wèn)題,防止漏洞再次發(fā)生[2]。
2022 年,CIS 發(fā)布了軟件供應(yīng)鏈安全指南1.0版本,該指南主要細(xì)化了從源碼到交付全生命周期的100 多條管理和安全建議,其中包括源代碼、構(gòu)建管道、依賴項(xiàng)、制品、部署全流程主要環(huán)節(jié)。
微軟發(fā)布的S2C2F 主要專注于開(kāi)發(fā)集成人員對(duì)開(kāi)源軟件的使用安全。
中國(guó)信通院的軟件供應(yīng)鏈安全標(biāo)準(zhǔn)體系圍繞軟件引入、生產(chǎn)、應(yīng)用3 大環(huán)節(jié),建立了可信研發(fā)運(yùn)營(yíng)安全能力成熟度模型(Trustworthy evaluation of Security maturity Model,TSM)、軟件供應(yīng)鏈安全保障要求、開(kāi)源治理體系、軟件物料清單建設(shè)總體框架、DevSecOps 工具鏈5 大重要模塊,構(gòu)成了整個(gè)軟件供應(yīng)鏈安全管理標(biāo)準(zhǔn)。
目前,業(yè)界的軟件供應(yīng)鏈安全體系各有偏重,信通院的軟件供應(yīng)鏈安全體系較為全面,各體系僅能作為能力建設(shè)參考,企業(yè)在實(shí)際應(yīng)用場(chǎng)景的實(shí)踐過(guò)程中還需要結(jié)合企業(yè)本身的實(shí)際情況進(jìn)行探索。
軟件供應(yīng)鏈安全是解決軟件研制生產(chǎn)整個(gè)過(guò)程中的設(shè)計(jì)、編碼、工具、設(shè)備、環(huán)境、供應(yīng)商以及最終交付等所面臨的安全問(wèn)題。本文提出的軟件供應(yīng)鏈安全解決方案框架如圖1 所示。解決方案主要以開(kāi)發(fā)全生命周期安全融入為核心,圍繞開(kāi)源安全、開(kāi)發(fā)過(guò)程安全和開(kāi)發(fā)環(huán)境安全3 個(gè)方面進(jìn)行安全設(shè)計(jì)和實(shí)踐。
圖1 軟件供應(yīng)鏈安全解決方案框架
圍繞解決方案,本文提出了開(kāi)發(fā)全流程融入安全工具和質(zhì)量門禁后的安全開(kāi)發(fā)全流程,如圖2 所示。
圖2 安全開(kāi)發(fā)全流程
安全開(kāi)發(fā)全流程在實(shí)踐過(guò)程中主要依托企業(yè)原有的研發(fā)流程,在關(guān)鍵環(huán)節(jié)融入安全工具和門限要求,通過(guò)安全融入實(shí)現(xiàn)從安全需求分析、安全設(shè)計(jì)、安全編碼、安全開(kāi)發(fā)流水線、安全測(cè)試、安全交付、持續(xù)反饋全流程的安全活動(dòng)開(kāi)展和反饋閉環(huán)。
在需求分析階段,圍繞公司業(yè)務(wù)的特殊性,除了產(chǎn)品本身需要考慮一系列國(guó)家標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn),還需結(jié)合如開(kāi)放式Web 應(yīng)用程序安全(Open Web Application Security Project,OWASP)組織發(fā)布的應(yīng)用安全驗(yàn)證標(biāo)準(zhǔn),詳細(xì)分析可能涉及的安全需求,確保開(kāi)展各個(gè)層面的安全需求分析,從需求源頭保證業(yè)務(wù)應(yīng)用安全。
在安全設(shè)計(jì)階段,依托公司戰(zhàn)略規(guī)劃構(gòu)建一系列自帶安全基因的基礎(chǔ)軟件硬件平臺(tái),各產(chǎn)品可快速基于基礎(chǔ)平臺(tái)開(kāi)發(fā),讓產(chǎn)品團(tuán)隊(duì)聚焦業(yè)務(wù)功能,大幅提升產(chǎn)品研發(fā)效率、質(zhì)量和安全性。
在安全編碼階段,建立各類開(kāi)發(fā)語(yǔ)言的安全編碼規(guī)范,并使用統(tǒng)一安全合規(guī)的開(kāi)發(fā)環(huán)境、開(kāi)發(fā)工具和開(kāi)發(fā)資源,通過(guò)自動(dòng)化流程和工具進(jìn)行門限控制。例如,將安全編碼規(guī)范規(guī)則配置到集成開(kāi)發(fā)環(huán)境(Integrated Development Environment,IDE)中,通過(guò)代碼提交前的自動(dòng)檢查和阻斷控制源代碼的質(zhì)量和安全性。
在安全開(kāi)發(fā)流水線階段,一方面,建成基于DevSecOps 黃金管道的全環(huán)節(jié)安全自動(dòng)化檢測(cè)工具;另一方面,基于企業(yè)復(fù)雜的產(chǎn)品體系建立了多樣化的標(biāo)準(zhǔn)編譯環(huán)境,可通過(guò)流水線配置自動(dòng)化分配,提升產(chǎn)品編譯環(huán)境的安全管控能力。
在安全測(cè)試階段,每個(gè)產(chǎn)品版本都必須經(jīng)過(guò)專項(xiàng)的安全測(cè)試,包括但不限于主機(jī)安全、通信安全、客戶端安全、數(shù)據(jù)安全、Web 安全、業(yè)務(wù)安全合規(guī)、云安全、測(cè)評(píng)機(jī)構(gòu)要求等各類針對(duì)業(yè)務(wù)的安全測(cè)試,通過(guò)全面的測(cè)試進(jìn)一步保證制品的安全性。
在安全交付階段,一方面,針對(duì)專網(wǎng)用戶,由工程售后人員對(duì)部署交付物進(jìn)行完整性校驗(yàn),確保交付物來(lái)源可靠安全后才執(zhí)行用戶環(huán)境部署并上線;另一方面,在公司內(nèi)網(wǎng)建立產(chǎn)品驗(yàn)證試驗(yàn)田,將涉及傳輸安全、邊界安全、安全管理、身份安全、安全應(yīng)用等方面的產(chǎn)品應(yīng)用于公司生產(chǎn)環(huán)境,在產(chǎn)品定版歸檔后,通過(guò)自動(dòng)化流水線自動(dòng)發(fā)布到公司環(huán)境,快速試用進(jìn)而發(fā)現(xiàn)問(wèn)題,進(jìn)一步提升產(chǎn)品的安全可靠性。
在產(chǎn)品交付后的問(wèn)題反饋階段,建立多種產(chǎn)品反饋渠道,使用戶及公司市場(chǎng)人員、工程實(shí)施人員、售后人員可以通過(guò)如移動(dòng)端產(chǎn)品反饋入口快速反饋產(chǎn)品問(wèn)題,并打通移動(dòng)端與研發(fā)管理工具平臺(tái)的自動(dòng)化轉(zhuǎn)入和反饋處理,實(shí)現(xiàn)產(chǎn)品反饋問(wèn)題的快速閉環(huán)。
在整個(gè)安全開(kāi)發(fā)流程中嚴(yán)格執(zhí)行安全質(zhì)量門限卡點(diǎn),例如,在需求分析和安全設(shè)計(jì)階段,必須進(jìn)行組織級(jí)需求評(píng)審和設(shè)計(jì)評(píng)審,評(píng)審人員應(yīng)包括安全技術(shù)專家和業(yè)務(wù)安全專家,共同把關(guān)產(chǎn)品安全需求和設(shè)計(jì)的合理性。在開(kāi)發(fā)階段,代碼提交前必須通過(guò)IDE 質(zhì)量門禁以及代碼人工審查。在安全開(kāi)發(fā)流水線環(huán)節(jié),通過(guò)各環(huán)節(jié)門禁卡點(diǎn)控制產(chǎn)品安全質(zhì)量,控制風(fēng)險(xiǎn)軟件的發(fā)布,在自動(dòng)歸檔環(huán)節(jié)對(duì)制品包再次進(jìn)行病毒掃描等,通過(guò)關(guān)鍵環(huán)節(jié)的安全門禁控制持續(xù)提升產(chǎn)品交付后的安全可靠性。
安全開(kāi)發(fā)是指通過(guò)開(kāi)發(fā)全生命周期的每個(gè)階段都從安全的角度指導(dǎo)開(kāi)發(fā),將安全融入開(kāi)發(fā)過(guò)程,全面保障軟件供應(yīng)鏈安全。在實(shí)踐上重點(diǎn)推進(jìn)了開(kāi)發(fā)環(huán)境安全、開(kāi)源安全和安全工具鏈3 個(gè)方面。
在軟件開(kāi)發(fā)過(guò)程中,需要借助提前準(zhǔn)備的開(kāi)發(fā)環(huán)境、開(kāi)發(fā)工具編碼實(shí)現(xiàn)業(yè)務(wù)功能,代碼實(shí)現(xiàn)后需要提交到統(tǒng)一的代碼存儲(chǔ)平臺(tái)進(jìn)行管理,并借助持續(xù)集成(Continuous Integration,CI)、持續(xù)交付(Continuous Delivery,CD)環(huán)境和工具執(zhí)行集成構(gòu)建打包,如果過(guò)程中使用了不安全的環(huán)境和工具,會(huì)導(dǎo)致代碼存在被篡改、惡意植入等安全問(wèn)題[3]。
針對(duì)大型國(guó)有企事業(yè)單位產(chǎn)品體系和業(yè)務(wù)復(fù)雜性的特點(diǎn),一方面,為保障軟件開(kāi)發(fā)環(huán)境安全,首先需要厘清環(huán)境類別,從開(kāi)發(fā)語(yǔ)言、編譯構(gòu)建依賴環(huán)境、編譯構(gòu)建工具、制品形態(tài)等方面的差異性,將環(huán)境分為以C/C++開(kāi)發(fā)為主的設(shè)備類環(huán)境、以JAVA 開(kāi)發(fā)為主的軟件類環(huán)境、以Python 開(kāi)發(fā)為主的數(shù)據(jù)類環(huán)境、以Windows終端和移動(dòng)端為主的終端類環(huán)境、以go 開(kāi)發(fā)為主的云原生基礎(chǔ)設(shè)施類環(huán)境,通過(guò)梳理形成規(guī)范化的分類模板。另外,根據(jù)各開(kāi)發(fā)過(guò)程不同環(huán)節(jié)的差異性,形成開(kāi)發(fā)類、編譯構(gòu)建類、調(diào)測(cè)類3 類不同需求的標(biāo)準(zhǔn)環(huán)境模板,并持續(xù)根據(jù)開(kāi)發(fā)架構(gòu)的升級(jí)同步更新環(huán)境及各類工具,保證環(huán)境的可管理性和維護(hù)性。通過(guò)環(huán)境模板的版本化管理和基于模板自動(dòng)創(chuàng)建使用能力提升開(kāi)發(fā)過(guò)程環(huán)境一致性、規(guī)范性,保證開(kāi)發(fā)工具來(lái)源安全合規(guī)、使用可靠統(tǒng)一。另一方面,為保障核心資產(chǎn)的安全、可靠管理和存儲(chǔ),企業(yè)需要統(tǒng)一建設(shè)內(nèi)部私有化且配置安全防護(hù)及容災(zāi)策略的代碼存儲(chǔ)平臺(tái)和持續(xù)集成平臺(tái),并通過(guò)定期安全掃描等多種方式保障工具平臺(tái)環(huán)境安全性。
Gartner 公司表示,現(xiàn)代軟件大多數(shù)是被“組裝”出來(lái)的,不是被“開(kāi)發(fā)出來(lái)的”,80%~90%的代碼來(lái)自開(kāi)源軟件[4]。如何正確使用開(kāi)源軟件,規(guī)避因開(kāi)源漏洞、許可證和政治因素導(dǎo)致的開(kāi)源風(fēng)險(xiǎn),是企業(yè)共同面臨的現(xiàn)實(shí)問(wèn)題。
針對(duì)持續(xù)高發(fā)的開(kāi)源安全問(wèn)題,各企業(yè)應(yīng)逐步建立企業(yè)內(nèi)部的開(kāi)源治理體系,以保障開(kāi)源組件、框架的穩(wěn)健性,提高企業(yè)對(duì)開(kāi)源組件的維護(hù)、修復(fù)和應(yīng)對(duì)能力。企業(yè)開(kāi)源治理體系的目標(biāo)主要包括4 個(gè)方面:摸清企業(yè)所有開(kāi)源組件的使用情況;定義企業(yè)開(kāi)源組件使用質(zhì)量標(biāo)準(zhǔn);盡可能地通過(guò)工具實(shí)現(xiàn)自動(dòng)化監(jiān)測(cè)和跟蹤;提升開(kāi)源組件漏洞的快速響應(yīng)能力。
基于上述目標(biāo),各企業(yè)需要建立一套符合本企業(yè)應(yīng)用場(chǎng)景的開(kāi)源組件全生命周期管理工具、流程和規(guī)范,形成從組件引入、使用、應(yīng)急處理、歸檔到停用下線全流程的開(kāi)源組件管理規(guī)范要求,開(kāi)源組件全生命周期管理流程如圖3 所示。
圖3 開(kāi)源組件全生命周期管理流程
同時(shí),基于管理規(guī)范建立配套的工具平臺(tái)支撐規(guī)范落地。為減少運(yùn)維及規(guī)范管控環(huán)節(jié)的人力投入和可能出現(xiàn)的問(wèn)題,建議企業(yè)將開(kāi)源組件掃描、審查及管理工具逐步融入DevSecOps工具平臺(tái)中,通過(guò)如CI/CD 流水線能力將各工具系統(tǒng)串聯(lián)的同時(shí),持續(xù)將管理要求和相關(guān)質(zhì)量門禁工具化、自動(dòng)化落實(shí)到日常開(kāi)發(fā)過(guò)程中。
4.2.1 嚴(yán)格控制開(kāi)源組件引入
各企業(yè)應(yīng)逐步控制和收斂開(kāi)源組件的引入,通過(guò)開(kāi)發(fā)框架、開(kāi)發(fā)平臺(tái)的規(guī)范化梳理形成企業(yè)自有的開(kāi)源組件白名單,并結(jié)合開(kāi)發(fā)框架和項(xiàng)目腳手架工程在基礎(chǔ)開(kāi)發(fā)平臺(tái)中預(yù)置基礎(chǔ)框架白名單組件,方便同類產(chǎn)品直接復(fù)用框架和白名單組件。同時(shí),依托最小化引入原則對(duì)非白名單組件的引入建立嚴(yán)格的審查機(jī)制。一方面,通過(guò)便捷的自動(dòng)化工具及時(shí)規(guī)避安全漏洞及因協(xié)議不合規(guī)帶來(lái)的知識(shí)產(chǎn)權(quán)問(wèn)題;另一方面,結(jié)合技術(shù)和業(yè)務(wù)評(píng)判組件引入的必要性,通過(guò)嚴(yán)格的引入評(píng)審對(duì)漏洞可利用性、漏洞影響范圍、漏洞組件可替代性進(jìn)行評(píng)估,對(duì)于無(wú)可替換的問(wèn)題組件需要結(jié)合產(chǎn)品業(yè)務(wù)分析漏洞利用可規(guī)避的措施及觸發(fā)條件等嚴(yán)格審核后才能引入。
在管理上,確保引入的開(kāi)源組件是由專業(yè)團(tuán)隊(duì)根據(jù)引入的組件清單從可信來(lái)源下載并導(dǎo)入企業(yè)統(tǒng)一的安全合規(guī)組件庫(kù),進(jìn)而形成組織級(jí)安全合規(guī)組件資產(chǎn)清單。
4.2.2 嚴(yán)格把控產(chǎn)品構(gòu)建和歸檔環(huán)節(jié)組件來(lái)源安全合規(guī)
持續(xù)加強(qiáng)產(chǎn)品集成和歸檔環(huán)節(jié)開(kāi)源組件的安全合規(guī)性。各企業(yè)需要在已有DevSecOps流水線環(huán)節(jié)中增加軟件成分分析(Software Composition Analysis,SCA)檢測(cè)工具和組件來(lái)源檢查工具,一方面,持續(xù)對(duì)產(chǎn)品引用組件的漏洞風(fēng)險(xiǎn)進(jìn)行評(píng)估;另一方面,通過(guò)組件來(lái)源檢查確保產(chǎn)品對(duì)外交付的第三方組件均來(lái)源于組織級(jí)的安全合規(guī)組件資產(chǎn)庫(kù),進(jìn)一步確保對(duì)外交付的開(kāi)源組件的安全合規(guī)性。
4.2.3 通過(guò)SBOM 提高軟件透明度
圍繞軟件組成成分方面,各企業(yè)應(yīng)逐步根據(jù)企業(yè)實(shí)際情況,定義形成適合自己企業(yè)標(biāo)準(zhǔn)的軟件物料清單(Software Bill of Materials,SBOM),并通過(guò)開(kāi)發(fā)全流程逐步實(shí)現(xiàn)對(duì)軟件全生命周期SBOM 生成、更新和歸檔標(biāo)識(shí),形成透明的軟件組成成分使用、流轉(zhuǎn)和交付全流程自動(dòng)化審查控制,通過(guò)對(duì)SBOM 進(jìn)行流程化、工具化的管理,可持續(xù)支撐對(duì)0day 漏洞組件進(jìn)行快速定位和應(yīng)急響應(yīng)。
SBOM 管理在產(chǎn)業(yè)界已有一些標(biāo)準(zhǔn)和工具,在實(shí)踐中需要持續(xù)依托CI/CD 流水線,通過(guò)在流水線中集成適合的工具,可自動(dòng)化、持續(xù)地生成和更新軟件SBOM 清單。例如,在開(kāi)發(fā)階段,通過(guò)流水線自動(dòng)化生成SBOM 清單并標(biāo)識(shí)出新引入的組件和存在的問(wèn)題;在提交測(cè)試的流水線中自動(dòng)生成SBOM 并與安全合規(guī)組件庫(kù)進(jìn)行來(lái)源驗(yàn)證;在歸檔環(huán)節(jié)自動(dòng)生成SBOM 并歸入配置庫(kù),同時(shí)將SBOM導(dǎo)入組織級(jí)組件管理系統(tǒng),方便在后續(xù)發(fā)現(xiàn)0day 漏洞時(shí)能夠基于組件管理系統(tǒng)進(jìn)行快速的影響面分析,提升應(yīng)急響應(yīng)的執(zhí)行效率。
除逐步建立上述對(duì)開(kāi)源組件進(jìn)行全生命周期管理體系外,各企業(yè)還需重點(diǎn)推進(jìn)存量開(kāi)源組件資產(chǎn)盤(pán)點(diǎn),通過(guò)盤(pán)點(diǎn)形成組織級(jí)組件白名單,同時(shí)在盤(pán)點(diǎn)過(guò)程中逐步清理冗余組件,通過(guò)階段性的清庫(kù)存工作逐步建立企業(yè)開(kāi)源組件資產(chǎn)清單,摸清企業(yè)開(kāi)源組件的實(shí)際使用情況,形成軟件安全合規(guī)基線。
基于以上的實(shí)踐,基本實(shí)現(xiàn)了開(kāi)源組件全生命周期管理工具化和自動(dòng)化,并將工具融入開(kāi)發(fā)流程,可提升企業(yè)開(kāi)源組件安全應(yīng)對(duì)能力,規(guī)避開(kāi)源組件引入使用帶來(lái)的安全風(fēng)險(xiǎn)。
安全工具鏈即圍繞業(yè)界DevSecOps 工具平臺(tái)體系實(shí)踐和落地后形成的從代碼提交后觸發(fā)全流程安全工具掃描審查的自動(dòng)化流水線。DevSecOps 是由Gartner 公司于2016 年提出的框架,將威脅建模工具、安全編碼工具、安全測(cè)試工具、容器安全檢測(cè)工具、基線加固工具、漏洞管理工具等自動(dòng)化無(wú)縫集成到DevOps 流程中,實(shí)現(xiàn)開(kāi)發(fā)—安全—運(yùn)營(yíng)一體化[5]。
在持續(xù)保障和提升軟件供應(yīng)鏈安全應(yīng)對(duì)能力方面,企業(yè)應(yīng)建立自己的安全開(kāi)發(fā)流程和工具體系,通過(guò)安全開(kāi)發(fā)流水線支撐安全開(kāi)發(fā)體系落地。安全開(kāi)發(fā)流水線除了利用常規(guī)的CI/CD環(huán)節(jié)提升編譯構(gòu)建效率,在安全方面也應(yīng)該圍繞安全質(zhì)量指標(biāo)融入包括病毒、靜態(tài)應(yīng)用程序安全測(cè)試(Static Application Security Testing,SAST)、SCA、動(dòng)態(tài)應(yīng)用程序安全測(cè)試(Dynamic Application Security Testing,DAST)、交互式應(yīng)用程序安全測(cè)試(Interactive Application Security Testing,IAST)、容器安全等多環(huán)節(jié)工具??紤]到各企業(yè)安全需求的差異性及業(yè)務(wù)應(yīng)用場(chǎng)景的復(fù)雜性,建議各企業(yè)結(jié)合商業(yè)工具、開(kāi)源工具和自研發(fā)工具等多種工具形成互補(bǔ),從多個(gè)方面對(duì)開(kāi)發(fā)人員提交的代碼進(jìn)行全面安全分析和檢測(cè),并將發(fā)現(xiàn)的問(wèn)題前置到開(kāi)發(fā)階段解決,實(shí)現(xiàn)工具鏈門限管控真正的安全左移。
安全開(kāi)發(fā)流水線的應(yīng)用場(chǎng)景應(yīng)結(jié)合不同團(tuán)隊(duì)人員角色的質(zhì)量把關(guān)需求設(shè)置不同的環(huán)節(jié)和門禁要求。在大類上可以設(shè)置開(kāi)發(fā)人員、研發(fā)負(fù)責(zé)人和測(cè)試負(fù)責(zé)人等不同角色形成針對(duì)不同安全要求的多場(chǎng)景流水線,通過(guò)不同角色的安全質(zhì)量要求設(shè)置不同門禁,實(shí)現(xiàn)不同場(chǎng)景的安全質(zhì)量控制,全面提升產(chǎn)品開(kāi)發(fā)過(guò)程安全性。
在支撐組織級(jí)安全開(kāi)發(fā)流程落地到安全開(kāi)發(fā)流水線后,應(yīng)持續(xù)提升流水線的可自助式編排和可視化能力。一方面,應(yīng)提供更方便易用的編排工具,方便產(chǎn)品團(tuán)隊(duì)根據(jù)自身需求自助式地定義項(xiàng)目自身的流水線環(huán)節(jié)和項(xiàng)目級(jí)門禁要求;另一方面,對(duì)不同環(huán)節(jié)和門禁的構(gòu)建結(jié)果進(jìn)行統(tǒng)一的可視化展示,進(jìn)一步對(duì)發(fā)現(xiàn)的問(wèn)題進(jìn)行全流程閉環(huán),持續(xù)提升產(chǎn)品的質(zhì)量和安全性。
在整個(gè)安全開(kāi)發(fā)全流程落地過(guò)程中更強(qiáng)調(diào)過(guò)程控制的工具自動(dòng)化能力,入庫(kù)管控更嚴(yán)格,出口管控更精細(xì)。
開(kāi)發(fā)流程各環(huán)節(jié)的安全控制工具化主要體現(xiàn)在以下3 個(gè)方面。
(1)開(kāi)發(fā)環(huán)境模板化、流程化、工具自助化,通過(guò)將企業(yè)各類復(fù)雜產(chǎn)品類型所依賴的開(kāi)發(fā)環(huán)境梳理形成模板,并依托業(yè)務(wù)流程系統(tǒng)實(shí)現(xiàn)按需申請(qǐng),自助化生成使用,保障了各類環(huán)境的安全可靠性。
(2)開(kāi)發(fā)了一系列工具實(shí)現(xiàn)對(duì)開(kāi)源組件和商采組件的工具化、自動(dòng)化管控,并基于SBOM實(shí)現(xiàn)對(duì)組件從引入、使用、應(yīng)急處理、歸檔和停用下線的全流程管理。
(3)實(shí)現(xiàn)了復(fù)雜產(chǎn)品研制體系下,各種類型產(chǎn)品從源代碼提交觸發(fā)流水線自動(dòng)化構(gòu)建部署,并融入了包括病毒、靜態(tài)代碼掃描、組件漏洞掃描、組件來(lái)源合規(guī)、動(dòng)態(tài)應(yīng)用程序掃描、容器安全掃描等環(huán)節(jié)的安全工具鏈,通過(guò)多環(huán)節(jié)、多工具的安全掃描審查自動(dòng)化實(shí)現(xiàn)安全問(wèn)題早發(fā)現(xiàn)、早解決。
對(duì)開(kāi)發(fā)過(guò)程中使用的開(kāi)源及第三方軟件和組件引入進(jìn)行嚴(yán)格管控。一方面,通過(guò)梳理形成各類標(biāo)準(zhǔn)的開(kāi)發(fā)工具、開(kāi)發(fā)組件、部署組件白名單,在開(kāi)發(fā)過(guò)程中通過(guò)工具化和人工審查等多種方式確保使用白名單軟件和組件;另一方面,對(duì)于引入的軟件或組件遵循最小化引入原則、安全合規(guī)可控原則和業(yè)務(wù)必要性原則,必須進(jìn)行嚴(yán)格評(píng)審后才能引入,以保證各產(chǎn)品開(kāi)發(fā)過(guò)程工具和組件的安全可信可控。
針對(duì)開(kāi)發(fā)過(guò)程中各種可能引入的開(kāi)源組件和開(kāi)源代碼的情況,開(kāi)發(fā)實(shí)現(xiàn)了針對(duì)制品包檢查的工具,并集成到歸檔流水線中,通過(guò)將制品包逐層分解后,對(duì)每個(gè)組成進(jìn)行特征碼提取和識(shí)別的方式嚴(yán)格追溯制品包中引入的開(kāi)源及第三方組件來(lái)源于安全合規(guī)倉(cāng)庫(kù),通過(guò)來(lái)源卡點(diǎn)保證了交付到用戶環(huán)境的制品成分安全可信。
基于以上實(shí)踐基本建立了企業(yè)實(shí)際可落地實(shí)施的安全開(kāi)發(fā)流程和軟件供應(yīng)鏈安全體系,通過(guò)安全開(kāi)發(fā)流水線強(qiáng)控安全門限,將安全問(wèn)題前置到開(kāi)發(fā)階段解決,極大地降低了交付用戶后安全事件發(fā)生的頻率,一定程度上提升了產(chǎn)品質(zhì)量與安全性。目前,該體系已通過(guò)中國(guó)信通院TSM 可信研發(fā)運(yùn)營(yíng)安全能力成熟度模型增強(qiáng)級(jí)測(cè)評(píng)。
軟件供應(yīng)鏈安全涉及軟件研制的全生命周期,開(kāi)發(fā)安全是核心。針對(duì)軟件開(kāi)發(fā)過(guò)程除保障環(huán)境安全、開(kāi)源組件引入使用安全,并通過(guò)工具鏈將安全問(wèn)題發(fā)現(xiàn)前置到開(kāi)發(fā)階段外,各企業(yè)應(yīng)加強(qiáng)圍繞業(yè)務(wù)的開(kāi)發(fā)全流程安全融入,并通過(guò)創(chuàng)新技術(shù)和方法提升安全能力,真正實(shí)現(xiàn)軟件內(nèi)生安全。
隨著GB/T 39204—2022《信息安全技術(shù) 關(guān)鍵信息基礎(chǔ)設(shè)施安全保護(hù)要求》等標(biāo)準(zhǔn)的發(fā)布實(shí)施,對(duì)軟件廠商的產(chǎn)品安全要求將更為嚴(yán)格。作為軟件供應(yīng)鏈安全的上游廠商應(yīng)積極加強(qiáng)軟件供應(yīng)鏈安全相關(guān)標(biāo)準(zhǔn)體系研究和安全開(kāi)發(fā)標(biāo)準(zhǔn)體系建設(shè),確保向下游交付安全性良好的軟件,積極應(yīng)對(duì)軟件供應(yīng)鏈安全帶來(lái)的一系列安全威脅。