SBOMツール紹介 ~ bom: The SBOM Multitool編 ~

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

はじめに

こんにちは!PS SLのなーがです。

今回はSBOMツールの一つである「bom: The SBOM Multitool」について解説します。SBOMについてよく分からないという方は、まずこちらの記事を読んでみてください。

bomとは

  • ソフトウェア部品表 (SBOM) を作成、表示、変換できるユーティリティ
  • Kubernetes プロジェクトの SBOM を作成するプロジェクトの一部として作成された
  • ディレクトリ、コンテナー イメージ、単一ファイル、およびその他のソースから SPDX パッケージを生成できる汎用ツール
  • SPDX カタログ内の 400 以上のライセンスを認識するライセンス分類子が組み込まれている
  • Golang の依存関係分析や、.gitignore Git リポジトリのスキャン時の完全なサポートなどがある

環境

OS、ツールバージョン
Ubuntu22.04
GO1.21.4
bom0.6.0

インストール

GOプロジェクトなので、下記のコマンドでインストールします。

go install sigs.k8s.io/bom/cmd/bom@latest

バージョンを確認します。

bom version

走査対象

JavaでWebアプリケーションを作成する際に使用されるTomcatを対象とします。

SBOMの生成

すべての SPDX ドキュメントは、名前空間を宣言する必要がありますが、今回は全て「http://example.com/」と指定しています。

YAMLファイルからBOMの作成

今回はこちらは省略します。興味のある方は公式ドキュメントを参照してください。

現在のディレクトリからSBOMを作成

generateコマンドにoオプションで出力ファイル名、formatオプションでJsonを指定します。

bom generate -n http://example.com/ -o tomcat-spdx.json --format json .

コンテナイメージから生成

generateコマンドにiオプションでコンテナイメージを指定します。

bom generate -n http://example.com/ -i tomcat:11.0 -o tomcat-image-spdx.json --format json

特定のファイルのみを対象としたい場合

generateコマンドにfオプションでファイル名を指定します。

bom generate -n http://example.com/ \
-o tomcat_spdx.json --format json \
-f java/org/apache/tomcat/JarScannerCallback.java \
-f java/org/apache/tomcat/SimpleInstanceManager.java

その他のオプションについては公式ドキュメントを参照してください。

SPDXドキュメントの構造を描画

documentコマンドにoutlineを指定します。

bom document outline tomcat-spdx.json

オプションは公式ドキュメントを参照してください

SBOM 内の情報を検索

documentコマンドにquery、SPDXファイル、検索条件を指定します。

bom document query tomcat-spdx.json "depth:2 name:log4j"

depthは深さ、nameは検索したい要素を正規表現で指定できる

成果物を sbom と照合してチェックする

validateコマンドとして用意されていますが、こちらは開発中のため今回は省略します。

さいごに

今回はSBOMツールの一つである「bom: The SBOM Multitool」について解説しました。まだメジャーリリースが行われていないので、本来の目的であるKubernetes プロジェクトの SBOM を作成する機能はないですが、興味のある方は試してみてください。

関連記事

アバター画像
About なーが 16 Articles
前職は.NETやPythonを用いた業務アプリケーション、プロトタイプAPI開発に従事。2023年中途入社。とりあえずやってみて、苦しんで覚える系エンジニア。AWS認定3冠(SAA、MLS、DAS)

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる