リックソフトブログ

2022年10月21日

「Mend SCA」でオープンソースのセキュリティ&コンプライアンス管理

Author

古守 komori

古守</mt:Var>

  

一般に業務用ソフトウェアでは、ソースコードの約80%をオープンソースソフトウェア(OSS)が担っているとも言われています。

OSSを利用することにより、開発の効率化やコスト削減など様々な恩恵を受けることができますが、一方で、ライセンスの遵守や脆弱性への対応など、利用上の課題も多数あります。脆弱性情報は日々変わるものなので、すべてを把握するのは困難です。

リックソフトは、このような課題を解決するツールとして、オープンソース・セキュリティ&コンプライアンス管理ソリューション『Mend SCA(旧:WhiteSource *1)』を提供しています。Mend SCAは、開発プロジェクトをスキャンし、利用されているOSSのライセンス、脆弱性、品質(バグ)を解析して可視化します。

今回は、Mend SCAが提供する解析ツールの基本的な実行方法の説明を通して、Mend SCAの便利さと手軽さをお伝えしたいと思います。

*1 WhiteSourceの名称が「Mend SCA」になりました

Mend SCAはSaaSとOn-premisesの環境を提供

Mend SCAはSaaS、またはon-premises(オンプレミス)で利用できます。

サーバで機密性が高い情報を取り扱う場合、on-premisesを採用するケースが多くなりますが、その場合、サーバマシンの調達、構築に関して様々な手続きが必要となり、運用コストも嵩みがちです。

Mend SCAでは、解析時に機密性の高いデータを取り扱わないため、手軽に利用を開始できるSaaSを採用するケースが多いです。
では、どのようにして機密性の高い情報を扱わずに解析を実行するのか?
これについては次項で具体的な解析手順を通して説明します。

Unified Agentを使って解析する方法

Mend SCAは様々な開発ツールと統合して解析を実行することができますが、ここでは、Unified Agentという汎用的なツールを使って、開発プロジェクト内のリソースをスキャンする手順を紹介します。

参考:MEND:Scanning with the Unified Agent

以下、Step1〜4までの手順は30分程度で実行できます。

前提

ツールの実行環境には、以下のいずれかのバージョンのJavaがインストールされている必要があります。

  • Java JDK 8
  • Java JRE 8
  • Java JDK 11
  • Java JDK 17

Terminalやコマンドプロンプトから以下のコマンドを実行することで、インストールされているJavaのバージョンを確認できます。

$ java -version

Javaがインストールされていない場合、下記のサイトからインストーラ(またはアーカイブ)を取得してインストールしてください。

Step 1 : プロジェクト作成

以下の手順でMend SCAサーバにプロジェクトを作成します。

  1. Mend SCAにadmin権限が付与されたユーザでログイン
  2. メニューバーのProductsから、New Productを選択
  3. Create New Product 画面にて、任意のProduct Nameを入力して「Create」をクリック
  4. Product画面にて、「Add Project」をクリック
  5. Create New Project画面にて、任意のProject NameとDescriptionを入力して「Create」をクリック

Step 2:Unified Agentダウンロード

以下のURLからUnified Agentを取得し、任意のディレクトリに配置します。

Step 3:設定ファイルのダウンロードと編集

以下のURLから設定ファイルを取得し、任意のディレクトリに配置します。

エディタでwss-unified-agent.configを開き、以下のパラメータを編集します。

パラメータ

設定値(例)

補足

apiKey

※Mend SCAサーバにて確認

API Key、Mend SCA Server URLはMend SCAサーバのIntegrateメニューから確認できます。
20221018_01.png

wss.url

https:// {Mend SCA Server URL} /agent

projectToken

※Mend SCAサーバにて確認

projectTokenはMend SCAサーバのproject>設定メニュー(歯車アイコン)から確認できます。

20221018_02.png

20221018_03.png

includes

**/*.jar **/*.java

GLOBパターンを使用してスキャン対象とするファイルの拡張子を指定します。

Configファイルにて、includesが#でコメントアウトされている場合は、#を消してコメントを解除してください。

Step 4:Unified Agent実行

Unifide AgentはTerminalやコマンドプロンプトなどからコマンドラインで実行できます。

オプション

設定値

-jar

unified agentを配置したパスを含めて指定します。 

-c

設定ファイルを配置したパスを含めて指定します。

−d

スキャン対象のソースコードのディレクトリパスを指定します。

java -jar wss-unified-agent.jar -c wss-unified-agent.config -d source/sample-software

処理が正常終了すると「Process finished with exit code SUCCESS (0)」と表示され、Mend SCAサーバのProject画面に解析結果が反映されます。

20221018_04.png

Mend SCAの解析の仕組み

Unified Agentでは、指定されたディレクトリを再帰的に読み込んで、検出されたOSSのハッシュ値(所定のアルゴリズムで算出した規則性の無い文字列)を取得してサーバに送信します。Mend SCAのサーバは独自データベースでOSSのライセンス、脆弱性に関する情報を管理しており、このデータベースと受信したハッシュ値をマッチングし解析結果を表示します。このように、Mend SCAではソースコードなどの機密性が高い情報をサーバに送信すること無く解析ができるようになっています。

解析が完了すると、Mend SCAサーバのプロジェクトに解析結果が表示されます。
検出された脆弱性(High Medium Low)や利用されているライセンスの割合を円グラフやリストで表示します。

また、個々のOSSの詳細情報として、開発元のHP、ライセンス、CVE番号(脆弱性識別子)、影響バージョン、修正バージョンなどが確認できるようになっているので、脆弱性を持つOSSが検出された場合、どのように対処するか検討する際の助けになります。

20221018_05.png

ポリシー設定の利用

会社で許可されていないOSSライセンスの利用や深刻な脆弱性が検出された場合、ポリシー違反としてアラートをあげたり、Jiraに課題を起票したりできます。
ポリシー定義は、ライセンスの種類やOSSライブラリの名称(正規表現で指定)、脆弱性やバグの高低(High ・Medium・Low)で指定することができます。

CIツールとの統合

リリース直前になって、ライセンスやセキュリティ上の問題が発覚して大慌て...なんて経験はありませんか?
Mend SCAは様々な開発ツールと統合できますが、その中でも特に効果的なのはBamboo、Jenkins、CircleCIなどのCIツール(継続的インテグレーションツール)との統合だと思います。
CIツールのジョブと併せてOSSの解析を実行するようにしておけば、開発サイクルの中でいち早く問題を検知し、対策を講じることができます。

CIツールを使った解析の実行方法

Bamboo、CircleCIはジョブ実行時にUnified Agentを呼び出して解析を実行します。
JenkinsはMend SCAから専用のプラグインが提供されています。
いずれの場合も基本的な解析のロジックは同じです。


OSSのコンプライアンス管理、セキュリティ脆弱性対策に課題をお持ちの方は是非お試しください。


本ブログは2019年07月29日年に執筆したものを、2022年10月19日に再編集したものです

              
                                                       

本情報はブログを公開した時点の情報となります。
ご不明な点はお問い合わせください。

        

お問い合わせ         

  
本ブログのカテゴリ: Mend SCA(旧WhiteSource)
  

アトラシアン製品の導入と活用を
成功させたいなら
リックソフトのサポートが
必要です。

サードパーティ製のアドオンもサポート

サードパーティ製のアドオンもサポート

サポート

アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのサポートではサポートします。

  • アトラシアン製品とサードパーティ製のアドオンとの事象の切り分け
  • 海外のアドオンベンダーとのやり取りを代行(日→英/英→日)

リックソフトのサポートは開発元が提供するサポート以上の価値があります。

サポートについて

ツールの活用を促進するアイテム

ツールの活用を促進するアイテム

各種ガイドブック

ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。

リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。

ガイドブックについて

価値あるツールの使い方

価値あるツールの使い方

研修・トレーニング

ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。

日本随一の生産性向上にも効果のある研修サービスです。

リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。

研修について

PAGE TOP