Skip to main content

スキャンパッケージの準備

スキャンで最良の結果を得るには、スキャンするパッケージをアップロードする前に、以下のベストプラクティスを参考に準備してください。

注記

本項は、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ファイルをアップロードした場合、アプリケーションコードのスキャンは実行されません。正確なスキャンのためのアプリケーションの依存関係へのアクセスができません。