Zabezpečení webových aplikací pomocí Azure Web Application Firewall (WAF)

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:

  1. Aktivní předplatné Azure: Předplatné Azure k vytváření a správě prostředků.
  2. 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ř. Collaborator nebo Network Administrator).
  3. 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.
  4. 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

  1. Otevřete prohlížeč a přejděte na Azure Portal: https://portal.azure.com.
  2. Přihlaste se pomocí účtu, který má potřebná oprávnění.
  3. Do horního vyhledávacího pole zadejte Application Gateway a vyberte ji z výsledků.
  4. Klikněte na + Vytvořit.

  5. 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“.
  6. Klikněte na Další: Frontends.

  7. 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).
  8. Klikněte na Další: Backends.

  9. 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.4 pro VM ve virtuální síti nebo FQDN App Service).
    • Klikněte na „Přidat“.
  10. Klikněte na Další: Konfigurace.

  11. 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.
    • 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“.
    • V pravidle směrování klikněte na „Přidat“.
  12. Klikněte na Další: Tagy.

  13. Klikněte na Další: Zkontrolovat + vytvořit.
  14. 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.

  1. V Azure Portal přejděte do své Application Gateway (appgw-waf-01).
  2. V levém navigačním panelu pod Nastavení vyberte Web Application Firewall.
  3. Klikněte na název vaší zásady WAF (wafpolicy-appgw-01).

  4. 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.

  5. 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) je Povoleno.
    • 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í.
  6. 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).
    • 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.

  7. 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.

  1. V Azure Portal přejděte do své Application Gateway (appgw-waf-01).
  2. V levém navigačním panelu pod Monitoring vyberte Diagnostické protokoly.
  3. Klikněte na +Přidat diagnostickou konfiguraci.
  4. Název diagnostické konfigurace: Pojmenujte ji (např.: diag-waf).
  5. Kategorie protokolu: Zkontrolujte ApplicationGatewayAccessLog a ApplicationGatewayFirewallLog.
  6. Destination Details: Vyberte Send to Log Analytics workspace a zvolte svůj pracovní prostor.
  7. Klikněte na Uložit.

  8. Po několika minutách přejděte do pracovního prostoru Log Analytics.

  9. V levém navigačním panelu vyberte Protokoly.
  10. 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

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)

  1. 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>
  2. 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.

  3. 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).

  4. 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)

  1. Scénář: Pokuste se přistupovat k vaší webové aplikaci z adresy IP, kterou jste nakonfigurovali ve vlastním pravidle blokování IP.
  2. Očekávaná akce: Přístup by měl být zablokován a prohlížeč by měl zobrazit chybovou stránku WAF.
  3. 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