Zapora aplikacji webowej (WAF, Web Application Firewall) to system bezpieczeństwa, który monitoruje, analizuje i filtruje ruch HTTP oraz HTTPS docierający do strony. Działa w oparciu o dynamicznie aktualizowane reguły wykrywające znane wzorce złośliwych zapytań. Celem WAF jest blokowanie prób ataków – takich jak SQL Injection, Cross-Site Scripting (XSS) czy exploitowanie podatności we wtyczkach – zanim dotrą do kodu WordPress.
WAF nie modyfikuje kodu źródłowego WordPressa. Filtruje zapytania HTTP w locie: jeśli zapytanie pasuje do wzorca ataku, jest odrzucane. Jeśli wygląda normalnie, przechodzi do serwera.
Dwa typy WAF: chmurowy i wtyczkowy
WAF chmurowy (DNS-based)
WAF chmurowy działa na serwerach proxy zewnętrznego dostawcy. Cały ruch kierowany do strony przechodzi najpierw przez infrastrukturę dostawcy (np. Cloudflare, Sucuri), gdzie jest filtrowany przed dotarciem do serwera hostingowego. Złośliwe zapytania są odrzucane na poziomie zewnętrznym, nie zużywając zasobów serwera właściciela strony.
Wymaga to zmiany rekordów DNS domeny tak, by wskazywały na serwery proxy dostawcy WAF. Warto wiedzieć, że niektóre serwery – jak LiteSpeed – oferują wbudowany moduł ModSecurity, który pełni rolę WAF na poziomie serwera bez konieczności korzystania z zewnętrznego proxy.
Zalety: wysoka wydajność, ochrona przed atakami DDoS, eliminacja złośliwego ruchu bez obciążania serwera.
Ograniczenie: napastnik znający bezpośredni adres IP serwera może ominąć proxy i komunikować się bezpośrednio. Dostawcy WAF oferują mechanizmy (whitelist IP) ograniczające to ryzyko.
WAF wtyczkowy (endpoint WAF)
WAF wtyczkowy (np. Wordfence) działa na poziomie kodu PHP WordPress. Zapytanie dociera do serwera i dopiero tam wtyczka analizuje je, zanim zostanie przetworzone przez WordPress. Blokowanie działa, ale złośliwe zapytanie i tak obciąża zasoby serwera – procesor, pamięć RAM, połączenie z bazą danych.
Zaletą wtyczkowego WAF jest prostota wdrożenia (instalacja wtyczki) i brak potrzeby zmiany konfiguracji DNS. Wadą – mniejsza wydajność w porównaniu do rozwiązania chmurowego i podatność na ominięcie, jeśli WordPress jest wyłączony lub uszkodzony.
Co WAF blokuje, a czego nie
WAF skutecznie blokuje:
– Znane wzorce ataków (sygnatury): SQLi, XSS, path traversal, CSRF
– Masowe ataki botów z listy znanych złośliwych adresów IP
– Próby exploitowania znanych podatności (np. atak na starą wersję wtyczki)
WAF nie jest skuteczny przeciwko:
– Podatnościom zero-day (nowe luki, dla których nie ma jeszcze reguły)
– Atakom przeprowadzanym przez uwierzytelnionych użytkowników
– Złośliwemu kodowi już znajdującemu się w plikach strony (do tego służą skanery)
WAF a inne warstwy bezpieczeństwa
WAF to zewnętrzna linia obrony, która współdziała z innymi mechanizmami. Nagłówki bezpieczeństwa HTTP definiują zasady zachowania przeglądarki (np. Content-Security-Policy). Nonce’y WordPress chronią formularze przed CSRF na poziomie aplikacji. WAF operuje na warstwie HTTP/aplikacyjnej, zanim żądanie zostanie przetworzone przez kod WordPressa.
Posiadanie WAF nie zwalnia z obowiązku regularnych aktualizacji wtyczek. WAF chroni przed atakami na znane luki, ale luki mogą ewoluować szybciej niż reguły firewalla. Łatka bezpieczeństwa usuwa problem u źródła, WAF go maskuje na zewnątrz.
WAF a tradycyjny firewall sieciowy
Tradycyjny firewall sieciowy (np. iptables w Linuksie) operuje na poziomie pakietów IP – blokuje lub przepuszcza ruch według adresów IP, portów i protokołów. Nie analizuje treści zapytań HTTP.
WAF analizuje treść zapytań HTTP na poziomie warstwy aplikacji – sprawdza, co dokładnie jest przesyłane w parametrach URL, nagłówkach i ciele zapytania. To zupełnie inny poziom analizy.
Podsumowanie
WAF to system filtrowania złośliwego ruchu HTTP zanim dotrze do WordPressa. WAF chmurowy działa na serwerach zewnętrznego dostawcy i jest bardziej wydajny – eliminuje ruch złośliwy przed hostingiem. WAF wtyczkowy działa wewnątrz WordPressa i jest prostszy we wdrożeniu. Oba typy skutecznie blokują znane wzorce ataków, ale żaden nie zastępuje regularnych aktualizacji i innych warstw ochrony.