← Dokumentace WAF / detections / malicious-uploads
Začínáme
1. Zapněte detekci
-
V dashboardu Cloudflare přejděte na Security Nastavení stránce.
Přejděte na Nastavení ↗ -
(Volitelné) Filtrujte podle Nástroje pro detekci.
-
Zapněte Detekce škodlivých nahrávaných souborů.
Použijte POST požadavek podobný tomuto:
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:Zone WAF WriteAccount WAF Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/content-upload-scan/enable" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Použijte cloudflare_content_scanning prostředek pro povolení kontroly obsahu u zóny. Například:
resource "cloudflare_content_scanning" "zone_content_scanning_example" {
zone_id = var.cloudflare_zone_id
enabled = true
}2. Ověřte chování skenování obsahu
Použijte Security Analytics a protokoly HTTP, abyste ověřili, že jsou škodlivé obsahové objekty správně rozpoznávány.
Můžete použít Testovací soubor EICAR pro ochranu proti malwaru ↗, abyste otestovali skenování obsahu (vyberte formát ZIP).
Alternativně vytvořte vlastní pravidlo, jak je popsáno v dalším kroku, pomocí Log akce namísto zmírňující akce, jako je Block. Toto pravidlo vygeneruje bezpečnostní události který vám umožní ověřit vaši konfiguraci.
3. Vytvořte vlastní pravidlo
Vytvoření vlastního pravidla které blokuje zjištěné škodlivé objekty obsahu nahrané do vaší aplikace.
Vytvořte například vlastní pravidlo s Block akce a následující výraz:
| Pole | Operátor | Hodnota |
|---|---|---|
| Obsahuje škodlivý objekt obsahu | equals | True |
Pokud používáte editor výrazů, zadejte následující výraz:
(cf.waf.content_scan.has_malicious_obj)Akce pravidla: Block
Toto pravidlo bude odpovídat požadavkům, u kterých Cloudflare zjistí podezřelý nebo škodlivý objekt obsahu. Seznam polí poskytovaných kontrolou obsahu WAF najdete v Pole skenování obsahu.
Volitelné: Kombinace s dalšími poli jazyka Rules
Předchozí výraz můžete zkombinovat s dalšími pole a funkce jazyka Rules. Díky tomu můžete přizpůsobit rozsah pravidla nebo zkombinovat content scanning s dalšími bezpečnostními funkcemi. Například:
-
Následující výraz odpovídá požadavkům se škodlivými objekty obsahu nahranými na konkrétní koncový bod:
Pole Operátor Hodnota Logika Obsahuje škodlivý objekt obsahu equals True And URI Path contains upload.phpVýraz při použití editoru:
(cf.waf.content_scan.has_malicious_obj and http.request.uri.path contains "upload.php") -
Následující výraz odpovídá požadavkům od botů, které nahrávají objekty obsahu:
Pole Operátor Hodnota Logika Obsahuje objekt obsahu equals True And Bot Score menší než 10Výraz při použití editoru:
(cf.waf.content_scan.has_obj and cf.bot_management.score lt 10)
Další příklady najdete v Příklady pravidel.
4. (Volitelné) Nakonfigurujte vlastní výraz pro skenování
Chcete-li kontrolovat nahraný obsah způsobem, který výchozí konfigurace nepokrývá, přidejte vlastní výraz pro skenování.
-
V dashboardu Cloudflare přejděte na Security Nastavení stránce.
Přejděte na Nastavení ↗ -
(Volitelné) Filtrujte podle Nástroje pro detekci.
-
V části Detekce škodlivých nahrávaných souborů > Konfigurace, vyberte ikonu úprav.
-
Vyberte Přidat umístění obsahu.
-
V Umístění obsahu, zadejte vlastní výraz pro kontrolu. Například:
lookup_json_string(http.request.body.raw, "file") -
Vyberte Save.
Použijte POST požadavek podobný tomuto:
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné:Zone WAF WriteAccount WAF Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/content-upload-scan/payloads" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '[
{
"payload": "lookup_json_string(http.request.body.raw, \"file\")"
}
]'Výše uvedený požadavek přidá následující výraz do aktuálního seznamu vlastních výrazů pro kontrolu obsahu:
lookup_json_string(http.request.body.raw, "file")Použijte cloudflare_content_scanning_expression prostředek pro přidání vlastního výrazu skenování. Například:
resource "cloudflare_content_scanning_expression" "my_custom_scan_expression" {
zone_id = var.cloudflare_zone_id
payload = "lookup_json_string(http.request.body.raw, \"file\")"
}Další informace najdete v tématu Vlastní skenovací výrazy.