スキャン・モード
スキャン・モードでは、AppScan on Cloud が特定の言語のプロジェクト内のビルド出力 (.dll、.jar など) またはソース・コード・ファイルをスキャンするかどうかを指定します。
AppScan Go! で、またはコマンド行ユーティリティー (CLI) のソース・コードのみオプションを使用して、スキャン・モードを指定します。デフォルトでは、Static Analyzer はコンパイル済み言語 (Java、.NET、および C/C++) のソース・コードを分析しません。これらの言語の場合、ユーザーはスキャン・モードを指定できます。その他すべての言語では、スキャンはソース・コードのみになります。
プロジェクトの成功には、さまざまなスキャン方法を理解する必要があります。それぞれの用途、要件、結果は異なります。
ソース・コードのみスキャン
ソフトウェア開発ライフサイクルの早い段階で、コンパイルされていないコードのソース・コードのみスキャンは、プロジェクトがあまり進行していないうちに問題の解決とプログラムによるアプローチの確認を図る場合に役立つツールです。
ソース・コードのみスキャンは一般に開発者が実行し、ソース・ファイルへのアクセスを必要とするために高速ですが、コンパイル済みコードのスキャンほど正確であるとは限りません。ソース・コードのみスキャンの結果は、特定のコード行の脆弱性を正確に示しますが、トレース・データは示しません。
特定の言語に対してソース・コードのみスキャンを指定できます。
バイトコード/コンパイル済み (ビルド出力スキャン)
スキャンの速度より正確さを優先する場合、ビルド出力のスキャンは、アプリケーション内のどこに脆弱性が存在するのかだけでなく、その脆弱性の影響を把握するのに役立ちます。ビルド出力スキャンは、「データ・フロー」スキャンと呼ばれる場合があります。
ビルド出力スキャンでは、完全にビルドされたアプリケーションにアクセスする必要があります。スキャン結果には、アプリケーションに入ったポイントからデータが使用されるポイント (「シンク」と呼ばれる) まで、アプリケーション内の汚染されたデータの流れを示す「トレース」が表示されます。トレースは、トレースの各ポイントにあるコード行と汚染された変数を示します。その外観は例外スタック・トレースに似ています。
- 最も完全で正確な結果を得るには、アプリケーション依存関係を利用できる必要があります。
- Java. および NET の場合はバイトコードが必要なため、スキャンを実行する前にアプリケーションをビルドする必要があります。
- C/C++ の場合、Visual Studio ソリューションが必要です。