ルートカバレッジ
Assessユーザーの場合、ルートカバレッジは、脆弱性を発信元のWebリクエスト、非HTTPリクエスト、またはミドルウェア機能からのリクエストに関連付けます。
備考
HTTP以外のリクエストとミドルウェア機能のルートカバレッジ機能を有効にするには、 にお問い合わせください。 コントラストのサポート。
Javaの場合、この機能はJavaエージェント6.18.1以降に対応しています。
ルートカバレッジによって、どのルートが疎通されていて、どのルートが疎通されていないかなど、アプリケーションのコンポーネントに関する詳細な情報を確認できます。これは、どこにテストや修復を重点的に行うかを判断するのに役立ちます。
ルートカバレッジの仕組み
Contrastエージェントが起動すると、アプリケーションの実行中に、エージェントがWebリクエスト、非HTTPリクエスト、およびミドルウェア関数の脆弱性を評価できるように、アプリケーション内の関数を計測します。関数がリクエストを処理するためのフレームワークを実装している場合、Contrastはリクエストが処理される前にルートを特定できます。そのようなルートは、Contrastでは検出済というステータスになります。
アプリケーションがリクエストを処理すると、そのアクティビティはContrastによって観察されて、疎通済ルートとなります。
HTTPルートの例
HTTPルートは、以下の要素の組み合わせです。
HTTP動詞(例、
GET)リソースのパス(例、
/users)コントローラのメソッドシグネチャ(例、
UserController.users(Bool active))シグネチャが意味をなさない場合には、
route.jsp、route.xhtml、/route/id/{id)など、必要に応じてメソッドシグネチャの代わりにルートテンプレートが使用されます。
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) {
...
}
}フレームワークとテクノロジ
Contrastでは、以下のフレームワークのルート検出をサポートします。
Java:すべて 現在サポートされているテクノロジー
.NET Framework: 現在サポートされている全てのフレームワーク
.NET Core:現在サポートされている全てのフレームワーク
Node.js:現在サポートされている全てのフレームワーク
Python:現在サポートされている全てのフレームワーク
Ruby: 現在サポートされている全てのフレームワーク
Go:現在サポートされている全てのフレームワーク
お使いのフレームワークがサポートされていない場合は、サポートまでお問い合わせください。サポート対象外のフレームワークの場合、Contrastでは観測されたリクエストに基づいてルートを推測しようとうとしますが、ルートは検出されずContrastには表示されません。
対象外(内蔵されたルートやアプリケーション)
Contrastのルートカバレッジには、一部のWebフレームワークやアプリケーションに内蔵されたルートは含まれません。例:
JavaアプリケーションのJerseyフレームワークには、WADLファイルを提供するため機能があり、そのルートが内蔵されています。このルートは、Contrastのルートカバレッジ には含まれません。他のWebフレームワークにも同様に、フレームワークに内蔵されているルートがあります。
Contrast Javaエージェントは、Tomcatの管理マネージャ(Tomcat Manager Application)などの備え付けのアプリケーションからのルートを報告しません。