INTEGRITY Dokumentace

Volumetric Abuse Detection

Cloudflare Volumetric Abuse Detection generuje doporučení limitů četnosti požadavků pro jednotlivé koncové body a relace, která se automaticky přizpůsobují změnám ve vzorcích vašeho provozu.

Cloudflare vyhledává zneužívání koncových bodů na základě uživatelského provozu směřujícího k jednotlivým koncovým bodům.

Vaše API může například zaznamenávat různou úroveň provozu na /reset-password endpoint než /login endpoint. Navíc váš /login endpoint může po úspěšné marketingové kampani zaznamenat nadprůměrný provoz.

Tyto dva scénáře ukazují limity tradičního rate limitingu. Provoz se totiž liší nejen mezi jednotlivými endpointy, ale u stejného endpointu se může měnit i v čase. Volumetric Abuse Detection tyto problémy řeší pomocí učení bez dozoru (analýzy vzorců provozu bez předem daných pravidel), díky kterému vytváří samostatné referenční profily pro každý endpoint a postupem času se přizpůsobuje změnám v chování uživatelů.

Limity četnosti požadavků Volumetric Abuse Detection se generují na základě jednotlivých relací, a ne podle IP adres. Díky tomu se při nárůstu provozu k vašemu API snižuje počet falešně pozitivních výsledků, protože limity sledují jednotlivé relace, a ne sdílené IP adresy.

Limity četnosti požadavků Volumetric Abuse Detection slouží k tomu, aby zabránily zjevnému objemovému zneužívání a zároveň minimalizovaly falešně pozitivní výsledky. Pokud chcete zamezit škodlivému provozu botů úplně, podívejte se na Řešení proti botům.

Proces

Volumetric Abuse Detection analyzuje statistiky provozu jednotlivých relací vašeho API a na jejich základě doporučuje limity četnosti požadavků pro jednotlivé endpointy a relace.

Pro přístup ke svým endpointům přejděte na Security > Webová aktiva > Endpointy.

Doporučení se budou dále aktualizovat, pokud se změní vzorec vašeho provozu.

Požadavky

Volumetric Abuse Detection vygeneruje prahové hodnoty limitů četnosti požadavků až poté, co nashromáždí dostatek dat o provozu pro spolehlivá doporučení. Pokud doporučení pro objevený endpoint chybí, provoz pravděpodobně nesplnil potřebná kritéria.

Prahové hodnoty jsou navrhovány pouze pro endpointy, které za posledních sedm dní (nebo od okamžiku prvního zjištění) splňují všechny následující požadavky:

Po přidání identifikátoru relace počítejte s tím, že se doporučení pro omezení frekvence požadavků zobrazí u koncových bodů v Cloudflare dashboardu až po 24 hodinách.

Výpočet doporučení pro omezování počtu požadavků

Vyberte řádek koncového bodu v Endpointy , kde zobrazíte doporučení pro omezení rychlosti. Podrobné zobrazení ukazuje celkovou doporučenou hodnotu a hodnoty podle percentilů (p50, p90, p99).

Cloudflare během dne přepočítává doporučenou hodnotu na základě požadavků za posledních 24 hodin. Pokud se profil vašeho provozu nemění, doporučení se nemusí měnit.

Cloudflare doporučuje použít celkové doporučení limitu četnosti požadavků místo hodnoty jediného percentilu. Celkové doporučení zohledňuje rozptyl napříč všemi vašimi relacemi API. Použití jediné hodnoty percentilu může kvůli vysokému počtu odlehlých hodnot způsobovat falešně pozitivní výsledky.

V Endpointy, můžete si u každého doporučení zobrazit úroveň spolehlivosti a počet jedinečných relací zaznamenaných za posledních sedm dní. Koncové body s menším počtem jedinečných relací a vysokou variabilitou chování uživatelů mají obecně nižší skóre spolehlivosti.

I rate limity s nízkou mírou spolehlivosti mohou pomoci předcházet zneužití API. Pokud je míra spolehlivosti nízká, nastavte pravidlo rate limit nejprve v režimu log a sledujte porušení kvůli falešně pozitivním výsledkům, než přepnete na block.

Vytvořit rate limity

Viz Dokumentace k pravidlům kde najdete více informací o vytvoření pravidla Advanced Rate Limiting.

API

Doporučení pro limity počtu požadavků jsou dostupná přes API pokud chcete limity četnosti postupem času dynamicky aktualizovat.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
Získejte webovou nebo API operaci
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/api_gateway/operations/$OPERATION_ID" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Zvláštní případy

Limit počtu požadavků podle uživatele (JWT claim)

Požadavky můžete omezovat na základě libovolného nároku uvnitř JSON Web Tokenu (JWT), například:

Omezování počtu požadavků na základě hodnot JWT claim funguje pouze u platných JSON Web Tokenů. Pokud na dané cestě neblokujete neplatné JSON Web Tokeny, Všechny deklarace JWT budou započítány a případně blokovány pokud je v Point of Presence (PoP) zjištěn vysoký provoz.

Musíte také počítat s JWT claimem, který uživatele jednoznačně identifikuje. Pokud zvolíte claim, který je stejný pro mnoho vašich uživatelů, budou se jejich rate limity počítat dohromady.

Limit počtu požadavků podle úrovně uživatele

Pokud na svém webu nebo v aplikaci nabízíte více úrovní a chcete podle nich vynucovat rate limiting, například:

Můžete postupovat podle níže uvedeného příkladu pravidla pro omezení četnosti požadavků:

Příklad výrazu pravidla
(http.request.method eq "GET" and
http.host eq "<YOUR_DOMAIN>" and
http.request.uri.path matches "</EXAMPLE_PATH>" and
lookup_json_string(http.request.jwt.claims["<JWT_TOKEN_CONFIGURATION_ID>"][0], "aud") eq "free-tier"

Omezení

API Shield doporučení vypočítá vždy, jakmile jsou nakonfigurované identifikátory relace. Chcete-li zapnout omezení frekvence požadavků založené na relaci, předplaťte si Advanced Rate Limiting.

Dostupnost

Volumetric Abuse Detection je dostupný pouze pro zákazníky s plánem Enterprise. Pokud jste zákazníkem Enterprise a máte o tento produkt zájem, kontaktujte svůj tým pro správu účtu.