脆弱性イベントの解析
Contrastでは、脆弱性イベントというものを使用して、アプリケーションの操作中に観察された内容を情報として提供します。これらのイベントには、脆弱性がコード内のどこで検出されたかや、コードがどのように使用されたかの情報があります。脆弱性イベントには、いくつかの種類があります。
ソースイベント:ソースイベントは、脆弱性の開始点で発生します。ソースイベントのファイルと行番号を使用して、呼出しが行われた箇所を確認できます。そして、ソースのスタックトレースを使用して、注目すべきメソッドがプログラムでどのように呼び出されているかを理解できます。また、以下のようなメソッドに関する全てのデータも参照できます。
オブジェクト: このコールを呼び出しているオブジェクトのインスタンス(静的な呼出しでない場合)。
リターン: このコールから返される値(voidの場合はnull)。
パラメータ: このコールに渡されている値。
伝播イベント:各脆弱性には、1つまたは複数の伝播イベントが含まれる場合があります。伝播イベントには、ソースイベントと同じ情報が含まれていますが、データが伝播された方法を示すタイプも含まれます。例えば、P2Rの伝播イベントでは、1つ以上のパラメータからデータを受け取り("P2R"の"P")、そのデータをメソッドの戻り値に送ります("P2R"の"R")。
タグイベント: validatedやhtml-encodedなどのタグを脆弱性に追加するイベントです。これらのタグは、誤検知を排除し、安全で信頼できる結果を得るのに役立ちます。また、他の種類のイベントと同じコンテキスト情報もあります。タグイベントは脆弱性内で発生する場合がありますが、検出された脆弱性とは無関係です。
トリガーイベント:トリガーは、脆弱性の最後のイベントです。トリガーとなった呼び出しによって、ContrastのJVMプラグインのルールエンジンの解析が実行されて脆弱性が認識され、トレースが生成されます。
重要
Contrastでは、アプリケーションの実際の動作のみを検出します。脆弱性の問題が正当ではないと思われる場合、管理者は適切なポリシーを設定して、この問題が再び発生しないようにする必要があります。最もよく報告される誤検知は、アプリケーションにContrastで認識されていないカスタム制御がある場合です。
オンプレミス版(EOP)をご利用のお客様は、Contrastのポリシーで、適切なタグリストにカスタムメソッドの呼出しを登録できます。例えば、HTMLエンコードを行うカスタムメソッドで、文字列を受け取りHTMLエンコードされた文字列を返す場合、データにhtml-encodedのタグを追加します。
誤検知に対処するために、セキュリティ制御やアプリケーションの例外を使用することができます。