Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

復号した一致ペイロードをログに保存する

最終更新 Markdown で表示Agent セットアップ

Firewall Events データセットの General > Metadata フィールドをジョブに追加すると、Logpush ジョブに暗号化された一致ペイロードを含められます。

暗号化されたペイロードは、Metadata フィールドの encrypted_matched_data プロパティ で利用できます。

ただし、任意の SIEM システム にログを保存する前に、一致ペイロードを復号したい場合があります。Cloudflare は、次の処理を行う サンプル Worker プロジェクト を GitHub で提供しています。

  1. Logpush からログを受け取る、S3 互換ストレージとして動作します。これらのログには、暗号化された一致ペイロードデータが含まれます。
  2. 秘密鍵を使って一致ペイロードデータを復号します。
  3. 復号済みペイロードデータを含むログを、最終的なログ保存システムへ送信します。

復号済みペイロードデータを含むログをログ保存システムへ送るには、サンプルプロジェクトに変更を加える必要があります。

この Worker プロジェクトの設定とデプロイについては、プロジェクトの README を参照してください。

Logpush における encrypted_matched_data プロパティの構造

一致ペイロードの情報には、ルールをトリガーした特定の文字列と、その前後に続くテキストが含まれます。

値を復号すると、Logpush の Metadata フィールドにある encrypted_matched_data プロパティは、次のような構造になります。

{
	// for fields with only one match (such as URI or user agent fields):
	"<match_location>": {
		"before": "<text_before_match>",
		"content": "<matched_text>",
		"after": "<text_after_match>"
	},
	// for fields with possible multiple matches (such as form, header, or body fields):
	"<match_location>": [
		{
			"before": "<text_before_match_1>",
			"content": "<matched_text_1>",
			"after": "<text_after_match_1>"
		},
		{
			"before": "<text_before_match_2>",
			"content": "<matched_text_2>",
			"after": "<text_after_match_2>"
		}
	]
}

beforeafter プロパティは省略可能です(一致テキストの前後に内容がない場合があります)。一致の前後に現れる内容は、最大 15 バイトです。

ペイロード一致の例をいくつか示します。

URI の一致json
{
	"http.request.uri": {
		"before": "/admin",
		"content": "/.git/",
		"after": "config"
	}
}
ヘッダー値の一致json
{
	"http.request.headers.values[3]": [
		{ "content": "phar://", "after": "example" }
	]
}
Raw body の一致json
{
	"http.request.body.raw": {
		"before": "NY>",
		"content": "<!ENTITY xxe SYSTEM \"file:///dev/random\">] > ",
		"after": "<foo>&xxe;</foo>"
	}
}

役に立ちましたか?