← Dokumentace WAF / managed-rules / payload-logging
Ukládejte dešifrované odpovídající payloady do protokolů
Zašifrovaný shodující se payload můžete zahrnout do Logpush úlohy přidáním Obecné > Metadata pole ze sady dat Firewall Events do vaší úlohy.
Payload v zašifrované podobě je dostupný v encrypted_matched_data vlastnost Metadata .
Můžete však chtít dešifrovat odpovídající payload předtím, než protokoly uložíte do svého Systém SIEM podle vlastního výběru. Cloudflare poskytuje ukázkový projekt Worker ↗ na GitHubu, který provádí následující:
- Chová se jako úložiště kompatibilní s S3 pro příjem protokolů ze služby Logpush. Tyto protokoly budou obsahovat šifrovaná data odpovídajícího payloadu.
- Dešifruje data odpovídajícího payloadu pomocí vašeho privátního klíče.
- Odesílá protokoly do koncového systému úložiště protokolů s dešifrovanými daty payloadu.
Ve vzorovém projektu budete muset provést několik úprav, aby bylo možné odesílat protokoly obsahující dešifrovaná data payloadu do vašeho úložiště protokolů.
V projektu Worker viz README ↗ s dalšími informacemi o konfiguraci a nasazení tohoto projektu Worker.
Struktura encrypted_matched_data vlastnost v Logpush
Informace o shodném payloadu obsahuje konkrétní řetězec, který aktivoval pravidlo, spolu s částí textu bezprostředně před tímto řetězcem a za ním.
Jakmile dešifrujete jeho hodnotu, encrypted_matched_data vlastnost objektu Metadata pole má v Logpush strukturu podobnou této:
{
// 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>"
}
]
} before a after vlastnosti jsou nepovinné (před shodným textem nebo za ním nemusí být žádný obsah) a budou obsahovat nejvýše 15 bajtů obsahu, který se objevuje před shodou a za ní.
Níže jsou uvedeny příklady shod v payloadu:
{
"http.request.uri": {
"before": "/admin",
"content": "/.git/",
"after": "config"
}
}{
"http.request.headers.values[3]": [
{ "content": "phar://", "after": "example" }
]
}{
"http.request.body.raw": {
"before": "NY>",
"content": "<!ENTITY xxe SYSTEM \"file:///dev/random\">] > ",
"after": "<foo>&xxe;</foo>"
}
}