ソース・コードのスキャンまたはビルド出力スキャンの選択

新規プロジェクトを作成する場合、プロジェクトに応じて、ソース・コードのみスキャンまたはビルド出力 (バイトコード) スキャンを実行するかどうか選択できます。

プロジェクトの成功には、さまざまなスキャン方法を理解する必要があります。それぞれの用途、要件、結果は異なります。

ソース・コードのみスキャン

ソフトウェア開発ライフサイクルの早い段階で、コンパイルされていないコードのソース・コードのみスキャンは、プロジェクトがあまり進行していないうちに問題の解決とプログラムによるアプローチの確認を図る場合に役立つツールです。

ソース・コードのみスキャンは一般に開発者が実行し、ソース・ファイルへのアクセスを必要とするために高速ですが、コンパイル済みコードのスキャンほど正確であるとは限りません。ソース・コードのみスキャンの結果は、特定のコード行の脆弱性を正確に示しますが、トレース・データは示しません。

ビルド出力スキャン

スキャンの速度より正確さを優先する場合、ビルド出力スキャンは、アプリケーション内のどこに脆弱性が存在するのかだけでなく、その脆弱性の影響を把握するのに役立ちます。ビルド出力スキャンは、「データ・フロー」スキャンと呼ばれる場合があります。

ビルド出力スキャンでは、完全にビルドされたアプリケーションにアクセスする必要があります。スキャン結果には、アプリケーションに入ったポイントからデータが使用されるポイント (「シンク」と呼ばれる) まで、アプリケーション内の汚染されたデータの流れを示す「トレース」が表示されます。トレースは、トレースの各ポイントにあるコード行と汚染された変数を示します。その外観は例外スタック・トレースに似ています。

ビルド出力スキャンには、プロジェクト・タイプに応じて、追加の要件があります。
  • 最も完全で正確な結果を得るには、アプリケーション依存関係を利用できる必要があります。
  • Java. および NET の場合はバイトコードが必要なため、スキャンを実行する前にアプリケーションをビルドする必要があります。
  • C/C++ の場合、Visual Studio ソリューションが必要です。