Skip to main content

Contrast Scanローカルエンジン

Contrast Scanローカルエンジンを使用すると、Contrast CLIまたはContrast Webインターフェイスの代わりに、Java JARファイルを使用してアプリケーションをスキャンできます。スキャンが正常に完了すると、Contrast Scanローカルエンジンによって結果がContrastプラットフォームにアップロードされ、そこで結果を確認することができます。アップロードされるのは以下のファイルです。

  • 静的分析結果形式(SARIF)で記述されたスキャン結果のJSONファイル

  • スキャンの出力情報のLOGファイル

この方法は、スキャンするファイルをContrastプラットフォームにアップロードせずに、ローカルでスキャンしたい場合に便利です。

サポート対象プラットフォーム

  • Contrast Scanローカルエンジンは、Linuxシステムでサポートされています。

  • 多言語スキャンローカルエンジン:Oracle Java 17

  • バイナリJavaスキャンエンジン:Oracle Java 17

    Oracle Java 11を使用することは可能ですが、そのバージョンはサポート終了とされています。

ローカルスキャンでのプロキシサーバの設定

セキュリティ上の理由から、ローカルスキャンエンジンとContrastプラットフォーム間の通信にプロキシサーバを使用している場合があります。ローカルスキャンを実行する際にプロキシサーバを有効にするには、以下の環境変数を使用してください。

変数

説明

CONTRAST__API__PROXY__ENABLE

プロキシの設定を有効にします。

CONTRAST__API__PROXY__URL

必須

プロキシサーバのURL(例、http://host:port)

CONTRAST__API__PROXY__TYPE

必須

プロキシサーバの方式(例、BASIC)

CONTRAST__API__PROXY__USERNAME

任意

プロキシサーバのユーザ名

CONTRAST__API__PROXY__PASSWORD

任意

プロキシサーバのパスワード

ローカルスキャン用のパッケージの準備

ローカルスキャン実行の準備をする際には、以下のベストプラクティスを考慮してください。

  • JARファイルまたはWARファイル:スキャンするバイナリファイルを指定します。

  • ソースコードのスキャン:スキャンするソースコードは、ZIPファイルではなくフォルダに入れます。

    ローカルスキャン用のこのフォルダのサイズに制限はありません。ただし、一部の大きなソースコードリポジトリでは、より多くのメモリが必要になったり、実行に時間がかっかたりする場合があります。このような場合は、メモリとタイムアウトのオプションを使用して対処してください。

  • 複数のJARまたはWARのスキャン:複数のJARファイルまたはWARファイルを含むZIPファイルを指定します。含めるファイルは、ZIPファイルのルートにある必要があります。

    ZIPファイル内のファイルサイズに制限はありません。

一貫したファイル構成の使用

各スキャンで一貫したファイル構成を使用することは、脆弱性の検出結果の重複を防ぐために重要です。初回スキャン後に、スキャンするファイルのファイル構成を変更する必要がある場合は、既存のスキャンプロジェクトを使用するのではなく、それらのファイル用に新しいスキャンプロジェクトを作成してください。Contrast Scan AnalyzeのGitHubアクションを使用せずに複数のブランチをスキャンする予定がある場合は、個人用ブランチに対して別のスキャンプロジェクトを作成してください。

既存のスキャンプロジェクトを使用し、ファイル構成を変更してからスキャンを実行すると、元の脆弱性のステータスが修復済に設定され、新たに重複した脆弱性が報告されます。新しい検出結果は、同じファイルと行番号にリンクされますが、新しいパスが表示されます。

一貫したファイル構成は、ZIPファイル内のファイルとZIPファイルに含まれていないファイルに影響します。

例 1:ZIPファイル名を変更する

この例では、ZIPファイルの名前を変更していますが、ZIPファイルのファイル構成は維持します。この変更により、Contrastが重複した脆弱性を報告することはありません。

scan.zip
   |
   |-- source_files
  
changed to
  
contrastscan.zip
      |
      |-- source_files

この場合、ZIPファイル名はスキャンパスの一部ではないため、変更してもスキャン結果には影響しません。

例2:ZIPファイルのファイル構成を変更する

この例では、ZIPファイルの名前を変更し、新しいディレクトリを追加してファイル構成も変更しています。この変更により、Contrastは重複した脆弱性を報告することになります。

scan.zip
   |
   |-- source_files
  
changed to
  
contrastscan.zip
      |
      |-- contrastscan
              |
              |-- source files

この場合、ZIPファイル内のファイル構成を変更すると、検出結果が重複します。この問題を回避するには、新しいスキャンプロジェクトを作成し、それを以降のスキャンに使用してください。

例3:ディレクトリ内のファイル構成を変更する

この例では、新しいディレクトリを追加してファイル構成を変更しています。この変更により、Contrastは重複した脆弱性を報告することになります。

scan
   |
   |-- source_files
  
changed to
  
contrastscan
      |
      |-- contrastscan
              |
              |-- source files

この場合、ディレクトリ名やディレクトリ内のファイル構成を変更すると、検出結果が重複します。この問題を回避するには、新しいスキャンプロジェクトを作成し、それを以降のスキャンに使用してください。

スキャンの手順

Contrast Scanローカルエンジンを使用するには:

  1. Contrast Scanローカルエンジンアプリケーションをダウンロードするか、Contrastサポートに連絡して、最新のローカルエンジンアプリケーションを入手してください。

  2. 検査結果のアップロードにプロキシサーバを使用するかどうかを判断します。

  3. ローカルシステムでスキャンを実行します。

  4. Contrast Webインタフェースで結果を確認します。