Mend社のソフトウェアコンポジション解析ツール(旧WhiteSource)の使い方(チュートリアル)
この記事では、Mend社のソフトウェアコンポジション解析ツール(旧WhiteSource)の一般的な使用方法について説明します。
システム構成などについては製品紹介ページに記載していますので、必要に応じて適宜参照ください。
OSSチェックの流れ
Mend社のソフトウェアコンポジション解析ツールを使うと、製品・サービスに含まれるOSSを自動的に把握することができます。また、検出したOSSに含まれる脆弱性や、ライセンス情報・著作権情報などの参照が可能となります。
以下の手順でOSSのチェックを行います。
- Unified Agentのインストール
- 解析準備
- 解析対象のスキャン
- 結果の確認
以降でそれぞれ説明していきます。本来、Mend社のソフトウェアコンポジション解析ツールはCI/CD連携などで利用されることが多いと思われますが、本記事では手元の開発マシンで試すことを想定して手順を説明していきます。
1.Unified Agentのインストール
解析対象をスキャンするために必要なエージェントである「Unified Agent」をインストールします。
前提条件
Unified AgentはJavaのアプリケーションです。動作のために以下のいずれかが必要になりますので、事前にインストールしてください。
- Java JDK 8
- Java JRE 8
- Java JDK 11
ダウンロード
Unified Agentの最新版をダウンロードします。GitHubまたはAmazon S3で配布されています。
- GitHub: https://github.com/whitesource/unified-agent-distribution/releases/latest/download/wss-unified-agent.jar
- Amazon S3: https://unified-agent.s3.amazonaws.com/wss-unified-agent.jar
本jarファイルを任意のディレクトリに保存します。
2.解析準備
解析に先立って、各種準備を行います。ブラウザーでMend社のソフトウェアコンポジション解析ツール(旧WhiteSource)にログインします。
解析にはAPI KeyとUser Keyが必要になります。
API Keyについては、メニュー「Integrate」を選択して表示される画面の「Organization」セクションから取得できます。※このページを表示するには管理者レベルのアクセス権が必要になります。
User Keyについては、まず画面上部のアカウントアイコンから「Profile」をクリックします。
表示された画面の「User Keys」セクションで、画面右側にある「Generate User Key」をクリックします。User Keyを生成することができますので、これを取得します。
3.解析対象のスキャン
コマンド実行
実行において、パラメーターの指定方法はいくつかパターンがありますが、以下ではサンプルとして一例を記載します。
Linux/macOS:
$ export WS_APIKEY=<取得したAPI Key>
$ export WS_USERKEY=<取得したUser Key>
$ export WS_PRODUCTNAME=TestProduct
$ export WS_PROJECTNAME=TestProject
$ export WS_WSS_URL=https://saas.whitesourcesoftware.com/agent
$ java -jar wss-unified-agent.jar -d /path/to/scan/directory
Windows:
> set WS_APIKEY=<取得したAPI Key>
> set WS_USERKEY=<取得したUser Key>
> set WS_PRODUCTNAME=TestProduct
> set WS_PROJECTNAME=TestProject
> set WS_WSS_URL=https://saas.whitesourcesoftware.com/agent
> java -jar wss-unified-agent.jar -d C:\path\to\scan\folder
コマンド実行の結果、「Process finished with exit code SUCCESS」が表示されたら、解析は成功です。
なお、パラメーターの WS_PRODUCTNAME および WS_PROJECTNAME には、Mend社のソフトウェアコンポジション解析ツールに作成するプロダクト名およびプロジェクト名を指定します。
Mend社のソフトウェアコンポジション解析ツールは解析結果を「プロダクト(Product)」および「プロジェクト(Project)」という概念で管理します。各環境には複数のプロダクトを作成でき、各プロダクトには複数のプロジェクトを作成することができます。
Organization ―┬― Product-A ―┬― Project-a
| └― Project-b
└― Product-B ―┬― Project-c
└― Project-d
参考:パラメーター指定方法
パラメーターの設定パターンは以下のとおりです。以下の優先順位で適用されます。
- コマンドライン・パラメーター
- 環境変数
- 設定ファイル
- デフォルト値
最低限必要なパラメーターは以下のとおりです。
パラメーター名 | 環境変数名 | 設定ファイル内のパラメーター名 | コマンドラインのパラメーター名 | 説明 |
---|---|---|---|---|
API Key | WS_APIKEY | apiKey | -apiKey | API Keyです。 |
Mend社のソフトウェアコンポジション解析ツール URL | WS_WSS_URL | wss.url | -wss.url | 「Mend社のソフトウェアコンポジション解析ツール」のURLに「/agent」を付加したURLです。 |
User Key | WS_USERKEY | userKey | -userKey | User Keyです。 |
Product Name | WS_PRODUCTNAME | productName | -product | 作成するプロダクトの名称です。 |
Project Name | WS_PROJECTNAME | projectName | -project | 作成するプロジェクトの名称です。 |
付録:その他の解析コマンド例
設定ファイルを指定する場合
パラメーターを設定ファイルにまとめておき、それを参照する形でコマンドを実行できます。
$ java -jar wss-unified-agent.jar -c /path/to/wss-unified-agent.config -d /path/to/scan/directory
設定ファイルは以下でテンプレートが配布されています。こちらを編集して設定ファイルを準備できます。
- https://github.com/whitesource/unified-agent-distribution/raw/master/standAlone/wss-unified-agent.config
- https://unified-agent.s3.amazonaws.com/wss-unified-agent.config
プロキシ環境下で解析する場合
$ export WS_APIKEY=<取得したAPI Key>
$ export WS_USERKEY=<取得したUser Key>
$ export WS_PRODUCTNAME=TestProduct
$ export WS_PROJECTNAME=TestProject
$ export WS_PROXY_HOST=proxy.host.co.jp
$ export WS_PROXY_PORT=8080
$ export WS_PROXY_USER=<ユーザー名>
$ export WS_PROXY_PASS=<パスワード>
$ java -jar wss-unified-agent.jar -d /path/to/scan/directory
4.結果の確認
解析が成功したら、WhiteSourceにログインして対象のプロジェクトを表示します。
画面上部のメニューから「Products」を選択すると、作成したものが「Last Used Products」に表示されていることが分かります。今回作成した「TestProduct」→「TestProject」を順に選択してみます。
解析結果のサマリが表示されます。
まとめ
最もシンプルな手順についてご紹介させていただきました。Mend社のソフトウェアコンポジション解析ツールにはさまざまな解析アプローチがありますので、プロジェクトごとに最適なやり方を模索していただければと思います。
解析に関して何かお悩みがあれば、日立ソリューションズまでお問い合わせください。