美國多角色參與的軟件供應鏈安全保護措施
自2020年底政府和企業網絡遭受大范圍SolarWinds攻擊以來,美國加快推出軟件供應鏈安全的各類措施。根據2023年2月初的公開報道,美網絡安全和基礎設施安全局(CISA)正在組建一個新辦公室,專注于政府供應鏈安全并負責向政府機構、行業及其他合作方提供供應鏈風險管理政策及技術指導。
早在去年9至11月間,CISA就聯合美國家安全局(NSA)和國家情報總監辦公室(ODNI)陸續發布了三份《軟件供應鏈安全推薦實踐指南》,分別針對開發者(Developer)、供應商(Supplier)和用戶(Customer),給出了一組涵蓋安全原則、威脅場景、緩解措施的指導。
相比之下,這種區分角色的指南更便于軟件供應鏈各參與方明確自己的目標和責任、形成協作機制;此外,該系列指南的緩解措施給出了具體的實現技術和操作方法,便于各角色參照使用。
一、軟件供應鏈安全推薦實踐系列指南解讀
該系列指南由持久安全框架(ESF)組織具體編制,它們并非行政令EO 140238要求的成果,但參考了《安全軟件開發框架(SSDF)》等標準,指南附錄部分也列出了各章節與SSDF安全實踐的對應關系表。系列指南主要有以下特點:
1、根據角色確定安全實踐的形式和范圍
指南編制的基本指導思想是:組織在軟件供應鏈周期中的角色決定了其建立安全實踐的形式和范圍。從發布者CISA、NSA和ODNI來看,其關注的場景應主要聚焦于政企組織的供應鏈安全,包括開發者、用戶(即采購組織),以及負責聯絡它們的供應商(即賣方)三種角色,它們之間的關系及典型的安全活動如下圖所示。

其中,開發者的安全職責包括安全需求規劃、從安全角度設計軟件架構、添加安全特性,以及維護軟件和底層基礎設施(如環境、源碼的審計和測試)的安全等;供應商通過合同協議、軟件發布和更新、通知及漏洞緩解來確保軟件的完整性和安全性;用戶則主要負責推動實施軟件產品采購、部署和運營階段的安全活動和措施。
2、不同角色的安全活動兼具差異和協同
鑒于以上思路并考慮到常見的軟件供應鏈安全風險,指南把各角色的安全活動進一步分類和細化,形成了“推薦的安全原則”,即軟件供應鏈各類參與者應關注的安全領域,如下表所示。

從表中可以看出,開發者側重于生產研發的安全、供應商側重于保障的安全(驗證和完整性等)、用戶側重于部署運營和使用的安全。但它們之間不是割裂的,例如,三者都涉及交付的安全活動,另外,漏洞響應更是一個“反饋(用戶->供應商->開發者)”和“修復(開發者->供應商->用戶)”的雙向協同過程。因此,它們既有各自的安全職責,同時也高度協作,共同保護軟件供應鏈的安全。
3、緩解措施定位在技術實現和操作層面
對于每條安全原則,指南詳細描述了對應的“威脅場景”和“推薦的緩解措施”,下表總結了開發者“驗證第三方組件”類原則的核心內容,針對第三方組件的來源審查、安全掃描、集成前評估、集成后維護、信息記錄(SBOM)等環節給出了緩解措施,并且具體到了實現技術、參考條例和操作流程的粒度,較為詳細。

二、美國軟件供應鏈安全指南的角色適用性分析
自2021年以來,美國加快了軟件供應鏈安全的建設,特別是通過行政令的專門章節強化了對軟件供應鏈安全各方面的要求,涉及標準、指南、措施等規范性文件的制定和修訂。由NIST修訂完成的SSDF 1.1和《系統和組織網絡安全供應鏈風險管理實踐》(SP 800-161r1)是其中的重要成果。
面向軟件提供者的SSDF
SSDF 1.1的安全實踐涉及需求、設計、第三方軟件集成、編碼、構建、源代碼和可執行碼測試、漏洞修復響應和分析等階段,重點關注實現實踐的結果,而未對實現的具體工具、技術和機制進行展開。SSDF側重于軟件的提供者(大致與《軟件供應鏈安全推薦實踐指南》中“開發者+供應商”的角色對應)。
考慮到SSDF適用對象的局限,為了幫助美聯邦機構(購買者)響應行政令的要求,NIST還編制了補充文件《基于EO 14028 4e的軟件供應鏈安全指引》,指引提供一組建議,用來確保軟件生產商遵循了基于風險的安全軟件開發方法,并非具體的指導實踐內容。
面向需求方的SP 800-161r1補充指引
另一重要指南SP 800-161r1,旨在幫助組織開展網絡安全供應鏈風險管理(C-SCRM),為它們提供識別、評估、選擇、實施風險管理過程和緩解控制的指導。但軟件供應鏈安全管理是C-SCRM的關鍵子學科,因此,為了響應行政令,并能夠更有針對性的給組織的IT、C-SCRM、采購等部門提供第三方軟件和服務的獲取、使用及維護等方面的安全指導,NIST編制了《基于EO 14028 4c/4d的軟件供應鏈安全指引》(也是SP 800-161r1的附錄F)。
指引包括“現有的標準、工具和推薦實踐”和“演進中的標準、工具和推薦實踐”兩大部分。前者涉及“EO關鍵軟件定義”、《關鍵軟件使用安全措施》、SSDF 1.1、《開發者驗證軟件的最低標準指南》等行政令要求制定的文件對SP 800-161r1各章節內容,特別是C-SCRM安全控制項的影響或與它們的對應關系;后者針對為美聯邦機構量身定制的SBOM、開源軟件控制、漏洞管理、供應商風險評估等軟件供應鏈新概念,定義了多層級的能力標準。這些都是面向需求方/用戶(包括美聯邦機構)的。
美國軟件(供應鏈)安全相關的標準、指南、框架多以軟件開發生命周期作為基礎模型,比較容易在每個環節中結合參與角色的(安全)職責,確定針對性的安全策略和安全措施。這一過程可使用一個矩陣來表示,姑且叫做軟件供應鏈安全責任矩陣,下圖是《軟件供應鏈安全推薦實踐指南》對應的矩陣。

三、對我國軟件供應鏈安全標準的相關建議
國家標準《軟件供應鏈安全要求(送審稿)》規定了對軟件供需雙方的安全要求和控制措施,更側重于對需方的要求;此外,國內正在編制的一些軟件供應鏈安全行業和團體標準也多從供需雙方考慮安全要求。
《ICT供應鏈安全風險管理指南(GB/T 36637-2018)》規定了ICT供應鏈的安全風險管理過程和控制措施,適用于ICT產品和服務的供方和需方、第三方測評機構等。標準中風險管理和控制措施部分的詳細條目未明確指定對應的具體角色,統一使用“組織”作為規范對象;《信息技術產品供應方行為安全準則(GB/T 32921-2016)》面向信息技術產品供應方,規定了其行為安全準則。
總體而言,目前我國的供應鏈安全標準大都考慮到了不同的角色,且與SSDF類似,基本都關注于目標和結果,對于具體實現的技術、工具、機制等討論較少。鑒于這一現狀,建議可從兩個方面深化對軟件供應鏈安全的規范和指導:
制定行業和領域標準時應首先確定供應鏈參與各方。對于通用標準,從供需雙方進行角色劃分可滿足普適的指導要求。但對于特定的行業和領域場景,軟件供應鏈參與者可能更加多元和細分。因此在編制此類標準指南時,可首先根據實際情況確定安全職責矩陣,而后制定具體的安全措施。
可基于現有標準細化實施方法以形成強操作性指南。現有的標準在科學性和完備性等方面已經過了充分的論證,也較多給出了各方面應達到的安全目標和結果。如果能夠在此基礎上細化各條目的實現路徑,包括技術、工具、方法等內容,則可讓組織和企業“按圖索驥”,從而提升軟件供應鏈安全保護工作的可操作性和效率。