← Dokumentace WAF / detections / leaked-credentials
Začínáme
1. Zapněte detekci
V plánech Free je detekce uniklých přihlašovacích údajů ve výchozím stavu povolena a není vyžadována žádná akce. V placených plánech můžete detekci zapnout v Cloudflare dashboardu, přes API nebo pomocí Terraformu.
-
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 uniklých přihlašovacích údajů.
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/leaked-credential-checks" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"enabled": true
}'Použijte cloudflare_leaked_credential_check resource k zapnutí detekce uniklých přihlašovacích údajů pro zónu. Například:
resource "cloudflare_leaked_credential_check" "zone_lcc_example" {
zone_id = var.cloudflare_zone_id
enabled = true
}2. Ověřte chování detekce uniklých přihlašovacích údajů
Použijte Security Analytics a HTTP logy k ověření, že Cloudflare správně detekuje uniklé přihlašovací údaje v příchozích požadavcích.
Viz Otestujte svou konfiguraci pro více informací o testovacích přihlašovacích údajích, které můžete použít k ověření konfigurace.
Případně vytvořte vlastní pravidlo podobné tomu z dalšího kroku pomocí Log akci (dostupná pouze zákazníkům Enterprise). Toto pravidlo vygeneruje bezpečnostní události které vám umožní ověřit konfiguraci.
3. Mitigujte požadavky s uniklými přihlašovacími údaji
Pokud jste na plánu Free, nasaďte navrhovaná pravidlo rate limitingu šablonu dostupnou v Security > Bezpečnostní pravidla.
Když nasadíte pravidlo z této šablony, získáte okamžitou ochranu před IP adresami, které se pokoušejí přistoupit k vaší aplikaci s uniklým heslem více než pětkrát za 10 sekund. Toto pravidlo může útoky zpomalit jejich blokováním po určitou dobu. Případně můžete vytvořit vlastní pravidlo.
Placené plány mají při vytváření pravidla přístup ke granulárnějším možnostem. Pokud jste na placeném plánu, vytvořit vlastní pravidlo které předkládá challenge požadavkům obsahujícím uniklé přihlašovací údaje:
| Pole | Operátor | Hodnota |
|---|---|---|
| User and Password Leaked | rovná se | True |
Pokud používáte Expression Editor, zadejte následující výraz:
(cf.waf.credential_check.username_and_password_leaked)Akce pravidla: Managed Challenge
Toto pravidlo odpovídá požadavkům, u nichž Cloudflare detekuje dříve uniklou sadu přihlašovacích údajů (uživatelské jméno a heslo). Seznam polí poskytovaných detekcí uniklých přihlašovacích údajů viz Pole uniklých přihlašovacích údajů.
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 kontrolu uniklých přihlašovacích údajů s dalšími bezpečnostními funkcemi. Například:
-
Následující výraz odpovídá požadavkům obsahujícím uniklé přihlašovací údaje směřujícím na ověřovací endpoint:
Pole Operátor Hodnota Logika User and Password Leaked rovná se True And URI Path contains /admin/login.phpVýraz při použití editoru:
(cf.waf.credential_check.username_and_password_leaked and http.request.uri.path contains "/admin/login.php") -
Následující výraz odpovídá požadavkům od botů, které obsahují ověřovací přihlašovací údaje:
Pole Operátor Hodnota Logika Authentication detected rovná se True And Bot Score less than 10Výraz při použití editoru:
(cf.waf.auth_detected and cf.bot_management.score lt 10)
Další příklady najdete v Příklady mitigačních pravidel.
Zpracování detekovaných uniklých přihlašovacích údajů na origin serveru
Kromě toho můžete chtít uniklé přihlašovací údaje detekované Cloudflare zpracovat na svém origin server:
-
Zapnout Add Leaked Credentials Checks Header managed transform.
-
Pro požadavky přijaté na vašem origin serveru obsahující
Exposed-Credential-Checkhlavičky můžete koncové uživatele při detekci dříve uniklých přihlašovacích údajů přesměrovat na stránku pro reset hesla.
4. (Volitelné) Nakonfigurujte vlastní umístění detekce
Pro kontrolu uniklých přihlašovacích údajů způsobem, který výchozí konfigurace nepokrývá, přidejte vlastní umístění detekce.
-
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 uniklých přihlašovacích údajů > Konfigurace, vyberte ikonu úprav.
-
Vyberte Add custom username and password location.
-
V Umístění uživatelského jména a Umístění hesla (volitelné), zadejte výrazy pro získání uživatelského jména a hesla z HTTP požadavku. Můžete použít například následující výrazy:
- Umístění uživatelského jména:
lookup_json_string(http.request.body.raw, "user") - Umístění hesla:
lookup_json_string(http.request.body.raw, "secret")
Tato konfigurace bude skenovat příchozí HTTP požadavky obsahující JSON tělo se strukturou podobnou následující:
{"user": "<USERNAME>", "secret": "<PASSWORD>"}Viz
lookup_json_string()dokumentaci pro více informací o této funkci. - Umístění uživatelského jména:
-
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/leaked-credential-checks/detections" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"username": "lookup_json_string(http.request.body.raw, \"user\")",
"password": "lookup_json_string(http.request.body.raw, \"secret\")"
}'Tato dvojice vyhledávacích výrazů (pro uživatelské jméno a heslo) bude skenovat příchozí HTTP požadavky obsahující JSON tělo se strukturou podobnou následující:
{"user": "<USERNAME>", "secret": "<PASSWORD>"}Viz lookup_json_string() dokumentaci pro více informací o této funkci.
Použijte cloudflare_leaked_credential_check_rule resource k přidání vlastního umístění detekce. Například:
resource "cloudflare_leaked_credential_check_rule" "custom_location_example" {
zone_id = var.cloudflare_zone_id
username = "lookup_json_string(http.request.body.raw, \"user\")"
password = "lookup_json_string(http.request.body.raw, \"secret\")"
}Viz lookup_json_string() dokumentaci pro více informací o této funkci.
U vlastních umístění detekce stačí zadat výraz pouze pro uživatelské jméno.
Další příklady vlastních umístění detekce pro různé typy požadavků najdete v Vlastní umístění detekce.
Otestujte svou konfiguraci
Cloudflare poskytuje speciální sadu přihlašovacích údajů (s rozlišením velikosti písmen) pro testování konfigurace detekce uniklých přihlašovacích údajů.
Po zapnutí a konfiguraci detekce můžete v testovacích HTTP požadavcích použít přihlašovací údaje uvedené v této části.
Testovací přihlašovací údaje pro uživatele na plánu Free (fungují i na placených plánech):
- Uživatelské jméno:
CF_LEAKED_USERNAME_FREE - Heslo:
CF_LEAKED_PASSWORD
Testovací přihlašovací údaje pro uživatele na placených plánech (na plánech Free nefungují):
- Uživatelské jméno:
CF_EXPOSED_USERNAMEnebo[email protected] - Heslo:
CF_EXPOSED_PASSWORD
Cloudflare tyto konkrétní přihlašovací údaje považuje za dříve uniklé. Použijte je ve svých testech k ověření chování aktuální konfigurace.