Generic Webhook
Contrastでは汎用のWebhookによるインテグレーションをサポートしており、POSTメッセージを受信するあらゆるURLで通知を受信することができます。Contrastのイベントでトリガーされる、$ApplicationName
や$ServerId
などのカスタム変数をペイロードに追加できます。
Generic Webhookは、受信側が2xx HTTPレスポンスコードを返す限り、接続されたままになります。Generic Webhookが2xx以外のレスポンスコードを過度に受信した場合、接続は切断されます。
接続
Generic Webhookに接続するために、以下を行います。
Contrastからの通知を受信するURLを取得します。
ユーザメニューで組織の設定 > インテグレーションを選択します。
Generic Webhookの行で、接続を選択します。
Webhookに名前を付け、URLを指定のフィールドに貼り付けます。
インテグレーションするアプリケーションを選択します(複数選択可)。
ペイロードフィールドに 変数 を入力します。例:
{ "title": "$Title", "message": "$Message" }
追加を選択します。
Webhookをテストするには:
組織の設定 > 通知を選択します。
インテグレーションのドロップダウンで、webhookのインテグレーション名を選択します。
通知を受けたいイベントタイプ(通知の登録)ごとに、インテグレーション列のトグルボタンをクリックします。
イベントを発生させて、指定したURLで通知を受信していることを確認してください。
注記
このWebhookは、5回試行しても応答しない場合、切断されます。設定を復元するには、接続を再テストし、再保存する必要があります。
ContrastでGeneric Webhookが切断された時に、すべての管理者にContrast内とEメールで通知するよう、インテグレーションを設定できます。
この設定を行うには、組織の設定 > インテグレーション > Generic Webhook > 設定を表示にアクセスします。 設定を行う接続名を選択します。そして、接続失敗時に通知のチェックボックスを選択し、保存をクリックします。
Generic Webhookの変数
NEW_VULNERABILITY
やSERVER_OFFLINE
などのContrastイベントからのデータを使用して、Generic Webhookのレスポンスをカスタマイズできます。各イベントには、ペイロードのリクエストで呼び出すことができる変数があります。変数には、一般的な共通情報として利用するもの、もしくは、アプリケーション用、サーバ用、脆弱性用があります。
変数 | 説明 |
---|---|
共通変数 | |
| Webhookのトリガーとなるイベントタイプ 例:SERVER_OFFLINE |
| Webhookのトリガーとなったイベントの概要を表すメッセージ |
| Contrastで組織の作成時に、組織に割り当てられた一意のID |
| 組織の名前 |
| 常に“Contrast Security”を返す |
アプリケーション変数 | |
| アプリケーションが子アプリケーションの場合は真(true)を返し、そうでない場合は偽(false)を返す |
| アプリケーションのタイトルに表示されるアプリケーション名の省略形、デフォルトでは空白 例:TEST |
| アプリケーションのコンテキストパス 例: |
| アプリケーションが最初に検知された日時(Unix時間) 例:1572033840000 |
| アプリケーションに親がある場合は真(true)を返し、そうでない場合は偽(false)を返す |
| アプリケーションの重要度の列挙値(enum値) 例:MEDIUM |
| Contrastでアプリケーションの登録時に、アプリケーションに割り当てられた一意のID 例: 49fe2978-1833-4441-83db-2b7o486d9413 |
| アプリケーションに割り当てられた重要度、例:Medium |
| アプリケーションのプログラミング言語 |
| アプリケーションが最後に検知された日時(Unix時間)、例: 1572033840000 |
| アプリケーションにAssessライセンスがあるかどうか、値:Licensed、Unlicensed |
| アプリケーションがマスターアプリケーションである場合は真(true)を返し、そうでない場合は偽(false)を返す |
| アプリケーションの名前 |
| Contrastでアプリケーション(この場合は親アプリケーション)の登録時に、アプリケーションに割り当てられた一意のID(存在する場合) 例: 49fe2978-1833-4441-83db-2b7o486d9413 |
| アプリケーションのタグのカンマ区切りリスト |
| アプリケーションにあるモジュールの数 |
サーバ変数 | |
| サーバの環境、値:DEVELOPMENT、QA、PRODUCTION |
| イベントに関与しているサーバのID 複数サーバが関与している場合、カンマ区切りのサーバIDリスト |
| イベントに関与しているサーバの名前 複数サーバが関与している場合、カンマ区切りのサーバ名リスト |
脆弱性変数 | |
| イベントのトリガーが脆弱性の場合、脆弱性の深刻度を返す |
| イベントのトリガーが脆弱性の場合、脆弱性のステータスを返す |
| イベントのトリガーが脆弱性の場合、脆弱性IDを返す |
| 脆弱性が検知されたアプリケーションの言語またはフレームワーク名(例:.Java、.NET、Rubyなど) |
| 脆弱性が検出されたアプリケーションのバージョン 例:v1.2.3 |
| 脆弱性が自動修復される有効期間(Unix時間) 例:1572033840000 |
| 脆弱性情報がバグ管理システムに送信されて、作成されたチケットのリスト(カンマ区切り) 例:ticket1, ticket2, ticket3 |
| 検出された脆弱性のカテゴリー、例:Injection |
| 脆弱性がクローズされた日時(Unix時間) 例:1572033840000 |
| 脆弱性の信頼度 |
| 脆弱性のデフォルトの深刻度 |
| 脆弱性が最初に検出された日時(Unix時間) 例:1572033840000 |
| 脆弱性のエビデンス |
| Contrastで脆弱性インスタンスの作成時に、脆弱性インスタンスに割り当てられた一意のID 例: R33T-N00B-TGIF-RM6P |
| 脆弱性が最初に検出された日時(Unix時間)、例: 1572033840000 |
| 脆弱性の影響度レベル、値:Low、Medium、High |
| 脆弱性が最後に確認された日時(Unix時間)、例: 1572033840000 |
| 脆弱性が最後に確認された日時(Unix時間)、例:1572033840000 |
| 脆弱性のライセンスレベル |
| 脆弱性の可能性レベル 値:Low、Medium、High |
| 脆弱性がバグ管理システムに送信された日時(Unix時間) 例:1572033840000 |
| 脆弱性がバグ管理システムに送信された場合、真(true)を返す |
| 脆弱性に関連付けられたルール |
| 脆弱性に関連付けられたルールの名前 |
| 脆弱性に関連付けられたルールのタイトル |
| 脆弱性のサブステータス |
| 脆弱性に関連付けられたカスタムタグ 例:my-custom-tag |
| 脆弱性のタイトル |
| 脆弱性サブステータスのキーコード |
| 脆弱性が受信された合計回数 |
| 脆弱性を検索するために使用される一意のID |
| 脆弱性にライセンスがあり参照可能である場合は真(true)を返し、そうでない場合は偽(false)を返す |
| イベントのトリガーが脆弱性の場合、脆弱性が違反したルールを返す |
| イベントのトリガーが脆弱性の場合、脆弱性に関連付けられたタグのリスト(カンマ区切り)を返す |
イベントとGeneric Webhook変数
NEW_VULNERABILITY
やSERVER_OFFLINE
などのContrastのイベントからのデータを使って、Generic Webhookのレスポンスをカスタマイズできます。各イベントには、共通変数、アプリケーション変数、サーバ変数、または脆弱性変数があり、ペイロードのリクエストで呼び出すことができます。
イベント | 変数 |
---|---|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|