SBOM 與 VEX:組件清單和漏洞影響

Sytance · 更新於

SBOM 説明產品包含哪些軟件組件,漏洞可利用性交換信息(VEX)則傳達某個漏洞是否影響該產品。影響判斷需要結合具體版本、配置和組件使用方式進行分析。

組件清單、漏洞匹配與影響分析

組件清單記錄某個組件是否存在。漏洞匹配説明公告是否涉及該組件或版本。影響分析進一步檢查:在產品的實際構建和使用方式下,受影響代碼是否存在,以及漏洞能否被利用。

CycloneDX 通過 VEX 傳達針對具體產品的判斷。例如,產品可能包含某個組件,但構建時未包含存在漏洞的可選功能。判斷這種情況需要構建信息和分析依據。

OpenVEX 的四種狀態

OpenVEX 定義了四種狀態。每個狀態都對應聲明中標識的產品版本和漏洞。

OpenVEX 狀態含義
under_investigation仍在調查影響
affected指定產品受到影響
fixed指定版本已包含修復
not_affected指定產品不受影響

示例:網關中的可選解碼器

假設一款虛構網關使用的解析庫包含可選解碼器,而某個漏洞出現在這個解碼器中。分析時首先需要確認交付鏡像使用的具體構建,以及是否編譯了該解碼器。

如果構建選項和二進制分析確認該解碼器未被包含,可以據此作出 not_affected 聲明,理由為 vulnerable_code_not_present,即受影響代碼不存在。該結論針對已確認的具體構建。

如果代碼存在,但執行情況尚不明確,則保持調查中狀態,繼續檢查入口和執行路徑。確認產品受影響後,即使後續版本已經修復,舊版本仍屬於受影響版本;新版本應單獨記錄其狀態。

不受影響的判斷依據

OpenVEX 要求 not_affected 聲明包含理由代碼或影響説明。其機器可讀理由區分組件不存在、受影響代碼不存在、代碼不在執行路徑中、攻擊者無法控制相關代碼,以及產品內置緩解措施等情形。

不同理由對應不同條件。網絡訪問限制不會移除受影響代碼。對於“產品內置緩解措施”這一理由,OpenVEX 要求措施能夠阻止漏洞利用,且用戶不能將其關閉或重新配置。

判斷執行路徑時,説明受影響函數、檢查過的路徑和適用配置。相關條件變化後重新評估。如果結論只有在客户採用特定設置時才成立,應明確説明這一條件。

使用供應商的 VEX 聲明

供應商的 VEX 聲明可以用於篩選告警或調整處理優先級。使用前需要確認來源可信、產品版本匹配,並檢查聲明的發佈時間、修訂、適用配置和建議措施。

即使供應商可信,其結論與本方分析不一致時,也應保留雙方記錄並查明原因。廣泛覆蓋產品系列的聲明,未必適用於組件或選項不同的定製構建。

發佈 VEX 後,SBOM 仍需要維護。新公告會帶來新的調查問題,產品修訂也可能使舊結論失效。清單更新與影響判斷應保持關聯,並分別保留歷史。

延伸閲讀