INTEGRITY Dokumentace

Zjednodušené nasazení WAF napříč zónami a aplikacemi

Úvod

Bezpečnostní perimetry jsou dnes méně jasně vymezené než tradiční nasazení typu „hrad a příkop“, které bylo v minulosti oblíbené. V rámci pevně daného perimetru bylo poměrně snadné zabezpečit více aplikací pomocí jediného nasazení Web Application Firewall (WAF) uvnitř datacentra. Dnes už tento přístup neposkytuje dostatečnou flexibilitu, protože aplikace a služby přesahují hranice tradičního datacentra. Existuje několik dobrých důvodů, proč sítě a služby konfigurovat hybridním způsobem a přecházet na SaaS platformy, a proto se vyplatí přístup k WAF pro tento scénář aktualizovat.

Cloudová řešení WAF dokážou zvládnout rozšiřování perimetru díky flexibilnímu modelu nasazení, který pokrývá aplikace a služby nasazené on-premises, v cloudových prostředích IaaS a PaaS i v hybridních prostředích.

Nesprávná implementace cloudového WAF zároveň může vést k fragmentaci a duplicitě bezpečnostních zásad, což zvyšuje nároky jak na údržbu, tak na monitorování. Kromě zjevného ekonomického dopadu takové neefektivity může nižší efektivita zhoršit i samotný bezpečnostní stav. To může v konečném důsledku vést k bezpečnostním incidentům různé závažnosti podle konkrétního scénáře.

Pro koho je tento dokument určen a co se v něm dozvíte?

Tento průvodce návrhem je určen bezpečnostním a síťovým administrátorům či architektům, kteří chtějí zavést flexibilní cloudovou konfiguraci zabezpečení WAF. Tato konfigurace může pokrývat více aplikací, domén a služeb nasazených v hybridním prostředí.

Cloudflare nabízí komplexní řešení Application Security & Performance, která zahrnují vysoce konfigurovatelný cloudový Web Application Firewall (WAF).

V tomto průvodci se dozvíte:

Ukázkový scénář

Většina zákazníků Cloudflare využívá v rámci jednoho Account (nebo Enterprise Organization) více Cloudflare Zones. Každá Cloudflare Zone je obvykle namapována na doménu druhé úrovně (například example.com), a všechny její subdomény jsou poté zpracovávány v rámci dané zóny Cloudflare (web1.example.com, web2.example.com atd.).

V tomto nastavení funguje Cloudflare jako reverzní proxy založená na DNS. Každý plně kvalifikovaný název domény (FQDN) je nakonfigurován ve své zóně Cloudflare a odkazuje na origin server zákazníka. Cloudflare přitom nijak nerozlišuje, čím nebo kde tento origin server je. Může jít o nasazení on-premises, o virtuální stroj běžící v cloudu, nebo o SaaS službu poskytovanou třetí stranou.

Často více FQDN směřuje na stejnou sdílenou webovou infrastrukturu, ke které se přistupuje například pomocí IP adresy nebo jiného FQDN. Některé FQDN mohou také směřovat na vyhrazenou originovou infrastrukturu nebo na externí SaaS endpoint.

V mnoha případech zákazníci Cloudflare nakonec spravují velké množství zón Cloudflare (například example.com,example.org, myappexample.com a tak dále) v rámci jediného účtu Cloudflare a mnoho FQDN v rámci každé zóny. Mnoho FQDN napříč více zónami přitom často směřuje na sdílenou webovou infrastrukturu v pozadí.

Můžete se například ocitnout v následujícím (nebo podobném) scénáři:

Příklad tohoto scénáře je znázorněn na diagramu níže: Diagram znázorňující příkladový scénář s více doménami, subdoménami a webovými aplikacemi

Požadavky na WAF

Z hlediska konfigurace WAF vyvolává tento scénář zajímavé požadavky:

V tomto Design Guide se podíváme na to, jak funguje Cloudflare WAF a jaké nástroje jsou k dispozici pro splnění všech výše uvedených architektonických požadavků.

Cloudflare Web Application Firewall

WAF Cloudflare funguje na úrovni zóny i účtu. Existují různé Fáze WAF (http_request_firewall_custom, http_ratelimit a http_request_firewall_managed) které odpovídají Custom Rules, Rate Limiting Rules a Managed Rules. Tyto fáze existují jak na úrovni účtu, tak na úrovni zóny. Další informace najdete další informace najdete v následující dokumentaci. Je důležité si uvědomit, že sady pravidel na úrovni Account se vyhodnocují dříve než sady pravidel na úrovni zóny.

Příklad použití - implementace Cloudflare Managed Ruleset

Pro účely tohoto průvodce budeme vycházet z výše uvedeného ukázkového scénáře a požadavků na WAF. Máte jeden Cloudflare Account (nebo Enterprise Organization), ve kterém máte onboardované dvě domény druhé úrovně.

Předpokládejme, že za šesti FQDN ve dvou doménách se skrývá šest aplikací. Pro tyto aplikace chcete uplatnit základní úroveň zabezpečení WAF. U dvou z těchto šesti aplikací je ale potřeba zvláštní přístup:

Tento scénář znázorňuje následující obrázek:

Diagram znázorňující, jak lze příkladový scénář namodelovat v Cloudflare Account s více zónami
Obrázek 2: Příklad scénáře nyní zahrnutý v účtu Cloudflare s více zónami.

Použití WAF na úrovni Account ke snížení nároků na konfiguraci

Použijeme Cloudflare Managed Ruleset jako příklad, přičemž tento postup lze použít i pro další pravidla Cloudflare Managed Rules, Rate Limiting Rules a Custom Rules.

Poté můžete zvolit následující postup:

V praxi použití Managed rulesets WAF na úrovni účtu, můžete nasadit tři instance našeho Managed Ruleset. Každá instance bude mít vlastní Custom Filter Expression, které ověří, že hostname požadavku HTTPS patří mezi FQDN uvedené v seznamu:

Celou konfiguraci znázorňuje následující diagram:

Diagram znázorňující implementovanou konfiguraci WAF na úrovni účtu
Obrázek 3: Implementace Account WAF, která pomocí opakovaně použitelných konfigurací chrání více aplikací s různými hostname.

Toto nastavení poskytne tři instance Managed Ruleset, každou kalibrovanou pro danou skupinu aplikací.

Pokud budete v budoucnu potřebovat chránit další aplikace, stačí přidat FQDN nové aplikace do filtrovacího výrazu. Většinou se aplikace přidávají do standardní instance sady pravidel, která používá doporučenou konfiguraci Cloudflare. Další běžnou strategií je přidávat nové aplikace do Log instanci režimu, aby bylo možné ji monitorovat a případně přejít na Default sadu pravidel režimu nebo v případě potřeby na konkrétnější variantu.

Další aspekty

Ladění falešně pozitivních detekcí

Sady pravidel (rulesets), a zejména Managed Ruleset, jsou už ze strany Cloudflare jemně vyladěny tak, aby se předešlo falešně pozitivním výsledkům. U většiny aplikací je lze nasadit prakticky bez úprav nebo jen s minimálními zásahy. Zákazníci proto ve většině případů pracují přímo s výchozí konfigurací sad pravidel a přizpůsobují ji jen tehdy, když je to potřeba.

Pokud toto odpovídá vaší situaci, můžete výše uvedené nastavení zjednodušit následujícím způsobem pomocí Výjimky:

Tento přístup může být jednodušší, pokud existuje jen málo výjimek z běžného stavu a počáteční kalibrace potvrdí, že jemné doladění, které již Cloudflare provedl za účelem minimalizace falešně pozitivních výsledků, je pro vaši situaci vhodné.

Používání Lists

Cloudflare umožňuje vytvářet seznamy hostname. V takovém případě lze Filter expression upravit tak, aby odkazoval na tyto proměnné seznamu.

Seznamy pak můžete přímo upravovat a znovu je používat napříč více rulesety. Stejný seznam můžete použít například pro Cloudflare Managed Rules i pro OWASP Ruleset a Rate Limiting. Vaše filtry bude přímo odkazovat na seznamy, což znamená přehlednější a snáze udržovatelnou konfiguraci.

Při používání seznamů je také mnohem snazší zavést „záchytné pravidlo“, které se vyhodnocuje jako poslední. Tím lze zavést například Default Cloudflare Managed Ruleset, pokud host v požadavku HTTPS není zahrnut v žádném z vašich seznamů. Tím se zajistí, že se vždy uplatní výchozí konfigurace WAF Managed Rules, pro případ, že by některé z vašich aplikací nebyly omylem přidány do seznamů.

Používání automatizací

Konfiguraci WAF lze spravovat prostřednictvím volání API a Terraform ↗. To se hodí zejména tehdy, když chcete tento přístup rozšířit na mnohem více zón a FQDN a vyhnout se opakovaným ručním úkonům v Dashboardu.

Můžete si například vytvořit výchozí konfigurační soubor Terraform pro definici Rulesets a Lists, který pak podle potřeby udržujete a aplikujete bez nutnosti provádět změny v Cloudflare Dashboard.

Nemíchejte konfiguraci na úrovni účtu a zóny

Pokud je to možné, Cloudflare doporučuje udržovat konfiguraci na úrovni účtu (Account), zejména pokud bude zóna Cloudflare obsahovat víc záznamů DNS, z nichž každý vyžaduje vlastní konfiguraci.

U WAF na úrovni zóny můžete nasadit jen jednu instanci každé sady pravidel (Managed Rules, OWASP Rules atd.), takže řešení speciálních scénářů na této úrovni může být složitější, nebo dokonce nemožné.

Custom Rules a Rate Limiting Rules

Výše popsaný přístup pro Managed Rules lze použít i na Custom Rulesets a Rate Limiting, čímž se tato flexibilita rozšiřuje na všechny bezpečnostní nástroje WAF, které máte k dispozici.

Pokud vaše konfigurace není specifická pro jednu zónu, Cloudflare doporučuje ji implementovat na úrovni Account.

Další informace najdete v následujících zdrojích:

Souhrn

Závěrem tento návrhový průvodce ukazuje, jak lze implementovat flexibilní konfigurace WAF pokrývající více aplikací a domén. Popsaný přístup snižuje úsilí potřebné k nasazení, údržbě a aktualizaci bezpečnostní konfigurace WAF.