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