SBOM ビューア・比較(SBOM Studio)

CycloneDX や SPDX の SBOM(JSON・tag-value)を貼ると、部品の名前・版・purl・ライセンス・supplier・hash を表にし、依存関係を木で表示します。purl やライセンスの無い部品、同じ部品の別の版、NOASSERTION を指摘し、旧と新の SBOM の追加・削除・版・ライセンスの変化も比べられます。脆弱性データベースは引かず、SBOM に書かれた脆弱性の一覧だけを出します。

端末内で処理・アップロードなしスマホ対応オフライン対応

ファイルや入力内容はお使いの端末(ブラウザ)の中だけで処理され、サーバーへは送信されません。

SBOM は端末の中だけで読みます。サーバーへ送らず、保存もしません。脆弱性データベースは引きません(通信しません)。脆弱性は SBOM に書かれていた一覧だけを表示します。

SBOM ファイルをドロップ

または

JSON か SPDX の tag-value のテキスト 1 つ(20 MB まで)。内容は送信されません。貼り付け(Ctrl+V)にも対応
SBOM を貼り付けるか、ファイルをドロップすると、部品の一覧が出ます。

使い方

  1. sbom.cdx.json

    SBOM を貼る(JSON など)

  2. 部品の一覧名前・版・purl

    部品の表と依存の木

  3. 追加・削除・版の変更旧 SBOM と照合

    旧と比べた差

SBOM を貼り、部品と依存を確かめ、旧と比べて差を見る流れ
  1. SBOM の JSON(CycloneDX 1.4〜1.6、SPDX 2.2・2.3)か SPDX の tag-value を貼り付けるか、ファイルをドロップします(「ファイルを選択」でも可)。「サンプルで試す」でも動作を確認できます。

  2. 「部品」で名前・版・purl・ライセンス・supplier・hash を確かめます。検索と並べ替えができ、表示中の結果は CSV で保存できます。

  3. 「依存の木」で、根(アプリ)から先へどの部品に依存しているかを追えます。循環や深さの上限があるところは(省略)と表示します。

  4. 「指摘」で purl・版・ライセンスの不足、同じ部品の別の版、NOASSERTION の一覧を見ます。「脆弱性」は SBOM に書かれた一覧だけです。

  5. 「比較」で旧の SBOM を貼ると、追加・削除・版の変更・ライセンスの変更を並べます。

できること

CycloneDX と SPDX の両方

CycloneDX 1.4・1.5・1.6 の JSON と、SPDX 2.2・2.3 の JSON と tag-value を読みます。版が対象外のときは、その版を名指しして止めます。

依存関係を木で

CycloneDX の dependencies と、SPDX の relationships(DEPENDS_ON・CONTAINS・DESCRIBES など)を、根から下へ木にします。循環は 1 回だけ表示します。

旧と新の比較

2 つの SBOM を、purl(版を除いた形)か名前で対応させ、追加・削除・版の変更・ライセンスの変更を並べます。

指摘は根拠のある項目だけ

purl・版・ライセンスの無い部品、同じ部品の別の版、NOASSERTION を指摘します。どれも SBOM の中の記述だけを見て判定します。

CSV の書き出し

表示中の部品(検索と並べ替えを反映)を CSV にします。数式として開かれないよう、先頭の記号は守ります。

こんなときに

  • 受け取った SBOM が CycloneDX か SPDX か、どの版かを確かめたい
  • 部品ごとのライセンスと supplier を一覧にして、監査や社内の確認に渡したい
  • 前回のリリースの SBOM と比べて、新しく入った部品や版の変わった部品を見たい
  • 同じライブラリの版が 2 つ入っていないか、ライセンスが NOASSERTION の部品がないかを確かめたい

対応状況

機能対応補足
CycloneDX 1.4・1.5・1.6(JSON)の部品・依存・脆弱性の読み取り対応—
SPDX 2.2・2.3(JSON と tag-value)の部品・関係の読み取り対応tag-value は主要な項目だけを読みます。
旧と新の比較(追加・削除・版・ライセンス)対応—
脆弱性データベースとの照合非対応通信しません。SBOM に書かれた脆弱性の一覧だけを表示します。
署名の検証・SBOM の生成非対応SBOM を読むだけで、作成や署名の確認はしません。
lock ファイル(package-lock.json など)からの読み取り非対応lock ファイルは dependency_viewer を使ってください。
SPDX の全項目(ファイル単位の情報・注釈など)一部対応部品と関係に使う項目だけを読みます。

制限・注意事項

  • 入力は 20 MB まで、部品は 50,000 件まで読みます。超えた分は読み止めて通知します。
  • 木の表示は 2,000 件まで、深さは 12 段までです。超えた部分は(省略)と表示します。
  • 脆弱性データベースは引きません。脆弱性の一覧は SBOM に書かれていたものだけです。
  • ライセンスの判定(許諾の内容・互換性)はしません。ライセンスの文字列を表示するだけです。

プライバシーと安全性

貼り付けた SBOM は端末の中だけで読みます。サーバーへ送信・保存されることはなく、ブラウザにも保存しません。使用状況の記録にも内容やファイル名は含めません。

よくある質問

CycloneDX と SPDX のどちらの形式か、どう見分けますか?
先頭の bomFormat が CycloneDX なら CycloneDX、spdxVersion があれば SPDX です。tag-value は SPDXVersion: で始まります。どちらでもなければ、その旨を表示します。
dependency_viewer とどう違いますか?
dependency_viewer は package-lock.json などの lock ファイルから依存を読みます。このツールは、ビルドや別のツールで作られた SBOM(CycloneDX・SPDX)を読みます。
NOASSERTION は「ライセンス無し」と同じですか?
違います。NOASSERTION は作成者がライセンスを確認していない、という意味です。ライセンスが無いことを示す NONE や空とは分けて指摘します。
脆弱性は最新の情報で確かめられますか?
このツールは脆弱性データベースを引かないので、確かめられません。一覧には SBOM に書かれていたものだけが出ます。最新の情報は、別の脆弱性情報のサービスで確かめてください。
指摘がなければ、安全だと言えますか?
言えません。ここで見るのは SBOM の書き方(purl・版・ライセンス)の不足と重複だけです。部品の中身の安全性は確かめていません。

lockfile 比較・依存関係ツリー

2 つの lockfile を比べて、どのパッケージが追加・削除・更新されたかを表示します。あるパッケージがなぜ入っているか(入ってくる経路)と、同じパッケージの複数バージョンも分かります。ファイルはブラウザの外へ出ません。

アップロードなし

JSON 整形・検証(JSON Studio)

JSON を貼り付けるだけで整形・1 行化・構文チェック。エラーは「何行目の何が悪いか」まで表示し、コメントや末尾カンマは自動修復できます。データは端末の外へ送信しません。

アップロードなし

秘密情報スキャナー(Secret Scanner)

コードや設定ファイルを貼る・ドロップするだけで、公開前に消すべき秘密情報の候補を行番号つきで一覧します。値は既定で伏せ字、*** に置き換えたコピーも作れます。あくまで補助ツールで、検出漏れがないことは保証しません。

アップロードなし

OSS ライセンス一覧・NOTICE 作成(OSS License Report)

package-lock.json、CycloneDX・SPDX の SBOM、または「名前,版,ライセンス」の CSV を貼ると、ライセンスごとの件数と目安の分類を集計し、GPL・AGPL 系やライセンスの無いパッケージなどの要確認の一覧を出します。THIRD-PARTY-NOTICES の下書きも作れますが、ライセンスの全文は入れません。分類は目安で、法的助言ではありません。

アップロードなし

Docker Compose Studio

docker run のコマンドを compose.yaml に、compose.yaml を docker run に変換します。compose.yaml は構文・Compose Specification・よくある誤りを調べ、セキュリティ上の確認点も一覧にします。コンテナの起動やイメージの取得はせず、入力は端末の外へ送りません。

アップロードなし

Dockerfile Studio

Dockerfile を貼り付けると、構文・ステージ・よくある誤りを調べ、秘密らしい値や curl | sh などの確認したい点を一覧にします。整形と、Node.js・Python・Go・静的サイト・Java の雛形の生成もできます。ビルドはせず、入力は端末の外へ送りません。

アップロードなし

最終更新: