はじめに
こんにちは!SBOMツールを調査中のなーがです。前回に引き続きSCANOSSについてみていきます。今回は検証用GUIツールの「SBOM Workbench」を使ってみたのでインストール方法や機能について書きます。そもそもSBOMについてよく分からないという方は、まずこちらの記事を読んでみてください。
- SCANOSSについて
- 検証用GUIツール「SBOM Workbench」 ← 今回
- PythonのSDK「scanoss.py」
SBOM Workbenchについて
SBOM WorkbenchはSCANOSS API を使用してソース コードをスキャンおよび監査するためのGUIツールです。しかし、商用ツールとしてではなく、あくまで検証用という立ち位置になります。
ソース コード ディレクトリをスキャンするだけで、オープンソースコンポーネントを見つけて識別し、ボタンを押すだけでSBOM を生成できます。
インストール
下記のURLからインストーラーをダウンロードします。Linux、MacOS 、Windowsから選択できます。今回はWindows版を選択しました。
https://www.scanoss.com/product
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_14h30_31.png?resize=880%2C440&ssl=1)
ダウンロードされたZIPファイルを解凍して、インストーラーをダブルクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_14h31_31.png?resize=334%2C158&ssl=1)
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_14h32_31.png?resize=880%2C515&ssl=1)
Windows のDefender SmartScreenによりブロックされた場合は、「詳細情報」をクリックし、「実行」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_14h32_55.png?resize=534%2C507&ssl=1)
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_14h32_59.png?resize=534%2C507&ssl=1)
インストールが完了すると、アプリケーションが起動します。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_14h33_40.png?resize=880%2C544&ssl=1)
日本語化
「File」から「Settings」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_14h36_32.png?resize=880%2C495&ssl=1)
「Language」で「日本語」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_14h36_41.png?resize=880%2C475&ssl=1)
「Save」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_14h36_48.png?resize=880%2C475&ssl=1)
ポップアップが表示されるので、「すぐに再起動」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_14h36_55.png?resize=451%2C164&ssl=1)
アプリケーションが起動すると日本語になります。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_16h08_18.png?resize=880%2C495&ssl=1)
コードのスキャン
「新しいプロジェクト」または「scanning a new project」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_16h08_18-1.png?resize=880%2C495&ssl=1)
スキャン対象とするコードのディレクトリを選択して「フォルダの選択」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_16h14_12.png?resize=880%2C495&ssl=1)
「続ける」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_16h16_54.png?resize=880%2C475&ssl=1)
スキャンが開始され、依存関係や脆弱性が進捗状況が表示されます。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_14h34_56.png?resize=880%2C560&ssl=1)
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h42_56.png?resize=880%2C495&ssl=1)
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h10_13.png?resize=880%2C495&ssl=1)
スキャンが完了すると、以下のようなダッシュボードが表示されます。日本語設定にしていますが、一部英語のままになっている箇所もあります。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h21_52.png?resize=880%2C495&ssl=1)
エクスポート
「エクスポート」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h23_22.png?resize=880%2C495&ssl=1)
現在では、6種類のフォーマットで出力が出来ます。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h21_52-1.png?resize=880%2C495&ssl=1)
「CycloneDX」形式で出力してみます。任意の場所を選択して「保存」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-10-02_15h20_12.png?resize=880%2C580&ssl=1)
CycloneDX形式で出力されました。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-10-02_15h22_04.png?resize=880%2C509&ssl=1)
検出されたコンポーネントの確認
「検出されたコンポーネント」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_16h22_34.png?resize=880%2C495&ssl=1)
ここでは、どのファイルでコンポーネントが使用されているかを確認できます。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_16h53_46.png?resize=880%2C495&ssl=1)
検出されたコンポーネントの「承認」をクリックするとポップアップが表示されます。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_16h57_09.png?resize=880%2C475&ssl=1)
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_16h56_41.png?resize=880%2C475&ssl=1)
検出結果が間違っている場合は、変更出来ます。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h17_39.png?resize=880%2C495&ssl=1)
「承認」をクリックします。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_16h56_41-1.png?resize=880%2C475&ssl=1)
承認したコンポーネントの表示が「識別済み」に変更されました。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_16h58_27.png?resize=880%2C475&ssl=1)
右上でプロジェクトで承認された依存関係の割合が確認できます。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_18h06_15.png?resize=880%2C495&ssl=1)
レポートの確定されたコンポーネントで下記のように表示されるようになりました。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h06_31.png?resize=880%2C495&ssl=1)
キーワード検索
キーワード検索では、入力した文字を含む依存関係を検索できます。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_18h09_18.png?resize=880%2C495&ssl=1)
脆弱性の確認
「レポート」の脆弱性をクリックすると、検出された脆弱性が確認できます。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h23_24.png?resize=880%2C495&ssl=1)
深刻度やソースが表示され、「CVE」のリンクから参照している脆弱性データベースにアクセスできます。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h30_35.png?resize=880%2C495&ssl=1)
ホーム画面
左上の家アイコンをクリックするとプロジェクトの一覧が表示されます。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h23_25.png?resize=880%2C495&ssl=1)
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_18h03_35.png?resize=880%2C495&ssl=1)
ここでは「プロジェクトのエクスポート」、「再スキャン」、「プロジェクト削除」を行うことが出来ます。
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h57_34.png?resize=880%2C495&ssl=1)
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h59_46.png?resize=880%2C495&ssl=1)
![](https://i0.wp.com/tech-lab.sios.jp/wp-content/uploads/2024/10/2024-09-25_17h59_51.png?resize=880%2C495&ssl=1)
さいごに
今回は検証用GUIツールの「SBOM Workbench」を使ってみたのでインストール方法や機能について書きました。次回はSCANOSSのPython SDK「scanoss.py」を使ってみたことについて書く予定です。