スキャンパッケージの準備
スキャンで最良の結果を得るには、スキャンするパッケージをアップロードする前に、以下のベストプラクティスを参考に準備してください。
注記
本項は、ContrastにファイルをアップロードするSaaS版のContrast Scanをご利用のお客様に適用されます。ローカルスキャンのベストプラクティスについては、ローカルスキャンのパッケージの準備をご覧ください。
アーティファクトの種類
Javaバイナリスキャンの場合は、WARまたはJARパッケージのいずれかをアップロードします。
多言語ソースコードスキャンの場合は、スキャンするリポジトリを含むZIP パッケージをアップロードします。
1つのZIPパッケージに、複数のJARファイルやWARファイルを含めることができます。これらのファイルは、サブディレクトリではなく、ZIPパッケージのルートディレクトリに置いてください。
アップロードできるZIPファイルのサイズの上限は、1GBです。
クラスファイルと依存関係へのアクセス
パッケージ化されたファイルが、ここで説明しているものと異なる場合には、Contrast Scanはコードについて仮定を立てます。そのため、得られる結果が正確では無くなる可能性があります。検知漏れや誤検知になる可能性があります。
Contrast Scanがすべての必要なクラスファイルと依存関係にアクセスできれば、結果に擬似クラスは含まれることはありません。擬似クラスとは参照されるクラスですが、スキャンでそのバイトコードを検出できないか、もしくはスキャンで中間表現(IR)に逆コンパイルできないものを指します。
Contrast Scanは、以下のファイルへのアクセスが必要です。
アプリケーションのクラスファイル
アプリケーションの依存関係にあるJARファイルやクラスファイル
Oracle Java™ の仕様に従って、アプリケーションおよび依存関係をWARファイルで構成してください。
Spring BootのJARファイルと同様に、アプリケーションおよび依存関係をJARファイルで構成してください。
Spring Boot JARファイルは、アプリケーションと依存関係を既知の場所に配置します。
標準のJDKファイルや一般的なサーブレットコンテナが提供する依存関係は含める必要はありません。Contrast Scan側で、これらの依存関係を提供します。
フレームワーク
正確な結果を得るために、Webアプリケーションで使用されているフレームワークがContrast Scanのサポート対象である必要があります。
多言語ソースコードスキャン: このスキャンタイプは、サポート対象言語の全てのフレームワークに対応しています。
Javaバイナリスキャン: このスキャンタイプは、以下のフレームワークをサポートしています。
Angular 8以降
J2EE
Jakarta EE 2.0-3.0
jQuery
React 16 以降
SpringBoot
Spring MVC
Vue.JS 2以降
シンJARファイルの使用回避
シンJAR(thin JAR)ファイルは、アプリケーションのバイトコードのみを含むファイルです。これらのファイルには、依存関係に動的にアクセスするための特別な実行ローダーが必要です。シンJARファイルをアップロードした場合、アプリケーションコードのスキャンは実行されません。正確なスキャンのためのアプリケーションの依存関係へのアクセスができません。