DevSecOpsに連携できるAI BOMツールの選び方
松山 雄太
TECHFUND Inc. セキュリティ研究者
更新日:
対象読者: AI資産管理ツールを選ぶDevSecOps、ML基盤、ガバナンスの担当者。
まず押さえるポイント
AI BOMツールは、何を棚卸しし、どの根拠を記録し、結果を既存パイプラインへどう渡せるかで選びます。許可済みのサンプルでモデル、データセット、依存関係の対応と、取り込み・更新・出力を検証してください。
AI BOMを作る目的から逆算する
モデルのライセンスを確認したいのか、脆弱な依存関係を追いたいのか、あるいは利用中のモデルが変わったことを把握したいのか。目的によって、必要な項目もツールも変わります。まずモデルIDとバージョン、提供元、依存ソフト、利用場所、責任者を、必要に応じてデータセットとライセンスを棚卸し対象にします。
CycloneDXのML-BOMはモデルやデータセットなどを表現できる形式です。ただし、形式に項目があることと、ツールが自社環境からその値を取得できることは別です。
生成、管理、検査を分けて候補を探す
cdxgenはソースなどからBOMを生成する候補です。Dependency-TrackはCycloneDX BOMを受け取り、CI/CDからの登録やコンポーネントの分析に利用できます。前者の生成と後者の受け取り・管理は役割が異なるため、組み合わせを含めて評価します。
生成ツール同士も、見る対象が異なります。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の公式例です。機密を含まない対象で生成し、モデルID、バージョン、ライセンスを元の設定と照合します。これはコマンド例で、この環境で実行した結果ではありません。
モデルカードに書かれたデータセットやベースモデルは提供者による申告です。実際の学習利用を証明するものとして扱わず、カードの記載、観測した依存関係、学習ジョブの証跡を分けて確認します。
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なら
MCPで接続した開発環境からコードを解析し、検出箇所と修正案の確認を支援します。AI BOMの作成・管理は別の要件として、対応ツールと連携方法を確認してください。
Hi AUDIT Agentに登録する