Maven プロジェクト用の静的分析の実行
ファイルの分析を開始するには、クラウドに送信する IRX ファイルを生成する必要があります。HCL AppScan on Cloud Maven プラグインは、Maven の jar、war、ear の各プロジェクトのスキャンを自動で実行する場合に使用します。このプラグインで、「jar」、「war」、および「ear」の各パッケージ・タイプを使用する Maven プロジェクトの IRX ファイルが生成されます。また、生成された IRX ファイルを分析のために ASoC サービスに自動的に送信することもできます。Maven プロジェクトをスキャンする場合、以下の手順に従ってそのファイルを作成してください。
このタスクについて
手順
- コマンド・プロンプトで、コマンドを発行して、Maven プロジェクトが含まれる場所 (pom.xml ファイルが含まれているフォルダー) にディレクトリーを変更します。
-
スキャンを実行する前に、環境変数
APPSCAN_OPTSを設定して、グローバル・オプションを指定します。APPSCAN_OPTSを使用して、スキャン速度の設定、シークレット・スキャンの有効化、デバッグ・ログの有効化などを行います。 -
以下のいずれかのコマンドを実行します。
- IRX ファイルのみを生成するには、次のコマンドを発行します。
このコマンドは、ビルド内のすべてのmvn com.hcl.security:appscan-maven-plugin:preparejar、war、およびearのプロジェクト用に IRX ファイルを 1 つ生成します。IRX ファイルは、デフォルトではルート・プロジェクトのターゲット・ディレクトリーに生成されます。この IRX ファイルは、後で ASoC に送信できます。 - IRX ファイルを生成し、分析のために ASoC サービスに送信するには、次のコマンドを発行します。
このコマンドは、IRX ファイルを生成し、分析のために ASoC サービスに送信します。このタスクでは、アプリケーション ID (mvn package com.hcl.security:appscan-maven-plugin:analyzeappId)、API 鍵 (appscanKey)、および API 秘密 (appscanSecret) が必要です。注: Maven プロジェクトが、同じリアクター・ビルド内の別のプロジェクトに対してコンパイル時間の依存関係を持つ場合、既存の Maven バグによりコマンドが失敗します。この問題を回避するには、packageゴールをprepareまたはanalyzeゴールとともに実行します。例:
またはmvn package com.hcl.security:appscan-maven-plugin:preparemvn package com.hcl.security:appscan-maven-plugin:analyze
表 1. 構成可能な Maven プラグイン・オプション オプション デフォルト値 説明 output<root project>/target/<root project name>.irx生成される IRX ファイルの名前または場所 (あるいはその両方)。選択したパスが存在しない場合は、デフォルトのパスが適用されます (<root project>/target/<root project name>.irx) appIdNULL。
analyzeの場合は必須。クラウド・サービスにおけるアプリケーションの ID。 appscanKeyNULL。
analyzeの場合は必須。ユーザーを識別するための API キー ID。 appscanSecretNULL。
analyzeの場合は必須。ユーザーの認証用の API キーの秘密。 namespacesNULL。 自動名前空間検出をオーバーライドします。名前空間検出を無効にするには、 ""に設定します。ヒント: コマンド行ユーティリティーには Tomcat JSP コンパイラーが含まれています。この JSP コンパイラーは、IRX ファイルの生成時にデフォルトで使用されます。warまたはearファイル用に IRX ファイルを生成する場合、別の JSP コンパイラーを使用するには、-DjspCompilerオプションを指定してコマンドを発行します。例:mvn com.hcl.security:appscan-maven-plugin:prepare -DjspCompiler=<jsp_compiler>ここで、
<jsp_compiler>は使用する JSP コンパイラーへのパスです (サーバーのルート・ディレクトリーを指定します)。ヒント: デフォルトでは、サード・パーティーのコードは IRX ファイルの生成中にスキャンされません。サード・パーティーの Java と .NET の除外管理 の手順に従って、サード・パーティーのコードの除外設定を変更できます。サード・パーティーのコードを組み込むには、-DthirdPartyオプションを指定してコマンドを発行します。サード・パーティー・コードがスキャンで標準的に除外されるようにする開発者の場合、この設定を使用してサード・パーティー・コードをスキャンに含める必要があります。
ヒント: 上記のコマンドは、次の 2 つの方法のいずれかで短縮できます。- pom.xml ファイルの
<plugins>セクションに以下を追加します。
この方法で pom.xml ファイルを編集すると、他のすべてのユーザーが自動的に変更されます。ただし、バージョン番号を指定する必要があるため、pom.xml ファイルは、新しいバージョンが使用可能になったときに手動で編集して更新する必要があります。<plugin> <groupId>com.hcl.security</groupId> <artifactId>appscan-maven-plugin</artifactId> <version>1.0.10</version> </plugin> groupId(com.hcl.security) を Maven settings.xml 内のプラグイン・グループのリストに追加します。例えば ~/.m2/settings.xml、または ${maven.home}/conf/settings.xml に以下を追加します。
編集後は、<pluginGroups> <pluginGroup>com.hcl.security</pluginGroup> </pluginGroups>appscanプレフィックスを使用してprepareゴールを実行できます。例:mvn appscan:prepare
詳しくは、「Configuring Maven To Search For Plugins」を参照してください。
注: デフォルトの名前空間動作をオーバーライドするには、-Dnamespaces="<semi-colon delimited list of namespaces to scan>"コマンド行オプションを使用します。デフォルトでは、ASoC は指定されたプロジェクトのソース・ファイルの名前空間を検出し、同じ名前空間に存在するスキャン済みクラスのみを許可リストに追加します。このプロパティーを空ストリング ("") に設定すると、ホワイトリストが完全に無効になります。注: このプラグインに独自の変更を加えたい場合は、ソースをこちらで見つけることができます。 - IRX ファイルのみを生成するには、次のコマンドを発行します。
Maven プラグインを使用した appscanSecret の暗号化
このタスクについて
appscan-maven-plugin を使用して API 秘密を暗号化します。Maven を使用したパスワードの暗号化に関するヒントとアドバイスについては、こちらを参照してください。手順
-
以下のコマンドを実行して、暗号化されたマスター・パスワードを生成します。
mvn -emp myMasterPassword -
出力を
~/.m2/settings-security.xmlにコピーし、それを<master>タグの値に挿入します。<settingsSecurity> <master>{rsB56BJcqoEHZqEZ0R1VR4TIspmODx1Ln8/PVvsgaGw=}</master> </settingsSecurity>注:settings-security.xmlファイルは別の場所に保存できます。その場合は、オプション-Dsettings.security=path/to/security-settings.xmlを使用して実行時に場所を指定する必要があります。 -
以下のコマンドを実行して、暗号化された API 秘密鍵を生成します。
mvn -ep apiSecret -
コマンドの出力を
~/.m2/settings.xmlにコピーし、<password>タグの値に挿入します。<username>タグには、ユーザーの API 鍵の値を含める必要があります。<settings> <servers> <server> <id>appscan</id> <username>MyapiKey</username> <password>{uMrbEOEf/VQHnc0W2X49Qab75j9LSTwiM3mg2LCrOzI=}</password> </server> </servers> ... </settings> -
Maven プラグインを使用して、
analyzeゴールを実行します。mvn com.hcl.security:appscan-maven-plugin:analyze -DappId=X49Qab75j9LSTwiM3mg2LCrOsettings-security.xmlファイルをデフォルト以外の場所に格納した場合は、実行時にその場所を指定する必要があります。mvn com.hcl.security:appscan-maven-plugin:analyze -DappId=X49Qab75j9LSTwiM3mg2LCrO -Dsettings.security=path/to/security-settings.xml