WAF (Web Application Firewall) to zapora, która siedzi przed Twoją aplikacją webową i prześwietla każdy ruch HTTP/HTTPS, zanim ten dotrze do serwera. W przeciwieństwie do klasycznego firewalla sieciowego, który patrzy na adresy IP i porty (warstwa 3-4), WAF działa na warstwie aplikacji (L7) i rozumie treść zapytania: nagłówki, parametry, ciało POST, ciasteczka. Dzięki temu potrafi wyłapać atak ukryty w pozornie zwykłym żądaniu, na przykład fragment ' OR '1'='1 wciśnięty w pole logowania.
Jak to działa
WAF analizuje ruch według reguł i wzorców. Najpopularniejszy zestaw to OWASP Core Rule Set (CRS), który chroni przed klasykami z listy OWASP Top 10: SQL injection, Cross-Site Scripting (XSS), Local/Remote File Inclusion czy próbami obejścia ścieżek. Działa w dwóch trybach: blacklist (blokuj to, co wygląda na atak) i whitelist (przepuszczaj tylko ruch zgodny z modelem znanej, dozwolonej aktywności). Sam WAF można wpiąć jako moduł serwera (np. ModSecurity przy Nginx/Apache), jako reverse proxy albo jako usługę w chmurze, gdzie ruch idzie przez sieć dostawcy, zanim trafi do Ciebie.
Przykład z praktyki
Najczęściej spotkasz ModSecurity z CRS albo chmurowy Cloudflare WAF. Gdy ktoś wyśle żądanie typu GET /products?id=1 UNION SELECT password FROM users, reguła SQLi dopasuje wzorzec i zwróci 403 Forbidden, zanim zapytanie dotknie bazy. Na start często włącza się tryb obserwacji (SecRuleEngine DetectionOnly), żeby przez kilka dni patrzeć w logi, co WAF chciałby zablokować, i dopiero potem przełącza się na On.
Na co uważać
Największy mit: mam WAF, więc kod może być dziurawy. Nieprawda. WAF to dodatkowa warstwa, a nie zamiennik bezpiecznego pisania kodu, prepared statements czy walidacji danych wejściowych. Druga pułapka to false positive – zbyt agresywne reguły potrafią blokować legalnych użytkowników (klasyk: formularz, w którym ktoś wpisze słowo select albo apostrof w nazwisku). Dlatego nie wrzucaj produkcji od razu w tryb blokujący. Pamiętaj też, że WAF na warstwie HTTP nie zatrzyma zaawansowanych technik obejścia (np. sprytnego enkodowania payloadu) – determinację atakującego trzeba traktować poważnie.
Pojęcia powiązane
Warto znać przy okazji: OWASP Top 10, SQL injection, XSS, ModSecurity, reverse proxy, firewall sieciowy (L3/L4), IDS/IPS oraz rate limiting.