WAF

Zapora działająca na poziomie aplikacji webowej, filtrująca ruch HTTP w celu blokowania ataków takich jak SQL injection czy XSS.

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.