從軟件産品采購(gòu)環節做(zuò)好軟件供應鏈安全保障
以下(xià)文章(zhāng)來(lái)源于《中國信息安全》雜(zá)志
2021年10月(yuè)刊(第143期)
随著(zhe)“軟件定義一切”時(shí)代的(de)到來(lái),以及容器、微服務、雲原生等新興技術在軟件行業的(de)普及應用(yòng),幾乎所有的(de)軟件産品已使用(yòng)或包含了(le)開源組件/軟件,相應的(de)軟件供應鏈攻擊事件也(yě)日益增長(cháng)。
我國軟件供應鏈安全面臨嚴峻挑戰
近年來(lái),一方面,西方國家限制我國關鍵軟件進口,破壞我國軟件供應鏈完整性。另一方面,我國核心工業軟件行業在關鍵軟件以及設計工具這(zhè)兩方面對(duì)進口商品依賴性較高(gāo),掌握主動權仍需時(shí)日。例如,我國80%以上的(de)核心工業軟件依賴進口,電子領域的(de)研發設計軟件對(duì)外依賴率高(gāo)達90%;最常用(yòng)的(de)操作系統和(hé)應用(yòng)軟件大(dà)部分(fēn)由國外掌握,如:Windows、iOS、Android等。
同時(shí),當前軟件産品開發過程中經常使用(yòng)自帶有安全漏洞和(hé)潛在風險的(de)開源代碼。根據中國信通(tōng)院發布的(de)《開源生态白皮書(shū)2021》,開源代碼的(de)安全漏洞風險顯著。根據開源網安開源組件安全及合規管理(lǐ)平台SourceCheck對(duì)行業熱(rè)門開源項目的(de)掃描結果顯示:53.8%的(de)開源項目會含有至少一個(gè)或者一個(gè)以上的(de)超危風險漏洞。如果高(gāo)等級的(de)潛在風險被惡意利用(yòng),勢必産生極其惡劣的(de)影(yǐng)響。
軟件供應鏈管控體系需持續完善。《網絡産品和(hé)服務安全審查辦法》已于2021年6月(yuè)1日起正式實施,我國逐步将軟件産品研發、測試、交付、技術支持等過程中的(de)安全風險作爲重點審查方向,對(duì)軟件供應鏈管控體系的(de)構成起到了(le)推動作用(yòng),但仍需持續、統籌構建國家層面的(de)軟件供應鏈安全體系。
開源軟件供應鏈事故頻(pín)發,加強軟件供應鏈安全保障尤爲重要
Sonatype公司的(de)《2021年軟件供應鏈狀況報告》(State of Software Supply Chain 2021)報告指出:前四名的(de)開源生态系統共放出了(le)6,302,733個(gè)新版本和(hé)723,570個(gè)全新開源項目,共包含了(le)合計37,451,682個(gè)不同版本的(de)開源組件數。2021年,全球研發者從這(zhè)四個(gè)開源生态系統需求共2.2萬億個(gè)開源包,開源組件下(xià)載年增長(cháng)率達到73%。如此高(gāo)的(de)需求增長(cháng)率讓安全隐患也(yě)逐漸顯露。報告指出,最受歡迎的(de)開源項目中有29%的(de)項目含有至少一個(gè)已知安全漏洞。除此之外,供應鏈攻擊現象更爲頻(pín)發。2021年,全球範圍内對(duì)軟件供應鏈上遊的(de)開源生态系統攻擊的(de)數目達到了(le)650%的(de)增長(cháng)值。
開源軟件安全事故頻(pín)發,安全态勢緊張。2020年4月(yuè),Rubygems開源軟件包生态系統被惡意植入了(le)數百個(gè)惡意軟件包,下(xià)載量高(gāo)達10萬餘次。同年5月(yuè),Github披露了(le)針對(duì)Apache NetBeans IDE項目的(de)開源軟件供應鏈攻擊源Octopus Scanner,據統計,共有26個(gè)開源項目被植入了(le)Octopus Scanner後門。同年12月(yuè),網絡安全管理(lǐ)軟件供應商SolarWinds遭遇國家級APT組織的(de)軟件供應鏈攻擊。導緻包括美(měi)國關鍵基礎設施、軍隊、政府等在内的(de)超過1萬8家客戶可(kě)被攻擊者任意操縱,危害巨大(dà)。2021年2月(yuè),微軟、蘋果、PayPal、特斯拉、優步等35家國際公司内網被安全研究人(rén)員(yuán)通(tōng)過一種名爲依賴混淆攻擊的(de)方式(利用(yòng)開源生态安全機制上的(de)漏洞)對(duì)這(zhè)些公司的(de)軟件供應鏈進行了(le)侵入。同年4月(yuè),知名代碼測試公司Codecov宣布其産品的(de)bash uploader腳本被攻擊者修改,導緻攻擊者可(kě)以獲取Codecov産品用(yòng)戶的(de)軟件源代碼等機密信息。
據Forrester統計,軟件開發行業内高(gāo)達80%-90%的(de)代碼來(lái)自開源軟件。市面上所流通(tōng)使用(yòng)的(de)開源軟件大(dà)多(duō)爲由自主研發的(de)源代碼和(hé)開源軟件代碼共同組成的(de)混源代碼,雖然混源代碼的(de)大(dà)規模應用(yòng)可(kě)以有效提高(gāo)軟件開發的(de)效率,以及大(dà)幅度降低研發成本,但是,也(yě)帶來(lái)了(le)極高(gāo)的(de)風險。開源代碼作爲信息時(shí)代的(de)基礎原材料,其本身的(de)安全狀況會直接影(yǐng)響客戶所購(gòu)買的(de)産品軟件的(de)安全性。
在采購(gòu)階段加強軟件供應鏈安全管控,實現“安全左移”
目前,一種較爲可(kě)行的(de)軟件供應鏈安全管控方法是在軟件産品采購(gòu)環節對(duì)軟件源代碼(軟件的(de)原材料)以及成品軟件采購(gòu)進行質量把關。同時(shí),國家有關部門需構建軟件供應鏈條管控機制,從軟件供應源頭做(zuò)好軟件産品及軟件供應過程的(de)安全管控,達到将“安全左移”的(de)目的(de)。
解決軟件供應鏈安全需要考慮兩個(gè)方面的(de)問題,一是如何搭建軟件供應鏈安全風險管理(lǐ)平台,二是如何合理(lǐ)利用(yòng)安全風險管理(lǐ)平台以及其他(tā)資源來(lái)解決軟件供應鏈安全風險和(hé)威脅。解決該問題可(kě)以從采購(gòu)、運維、下(xià)線三個(gè)維度建立平台框架來(lái)構建軟件供應鏈平台。采購(gòu)階段的(de)安全防範以及合理(lǐ)措施,主要有三個(gè)關注點。
對(duì)軟件供應商的(de)企業資質進行考量。供應商企業資質是否合格,需要每位供應商能提供合法的(de)資質審核和(hé)證明(míng),同時(shí)簽署安全責任協議(yì)。供應商資質審核涵蓋内容可(kě)分(fēn)爲兩部分(fēn):通(tōng)用(yòng)資質和(hé)行業資質。通(tōng)用(yòng)資質主要包含成立年限、組織架構、經營狀況、認證等級、人(rén)員(yuán)配置、資産和(hé)收益、成功案例等。行業資質主要包含國家網絡安全相關管理(lǐ)部門頒發的(de)行業資質。
對(duì)軟件産品進行安全評估。評估内容可(kě)分(fēn)爲四個(gè)方面:對(duì)軟件的(de)後門和(hé)隐藏功能用(yòng)源代碼審計或編譯後代碼掃描;對(duì)軟件自身安全缺陷使用(yòng)灰盒(IAST)、白盒(SAST)、黑(hēi)盒(DAST)、模糊測試(FUZZING)等方式掃描;對(duì)軟件使用(yòng)和(hé)依賴開源組件的(de)漏洞、知識産權和(hé)許可(kě)合規性使用(yòng)軟件成分(fēn)分(fēn)析(SCA)掃描;對(duì)軟件包含的(de)病毒和(hé)惡意軟件使用(yòng)防病毒軟件檢測。評估結果可(kě)用(yòng)于核對(duì)供應商産品所包含的(de)内容。通(tōng)常,供應商所提供的(de)産品需要以及建議(yì)包括産品部署包、産品的(de)組件物(wù)料清單(BOM)、知識産權合規說明(míng)、依賴和(hé)環境安全配置、産品說明(míng)書(shū)等;不應包含:病毒、後門、惡意代碼、隐藏功能、已知代碼漏洞、已知組件漏洞、知識産權違規、無許可(kě)信息和(hé)敏感信息暴露等。
對(duì)軟件供應商的(de)軟件安全能力成熟度進行評估。軟件供應商的(de)軟件産品安全能力成熟度評估,需要囊括軟件供應商的(de)安全開發能力和(hé)安全運營能力。通(tōng)常,安全開發能力成熟度應包括對(duì)軟件産品研發過程中各階段及軟件産品發布後各階段的(de)安全實踐,并結合軟件供應商的(de)組織戰略、人(rén)員(yuán)能力、工具能力等多(duō)個(gè)維度對(duì)成熟度進行綜合性評價,以判斷軟件供應商是否具有充足的(de)能力爲軟件産品及其供應鏈安全提供必要的(de)技術與管理(lǐ)支撐。
對(duì)采購(gòu)人(rén)員(yuán)以及其他(tā)相關人(rén)員(yuán)的(de)建議(yì)
在軟件産品采購(gòu)階段,采購(gòu)人(rén)員(yuán)以及使用(yòng)人(rén)員(yuán)、安全人(rén)員(yuán)對(duì)軟件供應鏈安全保障同樣具有重要作用(yòng)。
對(duì)采購(gòu)人(rén)員(yuán)的(de)建議(yì)。采購(gòu)前先對(duì)供應商進行企業資質審核,并對(duì)該供應商是否可(kě)持續且安全地提供服務進行評估。采購(gòu)前邀請安全人(rén)員(yuán)對(duì)軟件産品進行安全測試選型,确認拟采購(gòu)軟件的(de)安全态勢符合使用(yòng)人(rén)員(yuán)需求。采購(gòu)前要求軟件供應商自行提供能夠證明(míng)軟件産品安全可(kě)信的(de)證明(míng)材料及軟件開發過程成熟度的(de)評估結果,以确認軟件供應鏈過程中可(kě)持續交付安全的(de)軟件産品。
對(duì)使用(yòng)人(rén)員(yuán)的(de)建議(yì)。始終保持任何外來(lái)軟件都不是完全可(kě)信的(de)态度,優先選擇知名度高(gāo)、口碑好、安全意識高(gāo)的(de)軟件供應商所提供的(de)軟件産品。堅持從合規合法渠道獲取軟件産品,并遵循軟件供應商的(de)官方指引正确安裝。
對(duì)安全人(rén)員(yuán)的(de)建議(yì)。維護企業内部的(de)可(kě)信軟件清單,盡量減少企業人(rén)員(yuán)從各種未知渠道下(xià)載軟件。維護企業内部所用(yòng)的(de)依賴組件清單,明(míng)确哪些依賴組件可(kě)以使用(yòng)、哪些依賴組件不能使用(yòng)、哪些依賴組件正在使用(yòng)。
目前,我國已逐漸啓動軟件供應鏈安全保障體系和(hé)機制的(de)構建工作。随著(zhe)《網絡安全法》、《數據安全法》、《網絡産品安全漏洞管理(lǐ)規定》、《關鍵信息基礎設施安全保護條例》等一系列法律法規的(de)頒布實施,軟件供應鏈安全在整體網絡安全保障中的(de)作用(yòng)愈加凸顯。因此,建議(yì)在采購(gòu)環節做(zuò)好軟件産品的(de)安全評估,從源頭做(zuò)好軟件供應鏈安全保障,才能有效應對(duì)軟件供應鏈面臨的(de)安全問題。