汎用ウェブフック
- English
- 日本語
汎用ウェブフック統合 (アラート) により、特定の Next-Gen WAF アクティビティタイプの通知を定期購読することができます。
ヒント : CDN または Compute サービスのアラートを設定する場合は、アラートに関するドキュメントをご覧ください。
ウェブフック統合 (アラート) の追加
ウェブフック統合 (アラート) を追加するには、次の手順を実行します。
- Next-Gen WAF control panel
- Fastly control panel
- Next-Gen WAF コンソールにログインします。
- Sites メニューから、複数のサイトがある場合はサイトを選択します。
Manage メニューから、Site Integrations を選択します。
Add site integration をクリックします。
Generic Webhook 統合を選択します。
Webhook URL フィールドに、通知を受信する URL を入力します。
- すべてのアクティビティまたは特定のアクティビティに関するアラートを受け取るかどうかを選択します。特定のアクティビティを選択した場合、アクティビティメニューで統合がアラートを作成する対象となるアクティビティの種類を選択してください。
Create site integration をクリックします。
- Fastly コンソールにログインしてください。
- Security > Next-Gen WAF > Workspaces の順に移動します。
- 変更したいワークスペースの横にある歯車 アイコンをクリックします。
Alerts、Add alert の順にクリックします。
Add alert フォームに以下のように入力します。
Integration type メニューから Webhook を選択します。
Webhook URL フィールドに、通知を受信する URL を入力します。
Select activities メニューで、Flagged IPs をチェックしたままにします。
Add workspace alert をクリックします。
通知形式
通知は以下の形式で送信されます。
1234567891011121314151617181920{ "created": "2024-02-09T21:08:21.31644377Z", "type": "flag", "payload": { "ID": "abcde123456789", "CorpID": "123456789abcde", "SiteID": "987654321fedcba", "Scope": "site", "Slug": "site.example", "Name": "example", "Description": "Webhook integration for Example site", "CreatedBy": "admin@example.com", "CreatedByID": "edcba987654321", "Created": "2024-02-09T21:08:21.31644377Z", "Updated": "2025-01-07T21:06:31.50725289Z", "ResourceID": "ASDFghjkl123456789" }, "link":"dashboard link to event", "workspaceId": "www.mysite.com"}X-SigSci-Signature ヘッダー
汎用ウェブフック統合 (アラート) から送信されるすべてのリクエストには、X-SigSci-Signature というヘッダーが含まれています。その値は、汎用ウェブフックの作成時に生成された署名キーを使用してハッシュされた HMAC-SHA256 の16進数のダイジェストです。
署名キーをローテーションするには、次の手順を実行します。
- Next-Gen WAF control panel
- Fastly control panel
- Next-Gen WAF コンソールにログインします。
- Sites メニューから、複数のサイトがある場合はサイトを選択します。
Manage メニューから、Site Integrations を選択します。
適切な汎用ウェブフック統合の名前をクリックしてください。
Rotate をクリックします。
(オプション) 署名キーの全体の値を表示するには、Reveal をクリックします。
- Fastly コンソールにログインしてください。
- Security > Next-Gen WAF > Workspaces の順に移動します。
- 変更したいワークスペースの横にある歯車 アイコンをクリックします。
Alerts をクリックします。
該当するアラートの横にある鉛筆アイコン をクリックします。
Rotate をクリックします。
ヒント : Rotate をクリックした後、Update workspace alert をクリックして新しい署名キーを保存する必要はありません。
(オプション) 署名キーの全体の値を表示するには、Reveal をクリックします。
検証は、署名キーを使用して汎用ウェブフックペイロードの HMAC-SHA256 の16進数のダイジェストを作成し、その結果を X-SigSci-Signature ヘッダーの値と比較することによって行います。
X-SigSci-Signature ヘッダー検証のコード例
例は X-SigSci-Signature のヘッダー検証コードを示しています。
- Go
- Python
- Ruby
- Bash
12345678910111213141516171819202122232425262728293031323334package main
import ( "crypto/hmac" "crypto/sha256" "encoding/hex" "fmt")
// CheckMAC reports whether messageMAC is a valid HMAC tag for message.func CheckMAC(message, messageMAC, key []byte) bool { mac := hmac.New(sha256.New, key) mac.Write(message) expectedMAC := mac.Sum(nil)
return hmac.Equal(messageMAC, expectedMAC)}
func main() { key := []byte("[insert signing key here]")
h := "[insert X-SigSci-Signature value here]"
json := []byte(`[insert JSON payload here]`)
hash, err := hex.DecodeString(h) if err != nil { log.Fatal("ERROR: ", err) }
ok := CheckMAC(json, hash, key)
fmt.Println(ok)}1234567891011121314151617import hashlibimport hmac
def checkHMAC(message, messageMAC, key): mac = hmac.new(key, message, digestmod=hashlib.sha256).hexdigest()
return mac == messageMAC
key = '[insert signing key here]'
h = '[insert X-SigSci-Signature value here]'
json = '[insert JSON payload here]'
ok = checkHMAC(json, h, key)
print(ok)12345678910require 'openssl'require "base64"
key = '[insert signing key here]'h = '[insert X-SigSci-Signature value here]'json = '[insert JSON payload here]'
hash = OpenSSL::HMAC.hexdigest('sha256', key, json)
puts hash == h123456789101112131415161718192021#!/bin/bash
function check_hmac { json="$1" messageMAC="$2" key="$3"
result=$(echo -n "$json" | openssl dgst -sha256 -hmac "$key") if [ "$result" == "$messageMAC" ] then return 0 else return 1 fi}
key='[insert key here]'h='[insert X-SigSci-Signature value here]'json='[insert JSON payload here]'
check_hmac "$json" $h $keyアクティビティタイプ
重要 : このセクションは、Next-Gen WAF コンソールにアクセスできる Next-Gen WAF のお客様のみが対象です。
Next-Gen WAF コンソールでウェブフック統合 (アラート) を設定するときは、以下のアクティビティタイプから選択できます。
| アクティビティタイプ | 説明 | ペイロード |
siteDisplayNameChanged | サイト (ワークスペース) の表示名が変更されました | |
siteNameChanged | サイト (ワークスペース) の略称が変更されました | |
loggingModeChanged | エージェントモード (Blocking、Not Blocking、Off) が変更されました | サイト名で取得 |
agentAnonModeChanged | エージェント IP 匿名化モードが変更されました | サイト名で取得 |
flag | IP アドレスがフラグされました | ID でイベントを取得 |
expireFlag | IP アドレスのフラグが手動で期限切れになりました | イベントを一覧表示 |
createCustomRedaction | カスタム修正が作成されました | カスタム修正の作成 |
removeCustomRedaction | カスタム修正が削除されました | カスタム修正の削除 |
updateCustomRedaction | カスタム修正が更新されました | カスタム修正の更新 |
customTagCreated | カスタムシグナルが作成されました | |
customTagUpdated | カスタムシグナルが更新されました | |
customTagDeleted | カスタムシグナルが削除されました | |
customAlertCreated | カスタムアラートが作成されました | カスタムアラートの作成 |
customAlertUpdated | カスタムアラートが更新されました | カスタムアラートの更新 |
customAlertDeleted | カスタムアラートが削除されました | カスタムアラートの削除 |
detectionCreated | テンプレート化されたルールが作成されました | |
detectionUpdated | テンプレート化されたルールが更新されました | |
detectionDeleted | テンプレート化されたルールが削除されました | |
listCreated | リストが作成されました | リストの作成 |
listUpdated | リストが更新されました | リストを更新 |
listDeleted | リストが削除されました | リストの削除 |
ruleCreated | リクエストルールが作成されました | |
ruleUpdated | リクエストルールが更新されました | |
ruleDeleted | リクエストルールが削除されました | |
customDashboardCreated | カスタムダッシュボードが作成されました | |
customDashboardUpdated | カスタムダッシュボードが更新されました | |
customDashboardReset | カスタムダッシュボードがリセットされました | |
customDashboardDeleted | カスタムダッシュボードが削除されました | |
customDashboardWidgetCreated | カスタムダッシュボードカードが作成されました | |
customDashboardWidgetUpdated | カスタムダッシュボードカードが更新されました | |
customDashboardWidgetDeleted | カスタムダッシュボードカードが削除されました | |
agentAlert | エージェントアラートがトリガーされました |

