Gradle プロジェクト用の静的分析の実行
ファイルの分析を開始するには、クラウドに送信する IRX ファイルを生成する必要があります。HCL AppScan on Cloud Gradle プラグインは、Gradle で Java と Java Web プロジェクトのスキャンを自動化するために使用されます。このプラグインは、「java」プラグインまたは「war」プラグインが適用されている Gradle プロジェクト用の IRX ファイルを生成します。また、生成された IRX ファイルを分析のために ASoC サービスに自動的に送信することもできます。プラグインの適用と最新のプラグイン・バージョンの確認についての詳細は、Gradle プラグインを参照してください。
手順
Gradle プロジェクト用の IRX ファイルを生成するには、次の手順を実行します。
- コマンド・プロンプトで、コマンドを実行して、Gradle プロジェクトが含まれる位置にディレクトリーを変更します。
-
スキャンを実行する前に、環境変数
APPSCAN_OPTS
を設定して、グローバル・オプションを指定します。APPSCAN_OPTS
を使用して、スキャン速度の設定、シークレット・スキャンの有効化、デバッグ・ログの有効化などを行います。 -
以下のいずれかのコマンドを実行します。
- IRX ファイルのみを生成するには、
appscan-prepare
を発行します。このコマンドは、ビルド内のすべての Java および War プロジェクト用として IRX ファイルを 1 つ生成します。この IRX ファイルは、デフォルトではルート・プロジェクトのビルド・ディレクトリーに生成されます。この IRX ファイルは、後で ASoC に送信できます。
- IRX ファイルを生成し、分析のために ASoC サービスに送信するには、
appscan-analyze
を発行します。このコマンドは、IRX ファイルを生成し、分析のために ASoC サービスに送信します。このタスクは、API 鍵、秘密、およびアプリケーション ID が必要です。
構成可能なオプション
コマンド行で構文
-Doption=value
を使用して JVM パラメーターを指定するか、またはビルド・スクリプトのappscanSettings
ブロックを使用すると、以下のオプションを設定できます。表 1. 構成可能な Gradle プラグイン・オプション オプション デフォルト値 説明 irxName
ルート・プロジェクトの名前。 生成する .irx ファイルの名前。 irxDir
ルート・プロジェクトのビルド・ディレクトリー。 生成する .irx ファイルの位置。 appId
ヌル。 appscan-analyze
に必須ASoC サービスにおけるアプリケーションの ID。 appscanKey
ヌル。 appscan-analyze
に必須ユーザーの認証用の API 鍵。 appscanSecret
ヌル。 appscan-analyze
に必須ユーザーの認証用の API 鍵の秘密。 namespaces
ヌル。 自動名前空間検出をオーバーライドします。名前空間検出を無効にするには、 ""
に設定します。例 1: コマンド行でのオプションの指定:gradle appscan-prepare -DirxName=MyApp
Example 2: ビルド・スクリプトでのオプションの指定:appscanSettings { irxName="MyApp" irxDir="/myApplication/sample" }
注: appscanKey オプションと appscanSecret オプションは、ユーザーの gradle.properties ファイルで指定できます。このファイルで指定する場合、ビルド・スクリプトまたはコマンド行で認証情報を指定する必要はありません。例えば、次の行を ~/.gradle/gradle.properties に追加します (このファイルが存在しない場合は作成します)。appscanKey="2358cd02-3fs3-322c-62c9-b5cc63c61f2a"
API 鍵とキーの秘密はこちらで生成できます。詳しくは、API 鍵の生成を参照してください。appscanSecret="qU939siTXgF7csk3jSig+Vza7ilWLu/Uy/ReWye5E/c="
注: デフォルトの名前空間動作をオーバーライドするには、-Dnamespaces="<semi-colon delimited list of namespaces to scan>"
コマンド行オプションを使用します。デフォルトでは、ASoC は指定されたプロジェクトのソース・ファイルの名前空間を検出し、同じ名前空間に存在するスキャン済みクラスのみを許可リストに追加します。このプロパティーを空ストリング (""
) に設定すると、ホワイトリストが完全に無効になります。注: このプラグインに独自の変更を加えたい場合は、ソースをこちらで見つけることができます。 - IRX ファイルのみを生成するには、
Gradle プラグインを使用した appscanSecret
の暗号化
このタスクについて
appscan-gradle-plugin
とともに Gradle 資格情報プラグインを使用します。注: 最新バージョンの資格情報プラグインには Gradle 5.0 以降が必要です。プラグインの詳細については、
gradle-credentials-plugin
を参照してください。手順
-
appscan-gradle-plugin
とともに、プロジェクトに資格情報プラグインを適用します。plugins { id 'nu.studer.credentials' version '2.1' id ' com.hcl.security.appscan' version '1.0.2' }
-
次のコマンドを実行して API 秘密鍵を暗号化します。
デフォルトでは、暗号化された値はgradle addCredentials --key appscanSecret --value Yq9M+iFHyhRU2eEx+XobXwhX9xoW4hEXWz2fJDI8I=1
~/.gradle/ gradle.encrypted.properites
に保存され、そこから取得されます。credentialsLocation
プロパティーを使用して別の場所を指定します。gradle addCredentials --key appscanSecret --value Yq9M+iFHyhRU2eEx+XobXwhX9xoW4hEXWz2fJDI8I=1 -PcredentialsLocation=/some/directory
-
ビルド・スクリプトで
appscanSettings
ブロックを使用して、appscanKey
値と暗号化されたappscanSecret
値を設定します。
ここで ASoCappscanSettings { appscanKey=22iFHyhRU2eEx+XobXwhX9xoW4hEXWz2fJDI8I=1 appscanSecret=credentials.appscanSecret appId=95e69f47-9547-4378-ab93-f5d48ada52cc1 }
appId
も設定できます。 -
appscan-analyze
を実行します。gradle appscan-analyze
ビルド・スクリプトでappId
を指定しなかった場合は、この Id を実行時にコマンド行で設定します。gradle appscan-analyze -DappId=95e69f47-9547-4378-ab93-f5d48ada52cc1
appscanSecret
値の暗号化時にcredentialsLocation
プロパティーを使用した場合は、実行時にもこのプロパティーを指定します。gradle appscan-analyze -PcredentialsLocation=/some/directory