INTEGRITY Dokumentace

Ukládání dešifrovaných zachycených payloadů do logů

Šifrovaný odpovídající payload můžete zahrnout do Logpush úlohy přidáním Obecné > Metadata pole z datasetu Firewall Events do své úlohy.

Payload je v šifrované podobě dostupný v encrypted_matched_data vlastnost Metadata pole.

Odpovídající payload však můžete chtít dešifrovat před uložením logů do svého systém SIEM dle vlastního výběru. Cloudflare poskytuje ukázkový projekt Workeru na GitHubu, který dělá následující:

  1. Chová se jako S3-kompatibilní úložiště pro příjem logů z Logpush. Tyto logy budou obsahovat šifrovaná data zachycených payloadů.
  2. Dešifruje data zachyceného payloadu pomocí vašeho privátního klíče.
  3. Odešle logy do cílového úložiště logů s dešifrovanými daty payloadů.

V ukázkovém projektu budete muset provést několik změn, abyste logy obsahující dešifrovaná data payloadu odesílali do svého systému pro ukládání logů.

Podívejte se v projektu Worker na README pro více informací o konfiguraci a nasazení tohoto Worker projektu.

Struktura encrypted_matched_data vlastnost v Logpush

Informace o zachyceném payloadu zahrnují konkrétní řetězec, který pravidlo aktivoval, spolu s textem bezprostředně před a za zachyceným řetězcem.

Jakmile dešifrujete jeho hodnotu, encrypted_matched_data vlastnost Metadata pole v Logpush má strukturu podobnou následující:

{
	// 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>"
		}
	]
}

The before a after vlastnosti jsou volitelné (před/za zachyceným textem nemusí být žádný obsah) a budou obsahovat nejvýše 15 bajtů obsahu před a za shodou.

Níže je několik příkladů shod payloadu:

Shoda URI
{
	"http.request.uri": {
		"before": "/admin",
		"content": "/.git/",
		"after": "config"
	}
}
Shoda hodnoty hlavičky
{
	"http.request.headers.values[3]": [
		{ "content": "phar://", "after": "example" }
	]
}
Shoda v raw obsahu těla
{
	"http.request.body.raw": {
		"before": "NY>",
		"content": "<!ENTITY xxe SYSTEM \"file:///dev/random\">] > ",
		"after": "<foo>&xxe;</foo>"
	}
}