close


軟件供應商手冊:

SBOM的生成和提供

董國偉 奇安信科技集團股份有限公司


摘要:



本手冊由美國國家電信和信息管理局(NTIA)格式化與工具工作組於2021年11月27日發布,旨在為軟件供應商提供軟件物料清單(SBOM)生成和交付方面的指導。手冊以SBOM生成的四步驟流程為主線,重點說明了在軟件構建(Build)前、構建中和構建後等各階段構造SBOM時的特點或應注意事項,以及目前常用的SBOM驗證方法。整體流程的完整性和對各階段應重點關注問題的討論是本手冊的主要亮點。手冊可為我國軟件生產企業或個人在SBOM生成和構造等方面提供一定的指導和借鑑。
















背景解讀:






近年來,全球軟件供應鏈安全攻擊事件持續高發,且危害越來越大,特別是2020年底爆發的太陽風(SolarWinds)攻擊事件,使得美國更加重視自身的供應鏈安全防護。2021年5月12日,美總統拜登簽署了「關於改善國家網絡安全(EO 14028)」的行政命令,其中的第4節針對「加強軟件供應鏈安全」提出了一系列具體要求,旨在迅速改善美國軟件供應鏈的安全性和完整性,而其第(f)條要求,NTIA於同年7月11日前發布SBOM的最低要求。

對此,NTIA於2021年7月12日發布了《SBOM最小要素》,規定了最小要素應包括數據字段、自動化支持、實踐和過程等三個方面,其中的實踐和過程指為了將SBOM集成到安全開發生命周期操作中而需定義其請求的操作、生成和使用等內容,包含頻率、深度、已知的未知情況(known unknowns)、分發和交付、訪問控制和容錯等。可以看出,SBOM的生成是將其集成到安全開發生命周期的重要一環。

11月27日發布的《軟件供應商手冊:SBOM生成和提供》是對最小要素中SBOM生成的進一步細緻討論和在實施層面的補充,給出了SBOM生成的一般性流程及每一步中應關注的重點。手冊中關於SBOM三種數據格式(SPDX、CycloneDX、SWID)和特定名詞(如「已知的未知情況」)的規定均與最小要素一脈相承。另外,根據手冊中的說明,這裡的軟件供應商指的是商用軟件、開源軟件、外包軟件等廣義的供應商。



正文解讀





通過對手冊內容進行分析,作者歸納出其參考價值和指導作用主要體現在4個方面。

01


以有效性為最終目標,總結了SBOM生成的工作流程

儘管各類組織用來生成SBOM的工具和過程多種多樣,但手冊歸納出了這一過程的一般性工作流程模型,即通過「識別組件-獲取數據-構造SBOM-驗證SBOM」4個步驟,最終得到格式有效、屬性合規的SBOM文件。

在上述過程中,每個步驟均有相應的技術、自動化工具、標準等進行輔助和支持,手冊介紹了它們中的代表性內容,例如軟件組成分析(SCA)工具、代碼分析工具、SBOM格式驗證工具、軟件包數據交換(SPDX)標準、OWASP CycloneDX和軟件組件驗證(SCVS)標準等。

總體而言,本手冊對於SBOM的構造和生成具有一定的指導作用,可基於其描述的流程、標準和工具等開展相關的研究工作,以增強軟件產品透明度,便於進行安全分析和保障。

02


以構建為階段劃分點,討論了SBOM構造的主要方法

手冊描述了在軟件構建(Build)之前、構建時和構建以後的不同時間階段,構造SBOM時可使用的方法工具、應考慮的信息類型、相應的特點和注意事項等內容,如表1所示。

表1 不同階段SBOM生成的對比

生成階段

生成方法

特點/注意事項

構建前

作為版本控制系統一部分,或由挖掘產品構建管道輸入的工具創建源碼級SBOM

有助於關鍵組件的識別及在創建產品之前查找漏洞;便於構建到源文件的追溯;可能會呈現並不包含在最終可執行文件中的脆弱源碼

構建時

作為構建工件自動化生成SBOM

包含更權威的組件特徵、無人工輸入錯誤、自動化SBOM簽名;必須確定構建過程中生成的SBOM的格式(列舉了SPDX等3種)

在構建管道或軟件工廠中生成SBOM

構建管道方法容易使用,但可能需要額外的資源集成管道;軟件工廠方法可解決多個開發生態系統沒有一致SBOM支持的問題

從容器化過程中導出容器鏡像SBOM

應匯總並識別來自所有層的所有軟件的信息;應包括容器間依賴關係、構建時間、簽名等

構建以後

(SBOM應包括生成時間、SBOM版本、簽名等)

舊系統中使用功能;來自不同的供應商、過程和工具等的SBOM信息的生成

應補充接近工程過程的組件數據、已知的未知情況等;代碼分析工具可掃描上游供應商組件的SBOM,但識別商業組件方面能力不足

非自動化系統和過程的SBOM生成

應理解SBOM中列出的組件的來源和軟件標識,以及如何獲取這些信息

手冊對每個階段中SBOM生成的特點或應注意方面進行了一些點上的描述,包括舉例等方式,多以說明性為主,缺少統一的描述邏輯。儘管如此,通過對表中內容的分析依然可以發現:

收集信息的全面性是SBOM構造的基礎。識別和收集軟件組件信息的全面性是首先要考慮的。手冊明確了,在構建過程中生成SBOM的,需提前確定格式,即使用標準來規範待收集的內容,並且在構建後還要補充必要的信息(例如無法通過自動化手段得到的)。

三個階段的SBOM生成工作各有側重。構建時的自動化信息收集是SBOM生成的主要方式;源碼級SBOM可以作為輔助;構建之後階段對SBOM的構造以信息(特別是來源信息)的補充和集成(多供應商SBOM)為主。

自動化工具提高了SBOM構造的效率和可操作性。手冊提到的工具包括:構建前使用的版本控制系統,挖掘構建管道輸入的工具;構建時使用的Git,與構建系統、包管理器和持續集成(CI)服務器集成的工具,構建管道和軟件工廠;構建後使用的代碼分析工具等

03


以安全性為出發點,分析了SBOM應包含的內外依賴

為了使運行時依賴關係等引入漏洞的情況不成為消費者和供應商的盲點,手冊強調SBOM應避免缺失對應用程序所安裝的運行時依賴項、操作系統、動態鏈接庫(DLL)、升級程序、共享庫或其他包含項的描述,且描述時應避免存在歧義;另外,為了提高供應商解決相關安全問題的效率,手冊明確當軟件功能執行依賴於對外部服務調用時,可使用SBOM列出軟件交付所需的外部服務。

內外部依賴關係是應用程序引入安全問題的重要來源之一,手冊將應用的內部依賴項和外部依賴的服務作為SBOM的重要組成部分,能夠幫助消費者和供應商更全面的了解應用程序,進而掌握可能引入安全問題的途徑,及時採取相應緩解措施,這有利於提高軟件安全防護的效率和準確性。

04


以可操作性為目的,列舉了SBOM驗證的工具和標準

針對SPDX、CycloneDX和SWID三種SBOM的格式正確性和完整性的檢驗,手冊列出了相應自動化工具的鏈接;針對SBOM信息中聲明的相關組件的識別、驗證和評估等,手冊提到了標準OWASP SCVS、OpenChain和軟件組成分析(SCA)工具。

目前SCA工具在識別軟件組成、分析軟件成分、統計軟件資產等方面功能明顯,可有效輔助SBOM中聲明組件和依賴信息的驗證。但SBOM文件自身驗證的工具還比較初級,並且都與特定的SBOM格式相綁定。例如手冊中提到的SBOM格式驗證工具,僅能夠對格式的正確性和完整性進行檢查,而不能檢查填充SBOM字段的數據質量或準確性。相信隨着SBOM相關技術的不斷發展,未來此類工具的功能也會有較大的提升。



影響及趨勢預判





美行政令EO 14028雖然對《SBOM最小要素》的制定進行了要求,但並未對它的使用進行強制規定。最小要素和本手冊可更多的被看作是對SBOM相關方,特別是美國軟件供應商的規範建議。

但另一方面,隨着全球網絡信息領域對軟件供應鏈安全、SBOM重要性認知的不斷提升,以及SPDX成為國際標準、《SBOM最小要素》的出台等,軟件供應企業(如商用軟件、外包軟件)和個人(如開源軟件)會越來越多主動或被動的構造並提供SBOM,本手冊可以在這一方面提供流程的規範和指導,具有積極的促進作用。無論美國廠商還是全球廠商都可以從中得到啟示,但手冊介紹的粒度較粗,供應商應根據自身狀況進一步細化後使用。

SBOM生成的自動化是構造SBOM的最終目標和提高效率的有效手段,但從手冊中可以看出,目前一些類型信息的收集還難以做到,例如「已知的未知情況」、遺留系統的相關信息等,並且手冊也缺少對這些的詳細方法介紹;此外,依賴項漏洞是軟件供應鏈安全風險的主要成因之一,手冊中列舉了幾類需在SBOM中重點關注的內外部依賴關係,但並未展開系統闡述。未來應對這些問題進行進一步的研究,進而為軟件供應商提供更加明確的指導。



總結及對策建議





手冊歸納了SBOM生成的一般工作流程,包括「識別組件-獲取數據-構造SBOM-驗證SBOM」4個步驟,並以構建為階段劃分點,討論了SBOM構造的主要方法,還重點分析了SBOM應包含的內外部依賴關係、列舉了針對SBOM的驗證工具和標準。基於上述情況,本文對我國的SBOM構造工作建議如下:

建議國家或行業監管部門指導制定軟件SBOM格式、生成和使用等方面的標準和指南,以規範該項工作;並建立有效的機制推動標準的落地、使用,引導相關自動化輔助工具的研發。

建議軟件供應商提高安全責任意識,根據已有的SBOM要素、生成、使用等參考資料制定滿足自身和使用者需求的SBOM規範,包括但不限於組件供應者、組件名稱、組件版本、依賴關係等信息內容,並在軟件研發和供應過程中嚴格執行。

建議軟件使用者將SBOM列為供應商必須提供的內容,並對其提交的軟件產品和SBOM進行驗證,以確保兩者的對應關係,從而提升軟件產品的透明度,提高軟件安全維護的效率和使用的安全性。

手冊原文可參考:https://www.ntia.gov/files/ntia/publications/software_suppliers_sbom_production_and_provision_-_final.pdf


SBOM系列政策文件研究由中國信通院、中國聯通聯合牽頭,籌建單位奇安信、會員單位懸鏡安全、綠盟、高偉達、比瓴、盈高科技、亞信、北銀金科、孝道科技、南陽理工大學、華為支持開展,包含13篇政策文件的翻譯、解讀,涵蓋了SBOM整體內容概述,SBOM的生成、獲取、交換、共享、管理、使用等全生命周期過程,回答了關於SBOM的常見問題,以期助力社區的安全研究研討,加速推進提升國內供應鏈的安全管理水平。


代碼衛士試用地址:https://codesafe.qianxin.com/
開源衛士試用地址:https://oss.qianxin.com



推薦閱讀
在線閱讀版:《2021中國軟件供應鏈安全分析報告》全文
谷歌和GitHub 聯手提出新方法,提振軟件供應鏈安全
GitHub 突然封禁受制裁俄羅斯實體的開發人員賬戶
速修復!這個嚴重的 Apache Struts RCE 漏洞補丁不完整
NPM流行包再起波瀾:維護人員對俄羅斯用戶發特定消息,誰來保證開源可信?
熱門Ruby 庫中存在嚴重的命令注入漏洞
PHP包管理器PEAR 中爆多個缺陷可發動供應鏈攻擊,已潛伏15年
FIN7 正在轉向密碼重置和軟件供應鏈攻擊
從主流安全開發框架看軟件供應鏈安全保障的落地
速修復!這個嚴重的Zlib內存損壞漏洞已存在17年!
攻擊者「完全自動化」發動NPM供應鏈攻擊
Pwn2Own大賽回顧:利用開源服務中的嚴重漏洞,攻陷西部數據My Cloud PR4100
Node-ipc 熱門包作者投毒「社死『』,誰來保護開源軟件供應鏈安全?
因供應商遭不明網絡攻擊,豐田汽車宣布停產
Linux Netfilter 防火牆模塊爆新漏洞,攻擊者可獲取root權限
豐田汽車頂級供應商 Denso 疑遭勒索攻擊,被威脅泄露商業機密
漏洞Dirty COW:影響Linux系統以及安卓設備
第三方支付處理廠商軟件有漏洞,日本美容零售商Acro 10萬支付卡信息遭攻擊
Linux 內核 cgroups 新漏洞可導致攻擊者逃逸容器
谷歌宣布 Linux Kernel、Kubernetes 0day 漏洞獎勵加倍
Apache Cassandra 開源數據庫軟件修復高危RCE漏洞
2021年軟件供應鏈攻擊數量激增300%+
熱門開源CMS平台 Umbraco 中存在多個安全漏洞,可使賬戶遭接管
詳細分析開源軟件項目 Ajax.NET Professional 中的RCE 漏洞(CVE-2021-23758)
SAP 嚴重漏洞可導致供應鏈攻擊
Apache PLC4X開發者向企業下最後通牒:如不提供資助將停止支持
Apache 軟件基金會:頂級項目仍使用老舊軟件,補丁作用被削弱
美國商務部發布軟件物料清單 (SBOM) 的最小元素(上)
美國商務部發布軟件物料清單 (SBOM) 的最小元素(中)
美國商務部發布軟件物料清單 (SBOM) 的最小元素(下)
NIST 發布關於使用「行政令-關鍵軟件」的安全措施指南
NIST 按行政令關於加強軟件供應鏈安全的要求,給出「關鍵軟件」的定義及所含11類軟件
SolarWinds 攻擊者再次發動供應鏈攻擊
美國「加強軟件供應鏈安全實踐的指南」 (SSDF V1.1草案) 解讀來了
軟件供應鏈安全現狀分析與對策建議
「木馬源」攻擊影響多數編程語言的編譯器,將在軟件供應鏈攻擊中發揮巨大作用
GitHub 在 「tar」 和 npm CLI 中發現7個高危的代碼執行漏洞
流行的 NPM 包依賴關係中存在遠程代碼執行缺陷
速修復!熱門npm 庫 netmask 被曝嚴重的軟件供應鏈漏洞,已存在9年
Npm 惡意包試圖竊取 Discord 敏感信息和瀏覽器文件
微軟「照片」應用Raw 格式圖像編碼器漏洞 (CVE-2021-24091)的技術分析
SolarWinds 供應鏈事件後,美國考慮實施軟件安全評級和標準機制
找到軟件供應鏈的薄弱鏈條
GitHub談軟件供應鏈安全及其重要性
揭秘新的供應鏈攻擊:一研究員靠它成功入侵微軟、蘋果等 35 家科技公司
開源軟件漏洞安全風險分析
開源OS FreeBSD 中 ftpd chroot 本地提權漏洞 (CVE-2020-7468) 的技術分析
集結30+漏洞 exploit,Gitpaste-12 蠕蟲影響 Linux 和開源組件等
限時贈書|《軟件供應鏈安全—源代碼缺陷實例剖析》新書上市
熱門開源CI/CD解決方案 GoCD 中曝極嚴重漏洞,可被用於接管服務器並執行任意代碼
GitKraken漏洞可用於盜取源代碼,四大代碼託管平台撤銷SSH密鑰
因服務器配置不當,熱門直播平台 Twitch 的125GB 數據和源代碼被泄露
彪馬PUMA源代碼被盜,稱客戶數據不受影響

題圖:Pixabay License






作者丨奇安信 董國偉

校審丨中國信通院 楊文鈺

中國聯通 賈倩倩

排版丨比瓴科技 駱玥辰


轉載請註明「轉自奇安信代碼衛士 https://codesafe.qianxin.com」。

奇安信代碼衛士 (codesafe)

國內首個專注於軟件開發安全的產品線。

覺得不錯,就點個「在看」 或 "贊」 吧~

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()