Zabezpečení webových aplikací pomocí Azure Web Application Firewall (WAF)
14.01.2025
Tento technický a vzdělávací článek má za cíl vést bezpečnostní analytiky, IT administrátory a systémové inženýry při implementaci a konfiguraci Azure Web Application Firewall (WAF) k ochraně webových aplikací před běžnými útoky. V digitálním prostředí, kde jsou webové aplikace vstupní branou do mnoha podniků, se staly častým cílem různých kybernetických útoků, jako je SQL injection, cross-site scripting (XSS) a dalších 10 hlavních zranitelností OWASP. Azure WAF poskytuje základní vrstvu ochrany ke zmírnění těchto rizik a zajišťuje dostupnost dat, integritu a důvěrnost [1].
Úvod
Webové aplikace jsou kritickými součástmi IT infrastruktury prakticky všech organizací. Jejich vystavení internetu je však činí zranitelnými vůči útokům, které mohou ohrozit data, přerušit služby a poškodit pověst společnosti. Web Application Firewall (WAF) funguje jako reverzní proxy, kontroluje HTTP/HTTPS provoz přicházející a opouštějící webovou aplikaci, identifikuje a blokuje škodlivé požadavky předtím, než se dostanou na aplikační server. Azure WAF, který je k dispozici jako funkce Azure Application Gateway nebo Azure Front Door, poskytuje centralizovanou a škálovatelnou ochranu pro vaše webové aplikace hostované v Azure nebo dokonce v hybridních prostředích [2].
Tato praktická příručka pokryje základní koncepty Azure WAF, jeho režimy provozu (detekce a prevence), konfiguraci zásad WAF se spravovanými sadami pravidel (OWASP Core Rule Set – CRS) a vlastními pravidly. Budou poskytnuty podrobné pokyny pro nasazení WAF s Azure Application Gateway, testování jeho účinnosti proti běžným útokům a ověřování výsledků, stejně jako diskuse o osvědčených postupech a tipy pro odstraňování problémů. Cílem je umožnit čtenáři konfigurovat a spravovat Azure WAF autonomně, profesionálně a spolehlivě a chránit své webové aplikace před nejrozšířenějšími hrozbami.
Proč je Azure WAF zásadní pro ochranu webových aplikací?
- Komplexní ochrana: Chrání před běžnými webovými útoky, včetně SQL injection, cross-site scripting (XSS), začlenění souborů, útoků botů a dalších 10 hlavních zranitelností OWASP [3].
- Spravovaná pravidla: Používá sady spravovaných pravidel (jako je OWASP CRS), které jsou automaticky aktualizovány společností Microsoft a zajišťují ochranu před nejnovějšími hrozbami bez ručního zásahu.
- Vlastní pravidla: Umožňuje vytvářet vlastní pravidla, která splňují požadavky na zabezpečení konkrétních aplikací, blokují specifické vzorce provozu nebo chrání před zranitelnostmi, které nepokrývají spravovaná pravidla.
- Flexibilní provozní režimy: Funguje v režimu „Detekce“ (pouze monitoruje a zaznamenává útoky) nebo „Prevence“ (aktivně blokuje útoky), což umožňuje postupnou kontrolu implementace.
- Nativní integrace s Azure: Bezproblémová integrace s Azure Application Gateway (pro interní aplikace) a Azure Front Door (pro globální aplikace) a nabízí kompletní řešení pro poskytování aplikací s vestavěným zabezpečením.
- Škálovatelnost a vysoká dostupnost: Využijte škálovatelnost a vysokou dostupnost služeb Azure pro doručování aplikací, abyste zajistili, že ochrana bude vždy aktivní a výkonná.
- Shoda: Pomáhá organizacím splnit regulační požadavky a bezpečnostní standardy, které vyžadují ochranu webových aplikací.
Předpoklady
K implementaci Azure WAF budete potřebovat následující položky:
- Aktivní předplatné Azure: Předplatné Azure k vytváření a správě prostředků.
- Administrativní přístup: Účet s nezbytnými oprávněními k vytváření a správě zdrojů, jako jsou aplikační brány, přední dveře a zásady WAF (např.
CollaboratorneboNetwork Administrator). - Stávající webová aplikace: Webová aplikace (hostovaná v Azure nebo jinde), kterou chcete chránit. Pro tento návod budeme předpokládat jednoduchou webovou aplikaci, která bude přístupná přes Application Gateway.
- Virtuální síť (VNet) a podsítě: Virtuální síť a podsítě nakonfigurované pro Application Gateway a webovou aplikaci.
Krok za krokem: Implementace Azure WAF s Application Gateway
Pojďme nakonfigurovat Azure WAF pro ochranu awebové aplikace pomocí Azure Application Gateway.
1. Vytvoření Azure Application Gateway s WAF
- Otevřete prohlížeč a přejděte na Azure Portal:
https://portal.azure.com. - Přihlaste se pomocí účtu, který má potřebná oprávnění.
- Do horního vyhledávacího pole zadejte
Application Gatewaya vyberte ji z výsledků. -
Klikněte na
+ Vytvořit. -
Základy:
- Předplatné: Vyberte své předplatné.
- Skupina prostředků: Vytvořte novou skupinu prostředků (např.
rg-waf-appgw) nebo vyberte existující. - Název brány aplikace: Zadejte název (např.:
appgw-waf-01). - Region: Vyberte region.
- Tier: Vyberte
Standard v2(WAF je k dispozici pouze v tier v2). - Povolit WAF: Vyberte „Ano“.
- Název zásady WAF: Pojmenujte zásadu WAF (např. „wafpolicy-appgw-01“).
- Režim WAF: Začněte s „Detekcí“ pro sledování a úpravu pravidel před přechodem na „Prevence“.
-
Klikněte na
Další: Frontends. -
Frontends:
- Typ adresy IP rozhraní: Vyberte možnost „Veřejné“.
- Veřejná IP adresa: Klikněte na
+Přidat novýa pojmenujte veřejnou IP adresu (např.:pip-appgw-waf).
-
Klikněte na
Další: Backends. -
Backendy:
- Klikněte na
+Přidat backend pool. - Název backendového fondu: Pojmenujte jej (např.
app-backend-pool). - Přidat backendový fond bez cílů: Vyberte „Ne“.
- Typ cíle: Vyberte
IP adresa nebo FQDN. - IP adresa/FQDN: Zadejte IP adresu nebo FQDN vaší webové aplikace (např.
10.0.0.4pro VM ve virtuální síti nebo FQDN App Service). - Klikněte na „Přidat“.
- Klikněte na
-
Klikněte na
Další: Konfigurace. -
Nastavení:
- Nastavení směrování: Klikněte na
+Přidat pravidlo směrování. - Název pravidla: Pojmenujte jej (např.
pravidlo-http). - Priorita: Ponechte výchozí.
Posluchač:
- Jméno posluchače: Zadejte jméno (např.
posluchač-http). - Frontend IP Address: Vyberte vytvořenou veřejnou IP adresu.
- Protokol: Vyberte
HTTP(pro spuštění můžete později přidat HTTPS). Port:80.
- Jméno posluchače: Zadejte jméno (např.
- Cíle backend:
- Typ cíle: Vyberte
Backend Pool. - Backend pool: Vyberte
app-backend-pool. - Konfigurace backendu: Klikněte na
+Přidat nový.- Název zadního nastavení: Pojmenujte jej (např.
http-setting). - Backend protocol:
HTTP. - Backend port:
80(nebo port vaší webové aplikace). - Použít vlastní sondu: Vyberte „Ne“ (pro tento jednoduchý příklad).
- Klikněte na „Přidat“.
- Název zadního nastavení: Pojmenujte jej (např.
- Typ cíle: Vyberte
- V pravidle směrování klikněte na „Přidat“.
- Nastavení směrování: Klikněte na
-
Klikněte na
Další: Tagy. - Klikněte na
Další: Zkontrolovat + vytvořit. -
Zkontrolujte nastavení a klikněte na „Vytvořit“.
- Vysvětlení: Tento proces vytvoří aplikační bránu s přidruženým WAF. WAF začne kontrolovat provoz v režimu „Detekce“.
2. Konfigurace spravovaných a vlastních pravidel WAF
Po nasazení můžete upravit zásady WAF.
- V Azure Portal přejděte do své Application Gateway (
appgw-waf-01). - V levém navigačním panelu pod
Nastavenívyberte Web Application Firewall. -
Klikněte na název vaší zásady WAF (
wafpolicy-appgw-01). -
Režim zásad: V sekci „Přehled“ můžete změnit „Režim“ z „Detekce“ na „Prevence“, pokud jste si jisti, že vaše pravidla neblokují legitimní provoz.
-
Spravovaná pravidla:
- V levém navigačním podokně zásad WAF vyberte Spravovaná pravidla.
- Ujistěte se, že
Výchozí sada pravidel OWASP(např.OWASP_CRS/3.2) jePovoleno. - Konkrétní pravidla ve spravované sadě můžete zakázat, pokud způsobí falešné poplachy, ale udělejte to opatrně a pouze po pečlivém zvážení.
-
Vlastní pravidla:
- V levém navigačním podokně zásad WAF vyberte Vlastní pravidla.
- Klikněte na
+Přidat vlastní pravidlo. - Název pravidla: Pojmenujte jej (např.:
BloquearIPMalicioso). - Priorita: Nastavte prioritu (menší čísla mají vyšší prioritu).
** Typpravidlo: „Shoda“.
Podmínka**:
- Typ proměnné:
RemoteAddress. - Operátor:
IPMatch. - Hodnota: Zadejte IP adresu nebo rozsah CIDR, který chcete blokovat (např.:
192.168.1.10/32).
- Typ proměnné:
-
Akce: Vyberte „Blokovat“.
-
Vysvětlení: Vlastní pravidla umožňují definovat logiku blokování na základě specifických kritérií, jako jsou IP adresy, hlavičky HTTP, řetězce dotazů atd.
-
Klikněte na Přidat a poté na Uložit do zásad WAF.
3. Monitorování WAF a prohlížení protokolů
Monitorování je nezbytné pro pochopení účinnosti WAF a přizpůsobení zásad.
- V Azure Portal přejděte do své Application Gateway (
appgw-waf-01). - V levém navigačním panelu pod
Monitoringvyberte Diagnostické protokoly. - Klikněte na
+Přidat diagnostickou konfiguraci. - Název diagnostické konfigurace: Pojmenujte ji (např.:
diag-waf). - Kategorie protokolu: Zkontrolujte
ApplicationGatewayAccessLogaApplicationGatewayFirewallLog. - Destination Details: Vyberte
Send to Log Analytics workspacea zvolte svůj pracovní prostor. -
Klikněte na Uložit.
-
Po několika minutách přejděte do pracovního prostoru Log Analytics.
- V levém navigačním panelu vyberte Protokoly.
- K analýze protokolů WAF použijte dotazy KQL (Kusto Query Language):
- Chcete-li zobrazit všechny události WAF:
kusto AzureDiagnostics | kde ResourceProvider == "MICROSOFT.NETWORK" | kde Kategorie == "ApplicationGatewayFirewallLog" | project TimeGenerated, hostname_s, requestUri_s, Message, action_s, policy_s | objednávka podle TimeGenerated desc - Chcete-li zobrazit blokované útoky (pokud je WAF v režimu "Prevence"):
kusto AzureDiagnostics | kde ResourceProvider == "MICROSOFT.NETWORK" | kde Kategorie == "ApplicationGatewayFirewallLog" | kde action_s == "Blokováno" | project TimeGenerated, hostname_s, requestUri_s, Message, ruleId_s | objednávka podle TimeGenerated desc
- Chcete-li zobrazit všechny události WAF:
Validace a testování
Testování WAF je klíčové pro zajištění toho, že blokuje očekávané útoky a neblokuje legitimní provoz (falešné poplachy).
1. Testování běžných útoků (SQL Injection, XSS)
-
Scénář: Zkuste přistupovat k vaší webové aplikaci přes Application Gateway (pomocí veřejné IP nebo FQDN) a simulujte útok SQL injection na URL nebo parametr formuláře.
- Příklad URL s pokusem o vložení SQL (nespouštějte v produkci bez autorizace):
http://<seu_ip_publico_appgw>/index.php?id=1' NEBO '1'='1 - Příklad adresy URL s pokusem XSS:
http://<seu_ip_publico_appgw>/search?query=<script>alert('XSS')</script>
- Příklad URL s pokusem o vložení SQL (nespouštějte v produkci bez autorizace):
-
Očekávaná akce (režim detekce): Pokud je WAF v režimu
Detekce, požadavek musí být povolen, ale protokoly WAF v Log Analytics musí zaznamenat útok a pravidlo, které jej detekovalo. -
Očekávaná akce (režim prevence): Pokud je WAF v režimu „Prevence“, měl by být požadavek zablokován a prohlížeč by měl zobrazit chybovou stránku WAF (obvykle chyba HTTP 403 Forbidden).
-
Ověření: Zkontrolujte protokoly WAF v Log Analytics a potvrďte, že útoky byly detekovány (v režimu detekce) nebo zablokovány (v režimu prevence).
2. Testování vlastních pravidel (blokování IP adres)
- Scénář: Pokuste se přistupovat k vaší webové aplikaci z adresy IP, kterou jste nakonfigurovali ve vlastním pravidle blokování IP.
- Očekávaná akce: Přístup by měl být zablokován a prohlížeč by měl zobrazit chybovou stránku WAF.
- Ověření: Zkontrolujte protokoly WAF v Log Analytics a potvrďte, že IP byla blokována vlastním pravidlem.
Bezpečnostní tipy a doporučené postupy
- Spustit v režimu detekce: Na začátku vždy nasaďte WAF v režimu „detekce“. Před přepnutím do režimu „Prevence“ pečlivě sledujte protokoly, abyste identifikovali falešné poplachy a upravte pravidla.
- Ladění WAF: Jemné doladění je zásadní. Zakažte specifická pravidla, která generují falešná pozitiva (blokování legitimního provozu), nebo přidejte pravidla vyloučení pro konkrétní parametry. Vyhněte se deaktivaci celých sad pravidel.
- Vlastní pravidla: Použijte vlastní pravidla ke zpracování specifických požadavků na zabezpečení vaší aplikaceo nebo ke zmírnění nově objevených zranitelností před aktualizací spravovaných pravidel.
- Aktualizace CRS: Udržujte svou spravovanou sadu pravidel (OWASP CRS) aktuální, abyste zajistili ochranu před nejnovějšími hrozbami. Azure WAF se obvykle aktualizuje automaticky, ale zkontrolujte verzi.
- Integrace s Azure Front Door: Pro globální webové aplikace nebo ty, které vyžadují optimalizaci výkonu a pokročilé směrování, zvažte nasazení WAF na Azure Front Door. To poskytuje ochranu na okraji globální sítě společnosti Microsoft.
- Monitorování a upozornění: Konfigurace výstrah v Azure Monitor pro události zabezpečení WAF, jako jsou zablokované útoky nebo anomálie. Integrujte protokoly WAF se svým SIEM (např. Microsoft Sentinel) pro centralizované zobrazení.
- Pravidelné bezpečnostní testování: Pravidelně provádějte penetrační testy a skenování zranitelnosti ve svých webových aplikacích, abyste identifikovali nová zranitelnost a ověřili účinnost WAF.
- Princip nejmenšího oprávnění: Zajistěte, aby oprávnění ke konfiguraci a správě zásad WAF měli pouze oprávnění uživatelé.
Běžné odstraňování problémů
- WAF neblokuje očekávané útoky:
- Zkontrolujte, zda je WAF v režimu „Prevence“ a ne v režimu „Detekce“.
- Ujistěte se, že je povolena sada spravovaných pravidel (OWASP CRS).
- Zkontrolujte protokoly WAF v Log Analytics, abyste zjistili, zda byl útok detekován a které pravidlo bylo spuštěno. Možná budete muset upravit citlivost CRS nebo přidat vlastní pravidlo.
- Ujistěte se, že neexistují žádná pravidla vyloučení nebo seznamy povolených, které povolují škodlivý provoz.
- WAF blokuje legitimní provoz (falešně pozitivní):
- Začněte analýzou svých protokolů WAF v Log Analytics, abyste zjistili, které pravidlo blokuje legitimní provoz.
- Pro identifikované pravidlo můžete:
- Zakázat konkrétní pravidlo (poslední možnost).
- Přidejte pravidlo vyloučení pro konkrétní parametr nebo záhlaví, které způsobuje falešně pozitivní výsledek.
- Upravte práh hodnocení anomálií (pokud používáte CRS v režimu hodnocení anomálií).
- Zvažte dočasný návrat do režimu „Detekce“, abyste upravili pravidla.
- Snížení výkonu aplikace po povolení WAF:
- WAF přidává malé množství latence kvůli dopravní kontrole. Ujistěte se, že aplikační brána nebo přední dvířka jsou správně dimenzovány.
- Zkontrolujte protokoly výkonu Application Gateway v Azure Monitor.
- WAF není spojen se správnou aplikací:
- Ověřte, zda je zásada WAF přidružena ke správné aplikační bráně nebo předním dveřím.
- Ujistěte se, že provoz vaší webové aplikace skutečně prochází přes Application Gateway/Front Door s povoleným WAF.
Závěr
Azure Web Application Firewall (WAF) je základní obranou pro ochranu webových aplikací před nesčetnými kybernetickými útoky. Tím, že poskytuje vrstvu kontroly provozu a filtrování na okraji sítě, funguje WAF jako štít, který chrání před známými zranitelnostmi a hrozbami zero-day. Flexibilita používání spravovaných a vlastních sad pravidel spolu s nativní integrací se službami poskytování aplikací Azure dělá z Azure WAF robustní a škálovatelné řešení pro jakoukoli organizaci. Pečlivou implementací, vyladěním politik a nepřetržitým monitorováním mohou bezpečnostní profesionálové zajistit, že jejich webové aplikace zůstanou bezpečné, dostupné a vyhovující, a posílí tak celkovou bezpečnostní pozici organizace vůči neustále se vyvíjejícímu prostředí hrozeb.
Reference:
[1] Microsoft Learn. Co je Azure Web Application Firewall?. Dostupné na: https://learn.microsoft.com/pt-br/azure/web-application-firewall/overview [2] Microsoft Learn. Web Application Firewall (WAF) na Azure Application Gateway. Dostupné na: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/ag-overview [3] Nadace OWASP. OWASP Top 10. Dostupné na: https://owasp.org/www-project-top-ten/ [4] Microsoft Learn. * Vytvořte zásady brány firewalll Web Application Gateway (WAF) pro Azure Application Gateway. Dostupné na: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/create-waf-policy-ag [5] Microsoft Learn. Pravidla a skupiny pravidel WAF CRS. Dostupné na: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/application-gateway-waf-collection-rules [6] Microsoft Learn. Monitorování a protokolování WAF*. Dostupné na: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/waf-diagnostics