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(例、 |
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ローカルエンジンを使用するには:
Contrast Scanローカルエンジンアプリケーションをダウンロードするか、Contrastサポートに連絡して、最新のローカルエンジンアプリケーションを入手してください。
検査結果のアップロードにプロキシサーバを使用するかどうかを判断します。
ローカルシステムでスキャンを実行します。
Contrast Webインタフェースで結果を確認します。