跳转到内容
搜索文档

在日志中存储已解密的匹配载荷

最后更新 查看 MarkdownAgent 设置

您可以通过向作业添加 Firewall Events 数据集中的 General > Metadata 字段,将加密的匹配载荷包含在 Logpush 作业中。

载荷以其加密形式位于 Metadata 字段的 encrypted_matched_data 属性 中。

不过,您可能希望在将日志存入所选 SIEM 系统 之前先解密匹配载荷。Cloudflare 在 GitHub 上提供了一个示例 Worker 项目,可完成以下操作:

  1. 作为兼容 S3 的存储接收来自 Logpush 的日志。这些日志将包含加密的匹配载荷数据。
  2. 使用您的私钥解密匹配载荷数据。
  3. 将包含已解密载荷数据的日志发送到最终的日志存储系统。

您需要对示例项目进行一些修改,才能将包含已解密载荷数据的日志推送到您的日志存储系统。

更多关于配置与部署此 Worker 项目的信息,请参阅该 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 matchjson
{
	"http.request.uri": {
		"before": "/admin",
		"content": "/.git/",
		"after": "config"
	}
}
Header value matchjson
{
	"http.request.headers.values[3]": [
		{ "content": "phar://", "after": "example" }
	]
}
Raw body content matchjson
{
	"http.request.body.raw": {
		"before": "NY>",
		"content": "<!ENTITY xxe SYSTEM \"file:///dev/random\">] > ",
		"after": "<foo>&xxe;</foo>"
	}
}

这篇文档对您有帮助吗?