Skip to main content

ルートカバレッジ

ルートカバレッジにより、Assessユーザは脆弱性と元のWebリクエストを関連付けることができます。

ルートカバレッジによって、どのルートが疎通されていて、どのルートが疎通されていないかなど、アプリケーションのコンポーネントに関する詳細な情報を確認できます。これは、どこにテストや修復を重点的に行うかを判断するのに役立ちます。

Webリクエストの例

Webリクエストは、Webアプリケーションの最も基本となるインターフェイスです。リクエストを処理する関数は、他のサービスやデータベース、ファイルなどと連携を行う後続の関数を呼び出す場合があります。

リクエストを処理するプロセスで、Contrastはアプリケーション全体のデータフローを監視し、脆弱性を特定します。1つのWebリクエストが、複数の種類の攻撃に対して脆弱な場合があります。Contrastでは、これらの脆弱性を元のリクエストに関連付けます。

以下は、Webリクエストの例です。

GET /users?active=true
Host: YourDomain.com
Accept: application/json

以下は、上記のWebリクエストがどのように関数で処理されるかの例です。

@Controller
public class UserController {
    @GetMapping("/users")
    public String users(@RequestParam(name="active", required=false, defaultValue=true) Bool active) {
        ...
    }
}

ルートカバレッジの仕組み

アプリケーションのルートは、次の3つの要素の組み合わせです。

  • HTTP動詞(例、GET)

  • リソースのパス(例、/users)

  • コントローラのメソッドシグネチャ(例、UserController.users(Bool active))

    対応するシグネチャが使用されていない場合には、route.jsp、 route.xhtml/route/id/{id}など、メソッドシグネチャの代わりにルートテンプレートが使用されます。

Contrastエージェントを起動すると、アプリケーション内の関数にエージェントが組み込まれ、アプリケーションを実行中にWebリクエストの脆弱性が評価されます。関数にWebリクエストを処理するためのフレームワークが実装されていれば、リクエストが処理される前にContrastでルートが識別されます。そのようなルートは、Contrastでは検出済というステータスになります。

アプリケーションがリクエストを処理すると、そのアクティビティはContrastによって観察されて、疎通済ルートとなります。

フレームワーク とテクノロジ

Contrastでは、以下のフレームワークのルート検出をサポートします。

お使いのフレームワークがサポートされていない場合は、サポートまでお問い合わせください。サポート対象外のフレームワークの場合、Contrastでは観測されたリクエストに基づいてルートを推測しようとうとしますが、ルートは検出されずContrastには表示されません。

対象外(内蔵されたルートやアプリケーション)

Contrastのルートカバレッジには、一部のWebフレームワークやアプリケーションに内蔵されたルートは含まれません。 例えば、以下のような場合です。

  • JavaアプリケーションのJerseyフレームワークには、WADLファイルを提供するため機能があり、そのルートが内蔵されています。このルートは、Contrastのルートカバレッジ には含まれません。他のWebフレームワークにも同様に、フレームワークに内蔵されているルートがあります。

  • Contrast Javaエージェントは、Tomcatの管理マネージャ(Tomcat Manager Application)などの備え付けのアプリケーションからのルートを報告しません。