AWS WAF
AWS Web Application Firewall
Firewall aplikacji webowych w chmurze AWS. Chron swoje aplikacje przed SQL injection, XSS, botami i innymi zagrożeniami warstwy 7 - zintegrowany z CloudFront, ALB i API Gateway.
AWS WAF (Web Application Firewall) to zarzadzany firewall warstwy aplikacji (Layer 7), ktory chroni Twoje aplikacje webowe i API przed typowymi atakami internetowymi. Zamiast konfigurowac wlasny WAF na serwerze, dostajesz w pelni zarzadzane rozwiazanie zintegrowane z CloudFront, Application Load Balancer i API Gateway.
WAF pozwala tworzyc Web ACL (Access Control Lists) z regulami, ktore filtruja ruch HTTP/HTTPS. Mozesz blokowac SQL injection, cross-site scripting (XSS), ograniczac ruch z konkretnych krajow, ustawiac rate limiting i korzystac z gotowych Managed Rule Groups od AWS i partnerow z Marketplace.
AWS WAF przetwarza reguly w kolejnosci priorytetu (od najnizszego numeru). Jezeli request pasuje do reguly z akcja Block, jest natychmiast odrzucany - pozostale reguly nie sa sprawdzane. Dlatego kolejnosc regul ma ogromne znaczenie!
Zacznij od AWS Managed Rule Groups (Core Rule Set + Known Bad Inputs) w trybie COUNT (nie BLOCK) przez tydzien. Analizuj logi w S3, upewnij sie ze nie blokujesz legit traffic, dopiero potem przelacz na BLOCK. Uzywaj Bot Control jesli masz problem z scraping - ale uwaga, kosztuje $10/mies. extra + $1/mln inspekcji.
AWS Managed Rules pokrywaja ~80% typowych atakow, ale nie zastepuja bezpiecznego kodu. WAF nie ochroni Cie przed business logic flaws, broken authentication czy IDOR. Traktuj WAF jako dodatkowa warstwe, nie jedyna linie obrony. Rate-based rules ustaw ostroznie - zbyt niski limit zablokuje prawdziwych uzytkownikow.
AWS WAF (Web Application Firewall) to zarzadzany firewall warstwy aplikacji (L7), ktory chroni aplikacje webowe przed typowymi atakami jak SQL injection, XSS czy DDoS. WAF analizuje kazde zadanie HTTP/HTTPS i na podstawie zdefiniowanych regul decyduje, czy je przepuscic, zablokowac, czy oznaczyc do dalszej analizy.
Tworzenie Web ACL
Web ACL (Access Control List) to glowny kontener regul WAF. Tworzy sie go w regionie, w ktorym dziala chroniony zasob (ALB, API Gateway) lub globalnie dla CloudFront. Web ACL ma domyslna akcje (Allow lub Block) stosowana do zadan, ktore nie pasuja do zadnej reguly. Kazdy Web ACL moze chronic wiele zasobow, ale kazdy zasob moze miec przypisany tylko jeden Web ACL.
Rule Groups - grupy regul
Rule Groups to kolekcje regul WAF zarzadzane jako jedna jednostka. Moga byc: AWS Managed Rules (gotowe zestawy od AWS), AWS Marketplace Rules (od vendorow security) lub Twoje wlasne (custom). Kazda rule group ma capacity units (WCU) - budzet obliczeniowy. Web ACL ma limit 5000 WCU - zarzadzaj nim swiadomie, bo zlozzone reguly regex zjadaja wiecej WCU niz proste IP match.
AWS Managed Rules - gotowa ochrona
AWS dostarcza zarzadzane zestawy regul aktualizowane automatycznie. Core Rule Set (CRS) chroni przed OWASP Top 10: SQL injection, XSS, path traversal, local file inclusion. Dodatkowe zestawy: Known Bad Inputs (Log4j, Spring4Shell), Amazon IP Reputation List (znane zlosliwe IP), Anonymous IP List (TOR, VPN, proxy). Wlacz CRS jako minimum dla kazdej aplikacji webowej.
Custom Rules - reguly dopasowane do aplikacji
Custom Rules pozwalaja tworzyc reguly specyficzne dla Twojej aplikacji. Mozesz filtrowac po: URI path, query string, headers, body, HTTP method, IP address, geolokalizacji (kraj). Warunki lacza sie operatorami AND/OR/NOT. Regex pattern sets pozwalaja na zlozzone dopasowania - np. blokowanie requestow z podejrzanymi User-Agentami lub nietypowymi wzorcami w parametrach URL.
Rate-based Rules - ochrona przed DDoS
Rate-based rules automatycznie blokuja adresy IP, ktore przekraczaja zdefiniowany prog zadan w 5-minutowym oknie. Prog to minimum 100 zadan na 5 minut. Mozesz tworzyc scope-down statements - np. rate limiting tylko na /api/login (ochrona przed brute force) lub tylko dla zadan z konkretnego kraju. Po spadku ruchu ponizej progu, IP jest automatycznie odblokowany.
Logging i monitorowanie
WAF moze logowac kazde analizowane zadanie do: S3 (pelne logi, najtansze), CloudWatch Logs (real-time monitoring i alarmy) lub Kinesis Data Firehose (streaming do SIEM). Logi zawieraja: akcje (Allow/Block/Count), dopasowana regule, headers, URI, source IP i timestamp. Skonfiguruj log filtering, zeby logowac tylko zablokowane zadania - to drastycznie zmniejsza koszty logowania.
Sprawdzone praktyki z wdrazania i operowania AWS WAF w srodowiskach produkcyjnych - od wyboru regul po strategie testowania.
AWS Managed Rules jako baseline
Zacznij od AWS Managed Rules: Core Rule Set + Known Bad Inputs + Amazon IP Reputation List. Te trzy zestawy pokrywaja wiekszosc typowych atakow i sa automatycznie aktualizowane przez AWS. Nie probuj pisac wlasnych regul na SQL injection czy XSS - managed rules sa testowane na miliardach zadan dziennie. Custom rules dodawaj dopiero dla logiki specyficznej dla Twojej aplikacji (np. walidacja niestandardowych headerow).
PoczatkujacyRate-based rules na krytycznych endpointach
Skonfiguruj rate-based rules na endpointach podatnych na abuse: login (brute force), rejestracja (spam), API (scraping), checkout (carding). Ustal progi na podstawie normalnego ruchu - przeanalizuj logi z ostatnich 30 dni. Zacznij od wyzszych progow i stopniowo je obnizaj. Uzywaj scope-down statements z URI path matching, zeby rate limiting nie blokowal normalnych uzytkownikow na reszcie strony.
PoczatkujacyIP Reputation i Bot Control
Amazon IP Reputation List blokuje znane zlosliwe adresy IP (botnety, skanery, spamery). Bot Control (platny managed rule set) rozpoznaje i kategoryzuje boty: verified bots (Googlebot, Bingbot - przepusc), self-identified bots (sprawdz) i automated bots (blokuj lub CAPTCHA). Bot Control jest drogi ($10/M zadan), wiec wlaczaj go tylko na endpointach narazonych na boty, nie na calej aplikacji.
ZaawansowanyCustom response bodies - przyjazne blokowanie
Domyslnie WAF zwraca suchy HTTP 403. Skonfiguruj custom response bodies, zeby uzytkownik widzial przyjazna strone z informacja, dlaczego zostal zablokowany i jak skontaktowac sie z supportem. Mozesz definiowac rozne odpowiedzi per regula - np. inna strona dla rate limiting (sprobuj za chwile), inna dla geo-blocking (usluga niedostepna w Twoim regionie). Format: HTML, JSON lub plain text.
PoczatkujacyCount mode - testowanie bez blokowania
Nigdy nie wdrazaj nowych regul od razu w trybie Block. Ustaw akcje na Count (zliczanie) na minimum 7 dni i analizuj logi. Sprawdz, czy reguly nie generuja false positives - np. Managed Rules moga blokowac legalne requesty z duzym payloadem JSON lub specjalnymi znakami w formularzach. Dopiero po potwierdzeniu, ze false positive rate jest akceptowalny, przelacz na Block.
ZaawansowanyScope-down statements i priorytet regul
Reguly w Web ACL sa ewaluowane wedlug priorytetu (nizszy numer = wyzszy priorytet). Umieszczaj IP allowlist na samej gorze (priorytet 0) - zaufane IP powinny byc przepuszczane bez dalszej analizy. Rate-based rules dawaj wyzszy priorytet niz managed rules. Uzywaj scope-down statements w managed rules, zeby wylaczac konkretne reguly dla okreslonych sciezek (np. wylacz SQL injection check na endpoincie przyjmujacym HTML/code).
ZaawansowanyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS WAF bezposrednio w konsoli AWS.
Do czego sluzy AWS WAF?
Ochrona przed SQL injection i XSS
Automatycznie wykrywaj i blokuj proby wstrzykniecia SQL oraz ataki cross-site scripting za pomoca Managed Rules lub wlasnych regul.
Rate limiting i ochrona przed botami
Ustaw limity requestow na IP i korzystaj z AWS Bot Control, zeby blokowac szkodliwe boty, scrapery i ataki brute-force.
Geo-blocking
Blokuj lub zezwalaj na ruch z wybranych krajow. Przydatne do zgodnosci z regulacjami lub ograniczenia zasięgu aplikacji.
Ochrona API
Zabezpiecz REST i WebSocket API w API Gateway przed naduzywaniem, nieautoryzowanym dostepem i typowymi atakami na API.
Co musisz wiedziec?
Web ACL
Glowny zasob WAF. Zestaw regul okreslajacych, ktory ruch przepuscic (Allow), zablokowac (Block) lub policzyc (Count). Przypinasz go do CloudFront, ALB lub API Gateway.
Rule Group
Grupa regul wielokrotnego uzytku. AWS dostarcza Managed Rule Groups (np. AWSManagedRulesCommonRuleSet), mozesz tez tworzyc wlasne lub kupic od partnerow w Marketplace.
Rate-based Rule
Regula, ktora automatycznie blokuje IP przekraczajace ustalony limit requestow w 5-minutowym oknie. Swietna ochrona przed DDoS i brute-force.
IP Set
Lista adresow IP lub zakresow CIDR, ktore mozesz uzyc w regulach WAF do blokowania lub zezwalania na ruch z konkretnych zrodel.
Bot Control
Managed Rule Group od AWS, ktory klasyfikuje boty (verified, self-identified, bad) i pozwala podejmowac rozne akcje w zaleznosci od kategorii bota.
Scope
WAF dziala w dwoch scope: REGIONAL (ALB, API Gateway, AppSync) i CLOUDFRONT (dystrybucje CloudFront - tylko region us-east-1).
Architektura: Ochrona aplikacji webowej z AWS WAF
Wielowarstwowa ochrona aplikacji webowej z WAF na froncie, logowaniem do S3 i monitoringiem w CloudWatch. WAF analizuje kazde zadanie HTTP zanim dotrze do aplikacji.
Porownanie WAF vs Shield vs Security Groups vs NACLs
| Serwis | Warstwa | Chroni przed | Poziom | Stateful | Koszt | Najlepszy dla |
|---|---|---|---|---|---|---|
| WAF | L7 (HTTP/HTTPS) | SQL injection, XSS, boty | CloudFront/ALB/API GW | Tak (sesje HTTP) | $5/web ACL + $1/regula + req | Ochrona aplikacji web |
| Shield | L3/L4 (DDoS) | Volumetric DDoS | Cala infrastruktura | N/A | Standard: darmowy, Advanced: $3000/mies. | Ochrona przed DDoS |
| Security Groups | L4 (TCP/UDP) | Nieautoryzowany ruch sieciowy | Instancja/ENI | Tak (return traffic auto) | Darmowy | Firewall instancji |
| NACLs | L4 (TCP/UDP) | Nieautoryzowany ruch sieciowy | Subnet | Nie (reguly in+out) | Darmowy | Dodatkowa warstwa sieci |
Ile kosztuje AWS WAF?
Web ACL
Stala oplata miesieczna za kazdy Web ACL.
$5.00/miesiac za Web ACL
Reguly
Oplata za kazda regule dodana do Web ACL.
$1.00/miesiac za regule
Requesty
Oplata za kazdy milion requestow przetworzonych przez WAF.
$0.60 za milion requestow
Bot Control
Dodatkowa oplata za uzycie AWS Bot Control managed rule group.
$10.00/mies. + $1.00 za milion requestow (common), wiecej za targeted
Przyklady AWS CLI
Utworz IP Set
Tworzy zestaw adresow IP do blokowania w regulach WAF
aws wafv2 create-ip-set \
--name ZablokowaneBoty \
--scope REGIONAL \
--ip-address-version IPV4 \
--addresses "192.0.2.0/24" "198.51.100.0/24"
Utworz Web ACL
Tworzy Web ACL z domyslna akcja Allow i Managed Rules
aws wafv2 create-web-acl \
--name MojaAplikacjaACL \
--scope REGIONAL \
--default-action Allow={} \
--rules '[{"Name":"AWSManagedRules","Priority":1,"Statement":{"ManagedRuleGroupStatement":{"VendorName":"AWS","Name":"AWSManagedRulesCommonRuleSet"}},"OverrideAction":{"None":{}},"VisibilityConfig":{"SampledRequestsEnabled":true,"CloudWatchMetricsEnabled":true,"MetricName":"AWSManagedRules"}}]' \
--visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=MojaAplikacjaACL
Wyswietl Web ACL
Pobiera szczegoly Web ACL wraz z regulami
aws wafv2 get-web-acl \
--name MojaAplikacjaACL \
--scope REGIONAL \
--id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
Sprawdz samplowane requesty
Wyswietla probke requestow przetworzonych przez regule
aws wafv2 get-sampled-requests \
--web-acl-arn arn:aws:wafv2:eu-central-1:123456789012:regional/webacl/MojaAplikacjaACL/a1b2c3d4 \
--rule-metric-name AWSManagedRules \
--scope REGIONAL \
--time-window StartTime=2024-01-01T00:00:00Z,EndTime=2024-01-02T00:00:00Z \
--max-items 10
Quiz: AWS WAF
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.
1. Z ktorymi serwisami AWS mozna zintegrowac AWS WAF?
2. Co to jest Rate-based Rule w AWS WAF?
3. Jaka jest domyslna akcja Web ACL, gdy zadna regula nie pasuje do requestu?
4. Czym sa Managed Rule Groups w AWS WAF?
Czesto uzywane razem z AWS WAF
Chcesz poznac AWS WAF w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS WAF krok po kroku. Teoria + praktyka od zera.