Skip to main content

Contrast Gradleプラグイン

Contrast SecurityのGradleプラグインは、次のことを可能にします。

  • Contrast Javaエージェントのインストール

  • Contrastへの接続

  • アプリケーションの新たな脆弱性の検証

開始する前に

  • Gradle 8.3以降があることを確認

タスク

このプラグインには、公開されているタスクが 2 つあります。

  • resolveAgent:ContrastSDKで提供されるエージェントをダウンロードします。エージェントが jarPath設定フィールドで指定されている場合、プラグインはそのファイルが存在するかを確認します。

  • contrastCheck:エージェントをインストールした状態で、設定されている全てTestタスクを実行します。その後、Contrast上でアプリケーションに脆弱性が1つでも検出された場合にはビルドを失敗させます。

設定

Gradleプラグインポータルからプラグインをインポートします。

plugins{
    id 'com.contrastsecurity.contrastplugin' version '3.0.0'
}

このプラグインは、プロジェクトのgradle.buildスクリプトのcontrastConfigurationブロックで設定します。usernameapiKeyserviceKeyorgUuidは通常使用する認証情報と同じです。これらの情報は、Contrast Webインターフェイスよりユーザプロファイル > ユーザの設定およびユーザプロファイル > 組織の設定で確認できます。

contrastConfiguration{
  username = '<username>'
  apiKey = '<apiKey>'
  serviceKey = '<serviceKey>'
  apiUrl = '<apiUrl>'
  orgUuid = '<orgUuid>'
  appName = '<appName>'
  serverName = '<serverName>'
  appVersion = '<appVersion>'
  jarPath = "<path.to.local.agent.jar>"
}

設定プロパティ

設定値

説明

必須

username

apiKey

serviceKey

Contrast Webインターフェイスのユーザの設定にあります。

はい

orgUuid

Contrast Webインターフェイスの組織の設定にあります。

はい

apiUrl

使用するContrastの組織のURLで、末尾がContrast/apiになります。ContrastSDKは、このURLを使用してagentJar取得し、脆弱性データを取得します。例:https://contrast-staging.contsec.com/Contrast/api

はい

appName

appNameが設定されていない場合、名前がgradleプロジェクト名になります。

いいえ

serverName

appVersion

Contrast上のデータを関連付けるために使用されます。既存のアプリケーションとサーバを指定できますが、それぞれに新しい値を指定することもできます。

はい

jarPath

Contrast Javaエージェントへのパスです。指定されていない場合、プラグインはSDKからパスをダウンロードします。

いいえ

minSeverity

プラグインによってビルドを失敗させるために必要な、脆弱性の深刻度の最小値を設定します。設定可能な値は、深刻度が低いものから順に以下の通りです:

  • 注意

  • 重大

デフォルトはです。

いいえ

使用方法

プラグインをプロジェクトに追加して設定したら、以下を実行します。

./gradlew contrastCheck 

これにより、Contrast Javaエージェントが関連付けられているプロジェクト内のTestタイプの全てのタスクが実行されます。最小の深刻度を超える脆弱性が検出された場合、ビルドは失敗し、その脆弱性は<buildFolder>/contrast/traceResults_<testTaskName>.txtに記録されます。