如何選擇可連接 DevSecOps 的 AI BOM 工具

Yuta Matsuyama

TECHFUND 株式会社 資安研究員

更新日期:

適合誰閱讀: 選擇 AI 資產清單工具的 DevSecOps、機器學習平台和治理團隊。

簡要回答

依工具盤點的資產、記錄的依據及輸出如何進入現有管線選擇 AI BOM。用授權樣本驗證模型、資料集與依賴項涵蓋範圍,以及匯入、更新和匯出。

從建立AI BOM的目的反推需求

是想確認模型授權條款、追蹤有漏洞的相依項目,還是掌握使用中的模型是否發生變更?目的不同,所需的欄位與工具也不同。首先將模型ID與版本、供應來源、相依軟體、使用位置及負責人列為盤點對象,並視需要納入資料集與授權條款。

CycloneDX的ML-BOM是一種可描述模型、資料集等內容的格式。不過,格式中設有某個欄位,與工具能否從公司環境中取得該欄位的值,是兩回事。

區分產生、管理與檢查,再尋找候選方案

cdxgen是可從原始碼等來源產生BOM的候選工具。Dependency-Track則可接收CycloneDX BOM,用於從CI/CD登錄BOM及分析元件。前者負責產生,後者負責接收與管理,兩者角色不同,因此評估時也應考慮搭配使用。

各生成工具的檢查對象也有所不同。AIBoMGen CLI 針對儲存庫中 Hugging Face 模型的使用情況生成 CycloneDX AI BOM,也提供 GitHub Action。xgrep 會離線檢查程式碼中 AI SDK 與模型的使用情況,並以 CycloneDX 1.6 格式輸出。不過,xgrep 的 AI 專用輸出不包含一般軟體相依項目,因此需要另行生成 SBOM。

即使已使用現有的SBOM產生器,也不一定能取得模型專屬資訊。可在CycloneDX Tool Center尋找其他候選工具,除了支援格式,也要確認模型資訊的輸出欄位、CLI或API、身分驗證,以及既有的工單作業流程。

先在一個儲存庫中試用

以下是cdxgen v13.6.0的官方範例。請針對不含機密的對象產生BOM,並將模型ID、版本與授權條款和原始設定核對。這是指令範例,並非在此環境中執行所得的結果。

模型卡中記載的資料集與基礎模型,屬於提供者的聲明。不要將其視為實際用於訓練的證明,而應分別確認模型卡的記載、觀察到的相依關係,以及訓練工作的佐證紀錄。

使用已安裝的 cdxgen 產生 AI BOM
cdxgen -r --include-formulation -o aibom.json --bom-audit --bom-audit-categories ai-bom .

不要把空白清單視為成功

對於執行時透過環境變數或外部 API 選定的模型,僅靠儲存庫的靜態分析,有時可能會遺漏。如果我們是負責檢查程式碼的一方,就會將產生的清冊與應用程式設定及使用紀錄交叉比對,調查未列入清冊的引用。僅靠程式碼分析,不一定能掌握外部模型的完整使用情況。

整合至CI後,請變更模型版本,確認下一份產出是否呈現差異,以及接收端是否保留必要欄位。產生指令執行成功,並不代表偵測到問題時CI就一定會失敗。必須另外設定失敗條件與結束代碼的處理方式,並建立不將等待人工確認的項目視為通過的作業流程。

常見問題

AI BOM 與 SBOM 相同嗎?

兩者有重疊,但 AI 清單可能還需要模型和資料集資訊;請確認實際需要的欄位。

BOM 能證明模型安全或合規嗎?

不能。清單支援評估,仍需安全測試、治理及人工審查。

來源與延伸閱讀

Hi AUDIT Agent 如何協助您

Hi AUDIT Agent 在 MCP 連接的環境中協助程式碼分析、發現位置與修復建議審查。AI BOM 的建立與管理是獨立需求,請確認工具及整合方式。

註冊 Hi AUDIT Agent