← Dokumentace WAF / detections / malicious-uploads
Začínáme
1. Zapněte detekci
-
V Cloudflare dashboardu přejděte na Security Settings stránku.
Přejděte na Settings ↗ -
(Volitelné) Filtrujte podle Detekční nástroje.
-
Zapněte Detekce škodlivých uploadů.
Použijte POST požadavek podobný následujícímu:
Požadovaná oprávnění API tokenu
Alespoň jedno z následujících oprávnění tokenu je vyžadováno: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 resource k zapnutí content scanningu pro zónu. 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 HTTP logy k ověření, že škodlivé obsahové objekty jsou detekovány správně.
Můžete použít antimalwarový testovací soubor EICAR ↗ k otestování skenování obsahu (zvolte formát ZIP).
Případně vytvořte vlastní pravidlo, jak je popsáno v dalším kroku, pomocí Log akci místo mitigační akce jako Block. Toto pravidlo vygeneruje bezpečnostní události které vám umožní ověřit konfiguraci.
3. Vytvořte vlastní pravidlo
Vytvoření vlastního pravidla které blokuje detekované škodlivé content objecty nahrávané do vaší aplikace.
Například vytvořte vlastní pravidlo s Block a následující výraz:
| Pole | Operátor | Hodnota |
|---|---|---|
| Má škodlivý content object | rovná se | True |
Pokud používáte Expression Editor, zadejte následující výraz:
(cf.waf.content_scan.has_malicious_obj)Akce pravidla: Block
Toto pravidlo zachytí požadavky, u kterých Cloudflare detekuje podezřelý nebo škodlivý content object. Seznam polí poskytovaných skenováním obsahu WAF najdete v Pole skenování obsahu.
Volitelné: Kombinace s dalšími poli jazyka Rules
Předchozí výraz můžete kombinovat s dalšími pole a funkce jazyka Rules. Díky tomu můžete přizpůsobit rozsah pravidla nebo kombinovat content scanning s dalšími bezpečnostními funkcemi. Například:
-
Následující výraz zachytí požadavky se škodlivými content objecty nahranými na konkrétní endpoint:
Pole Operátor Hodnota Logika Má škodlivý content object rovná se 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ů nahrávajících obsahové objekty:
Pole Operátor Hodnota Logika Has content object rovná se True And Bot Score less than 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 skenování
Chcete-li nahrávaný obsah kontrolovat způsobem, který výchozí konfigurace nepokrývá, přidejte vlastní výraz skenování.
-
V Cloudflare dashboardu přejděte na Security Settings stránku.
Přejděte na Settings ↗ -
(Volitelné) Filtrujte podle Detekční nástroje.
-
V části Detekce škodlivých uploadů > Konfigurace, vyberte ikonu úprav.
-
Vyberte Add content location.
-
V Umístění obsahu, zadejte svůj vlastní výraz skenování. Například:
lookup_json_string(http.request.body.raw, "file") -
Vyberte Save.
Použijte POST požadavek podobný následujícímu:
Požadovaná oprávnění API tokenu
Alespoň jedno z následujících oprávnění tokenu je vyžadováno: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 skenování:
lookup_json_string(http.request.body.raw, "file")Použijte cloudflare_content_scanning_expression resource k přidání vlastního výrazu pro 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 viz Vlastní výrazy pro skenování.