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