相関 (ハイブリッド分析) の仕組み

単一の自動化分析技法で、考えられるすべての脆弱性を見つけることはできません。各技法には、独自の長所と短所があります。動的分析セキュリティー・テスト (DAST) は、ハッカーが使用することが想定されるような方法で厳密に調べることで、実行中の Web アプリケーションをテストします。静的分析セキュリティー・テスト (SAST) は、アプリケーションのソース・コードの潜在的な脆弱性を検査します。

このダイアグラムは、各技法で検出できる脆弱性のタイプ、および相関のためにそれらが重なり合う範囲を示しています。大きな緑色の円は、DAST、SAST、およびマニュアル・テストによって検出できる可能性がある潜在的なセキュリティー問題の合計を示します。

動的分析では、全体像を把握しやすく、脆弱性を潜在的な不正利用と簡単に結びつけることができます。DAST は、自分が送信するテストによって不正利用可能なアプリケーション内の場所を示します。自動的にアプリケーションをトラバースし、HTTP 改ざん (要求を送信し、ブラウザー内に返される応答を受信する) を使用して、想定される入力をテストします。ただし、動的分析では、セキュリティー分析者は常にテスト範囲が適切かどうかを自問自答します。DAST での課題は、コンテンツのすべてのページおよびパスを見つけ、すべての攻撃ベクトルを対象に含めることです。

静的分析では、ソース・コード全体のデータ・フローを検査します。これは、実行中の Web アプリケーションを必要としないため、開発サイクルの早期段階から使用できます。DAST が HTTP を経由するデータ・フローの検査のみに制限されるのに対し、SAST は、動的分析を受けないバックエンドでの複数のデータ・フロー (バックエンドでのネットワーク通信、ファイル・システム・アクセスなど) を検査できます。このため、SAST の方が DAST より多くの問題を検出しますが、それらすべてが組織にとって実際に優先順位が高いとは限りません。SAST による検出結果は、通常、セキュアなコーディングのベスト・プラクティスに対する違反と解釈され、必ずしも「不正利用の証明」とは解釈されないためです。フィルター処理により、組織のセキュリティー・ポリシーの下では重大性が低い問題は削除されます。SAST での課題は、問題の優先順位付けです。

DAST は、Web サーバーのレベルまでネットワーク・インフラストラクチャー全体を検査対象にします。SAST は、Web アプリケーションのみを直接的に検査対象にします。

ハイブリッド分析の課題

ハイブリッド分析 (相関 とも呼ばれます) は、DAST と SAST とを組み合わせて、結果の相関と検証を行います。動的分析を使用して特定された問題を追跡して、問題のコード行を突き止めることができます。DAST の情報を使用して、SAST で検出された問題に自動的に優先順位を付けることができます。

ハイブリッド分析での課題は、DAST はブラウザー内に反映されるデータに依存するため、SAST のデータ・フローが DAST の問題としてブラウザー内に反映されない場合、そのデータ・フローが AppScan® Enterprise の「相関性のあるセキュリティー問題」レポートに表示されないことです。

この課題を次のダイアグラムに示します。この DAST ダイアグラムは、SQL 注入をユーザー・パースペクティブからの 1 つのデータ・フローとして示しています。悪質なコードが Web ページのユーザー名とパスワードのフィールドに入力され、エラー・メッセージがブラウザーに表示されます。

この SAST ダイアグラムでは、同じ SQL 注入攻撃が、実際にはバックエンド・パースペクティブからの 3 つのデータ・フローになっています。