Skip to main content

Generic Webhook

Contrastでは汎用のWebhookによるインテグレーションをサポートしており、POSTメッセージを受信するあらゆるURLで通知を受信することができます。Contrastのイベントでトリガーされる、$ApplicationName$ServerIdなどのカスタム変数をペイロードに追加できます。

Generic Webhookは、受信側が2xx HTTPレスポンスコードを返す限り、接続されたままになります。Generic Webhookが2xx以外のレスポンスコードを過度に受信した場合、接続は切断されます。

接続

Generic Webhookに接続するために、以下を行います。

  1. Contrastからの通知を受信するURLを取得します。

  2. ユーザメニューで組織の設定 > インテグレーションを選択します。

  3. Generic Webhookの行で、接続を選択します。

  4. Webhookに名前を付け、URLを指定のフィールドに貼り付けます。

  5. インテグレーションするアプリケーションを選択します(複数選択可)。

  6. ペイロードフィールドに 変数 を入力します。例:

    {
       "title": "$Title",
       "message": "$Message"
    }
  7. 追加を選択します。

Webhookをテストするには:

  1. 組織の設定 > 通知を選択します。

  2. インテグレーションのドロップダウンで、webhookのインテグレーション名を選択します。

  3. 通知を受けたいイベントタイプ(通知の登録)ごとに、インテグレーション列のトグルボタンをクリックします。

  4. イベントを発生させて、指定したURLで通知を受信していることを確認してください。

注記

このWebhookは、5回試行しても応答しない場合、切断されます。設定を復元するには、接続を再テストし、再保存する必要があります。

ContrastでGeneric Webhookが切断された時に、すべての管理者にContrast内とEメールで通知するよう、インテグレーションを設定できます。

この設定を行うには、組織の設定 > インテグレーション > Generic Webhook > 設定を表示にアクセスします。 設定を行う接続名を選択します。そして、接続失敗時に通知のチェックボックスを選択し、保存をクリックします。

Notify on disconnect. If this webhook fails to return a successful response after 5 attempts, it will be disconnected. All organization administrators will be notified in Contrast and by email.

Generic Webhookの変数

NEW_VULNERABILITYSERVER_OFFLINEなどのContrastイベントからのデータを使用して、Generic Webhookのレスポンスをカスタマイズできます。各イベントには、ペイロードのリクエストで呼び出すことができる変数があります。変数には、一般的な共通情報として利用するもの、もしくは、アプリケーション用、サーバ用、脆弱性用があります。

変数

説明

共通変数

$EventType

Webhookのトリガーとなるイベントタイプ

例:SERVER_OFFLINE

$Message

Webhookのトリガーとなったイベントの概要を表すメッセージ

$OrganizationId

Contrastで組織の作成時に、組織に割り当てられた一意のID

$OrganizationName

組織の名前

$Title

常に“Contrast Security”を返す

アプリケーション変数

$ApplicationChild

アプリケーションが子アプリケーションの場合は真(true)を返し、そうでない場合は偽(false)を返す

$ApplicationCode

アプリケーションのタイトルに表示されるアプリケーション名の省略形、デフォルトでは空白

例:TEST

$ApplicationContextPath

アプリケーションのコンテキストパス

例: /example/somethingelse

$ApplicationFirstSeen

アプリケーションが最初に検知された日時(Unix時間)

例:1572033840000

$ApplicationHasParentApp

アプリケーションに親がある場合は真(true)を返し、そうでない場合は偽(false)を返す

$ApplicationImportance

アプリケーションの重要度の列挙値(enum値)

例:MEDIUM

$ApplicationId

Contrastでアプリケーションの登録時に、アプリケーションに割り当てられた一意のID

例: 49fe2978-1833-4441-83db-2b7o486d9413

$ApplicationImportanceDescription

アプリケーションに割り当てられた重要度、例:Medium

$ApplicationLanguage

アプリケーションのプログラミング言語

$ApplicationLastSeen

アプリケーションが最後に検知された日時(Unix時間)、例: 1572033840000

$ApplicationLicenseLevel

アプリケーションにAssessライセンスがあるかどうか、値:Licensed、Unlicensed

$ApplicationMaster

アプリケーションがマスターアプリケーションである場合は真(true)を返し、そうでない場合は偽(false)を返す

$ApplicationName

アプリケーションの名前

$ApplicationParentAppId

Contrastでアプリケーション(この場合は親アプリケーション)の登録時に、アプリケーションに割り当てられた一意のID(存在する場合)

例: 49fe2978-1833-4441-83db-2b7o486d9413

$ApplicationTags

アプリケーションのタグのカンマ区切りリスト

$ApplicationTotalModules

アプリケーションにあるモジュールの数

サーバ変数

$Environment

サーバの環境、値:DEVELOPMENT、QA、PRODUCTION

$ServerId

イベントに関与しているサーバのID

複数サーバが関与している場合、カンマ区切りのサーバIDリスト

$ServerName

イベントに関与しているサーバの名前

複数サーバが関与している場合、カンマ区切りのサーバ名リスト

脆弱性変数

$Severity

イベントのトリガーが脆弱性の場合、脆弱性の深刻度を返す

$Status

イベントのトリガーが脆弱性の場合、脆弱性のステータスを返す

$TraceId

イベントのトリガーが脆弱性の場合、脆弱性IDを返す

$VulnerabilityAgentLanguage

脆弱性が検知されたアプリケーションの言語またはフレームワーク名(例:.Java、.NET、Rubyなど)

$VulnerabilityAppVersionTags

脆弱性が検出されたアプリケーションのバージョン

例:v1.2.3

$VulnerabilityAutoRemediatedExpirationPeriod

脆弱性が自動修復される有効期間(Unix時間)

例:1572033840000

$VulnerabilityBugTrackerTickets

脆弱性情報がバグ管理システムに送信されて、作成されたチケットのリスト(カンマ区切り)

例:ticket1, ticket2, ticket3

$VulnerabilityCategory

検出された脆弱性のカテゴリー、例:Injection

$VulnerabilityClosedTime

脆弱性がクローズされた日時(Unix時間)

例:1572033840000

$VulnerabilityConfidence

脆弱性の信頼度

$VulnerabilityDefaultSeverity

脆弱性のデフォルトの深刻度

$VulnerabilityDiscovered

脆弱性が最初に検出された日時(Unix時間)

例:1572033840000

$VulnerabilityEvidence

脆弱性のエビデンス

$VulnerabilityInstanceUuid

Contrastで脆弱性インスタンスの作成時に、脆弱性インスタンスに割り当てられた一意のID

例:  R33T-N00B-TGIF-RM6P

$VulnerabilityFirstTimeSeen

脆弱性が最初に検出された日時(Unix時間)、例: 1572033840000

$VulnerabilityImpact

脆弱性の影響度レベル、値:Low、Medium、High

$VulnerabilityLastTimeSeen

脆弱性が最後に確認された日時(Unix時間)、例: 1572033840000

$VulnerabilityInstanceLastTimeSeen

脆弱性が最後に確認された日時(Unix時間)、例:1572033840000

$VulnerabilityLicenseLevel

脆弱性のライセンスレベル

$VulnerabilityLikelihood

脆弱性の可能性レベル

値:Low、Medium、High

$VulnerabilityReportedToBugTracker

脆弱性がバグ管理システムに送信された日時(Unix時間)

例:1572033840000

$VulnerabilityReportedToBugTrackerTime

脆弱性がバグ管理システムに送信された場合、真(true)を返す

$VulnerabilityRule

脆弱性に関連付けられたルール

$VulnerabilityRuleName

脆弱性に関連付けられたルールの名前

$VulnerabilityRuleTitle

脆弱性に関連付けられたルールのタイトル

$VulnerabilitySubStatus

脆弱性のサブステータス

$VulnerabilityTags

脆弱性に関連付けられたカスタムタグ

例:my-custom-tag

$VulnerabilityTitle

脆弱性のタイトル

$VulnerabilitySubStatusKeyCode

脆弱性サブステータスのキーコード

$VulnerabilityTotalTracesReceived

脆弱性が受信された合計回数

$VulnerabilityUuid

脆弱性を検索するために使用される一意のID

$VulnerabilityVisible

脆弱性にライセンスがあり参照可能である場合は真(true)を返し、そうでない場合は偽(false)を返す

$VulnerabilityRule

イベントのトリガーが脆弱性の場合、脆弱性が違反したルールを返す

$VulnerabilityTags

イベントのトリガーが脆弱性の場合、脆弱性に関連付けられたタグのリスト(カンマ区切り)を返す

イベントとGeneric Webhook変数

NEW_VULNERABILITYSERVER_OFFLINEなどのContrastのイベントからのデータを使って、Generic Webhookのレスポンスをカスタマイズできます。各イベントには、共通変数、アプリケーション変数、サーバ変数、または脆弱性変数があり、ペイロードのリクエストで呼び出すことができます。

イベント

変数

ATTACK_END

共通アプリケーションサーバ

ATTACK_EVENT_COMMENT

共通アプリケーションサーバ

ATTACK_UPDATE

共通アプリケーションサーバ

EXPIRING_LICENSE

共通アプリケーション

NEW_ASSET (新規アプリケーションの場合)

共通アプリケーションおよびサーバ(新規アプリケーションの場合)

NEW_ATTACK_APPLICATION

共通アプリケーションサーバ

NEW_ATTACK_UPDATE

共通アプリケーションサーバ

NEW_ATTACK

共通アプリケーションサーバ

NEW_VULNERABILITY_COMMENT

共通アプリケーションサーバ脆弱性

NEW_VULNERABILITY

共通アプリケーションサーバ脆弱性

NEW_VULNERABLE_LIBRARY

共通アプリケーション

SERVER_OFFLINE

共通サーバ

VULNERABILITY_CHANGESTATUS_CLOSED

共通アプリケーションサーバ脆弱性

VULNERABILITY_CHANGESTATUS_OPEN

共通アプリケーションサーバ脆弱性

VULNERABILITY_DUPLICATE

共通アプリケーションサーバ脆弱性