WAF, czyli Web Application Firewall to system bezpieczeństwa przystosowany do ochrony aplikacji internetowych poprzez monitorowanie i filtrowanie ruchu HTTP między aplikacją a Internetem. WAF operuje na warstwie 7 (w modelu OSI) i nie jest niestety przeznaczony do obrony przed wszystkimi rodzajami ataków na aplikacje internetowe. Zwykle skutecznie chroni przed takimi atakami jak SQL Injection, Cross Site Scripting, Directory Traversal czy Command Injection.

Wdrażając WAF umieszczamy pewnego rodzaju tarczę między aplikacją a Internetem. Podczas gdy, serwer proxy chroni tożsamość komputera klienckiego działając jako pośrednik, WAF działa jako reverse-proxy i chroni tożsamość serwera przed poznaniem przez klientów.

Działanie takiego systemu z pewnością można porównać do klasycznego firewalla. Opiera się ono o zestaw konfigurowalnych reguł nazywanych politykami, które mają za zadanie chronić luki w zabezpieczeniach aplikacji i odfiltrowywać szkodliwy ruch. Mocną stroną systemów WAF jest łatwość i szybkość implementacji nowych reguł oraz pewnego rodzaju automatyzacja i samodostosowywanie. Na przykład podczas ataku DDoS możliwa jest szybka zmiana ilości dopuszczalnych połączeń na sekundę.

Schemat działania WAF

Zasada działania

Web Application Firewall może być wdrażany jako osobne urządzenie sprzętowe lub wtyczka instalowana na serwerze webowym. Przechwytuje wszystkie żądania HTTP i analizuje każde z nich, zanim dotrą do serwera WWW w celu przetworzenia. Skonfigurowane reguły analizują żądania GET i POST i szukają w nich złośliwego ruchu.

W zależności od opcji konfiguracji narzędzia możliwe jest blokowanie ruchu do aplikacji, zmuszenie odwiedzającego do weryfikacji i wypełnienia testu CAPTCHA czy nawet symulacja ataku na serwerze. Dzięki temu, atakujący nie zostanie wpuszczony do serwera hostującego aplikację.

Działanie systemu WAF opiera się zazwyczaj na jednym z trzech modeli:

  • Blacklist” lub „Negative Security Model” – wykorzystanie sygnatur do ochrony witryny przed znanymi konkretnymi atakami, które mogą wykorzystywać podatności w aplikacji internetowej
  • Whitelist” lub “Positive Security Model” – wykorzystanie sygnatur oraz logiki do zezwolenia na ruchu tylko jeśli spełnia określone kryteria, na przykład zezwolenie tylko na żądania HTTP GET z określonego adresu URL i blokowanie wszystkiego innego
  • Hybrid Security Model” – połączenie możliwości dwóch poprzednich

Niektóre konfigurowalne opcje pozwalają na wykonywanie akcji takich jak blokowanie sesji, blokowanie adresu IP, blokowanie lub wylogowywanie użytkownika.


Różne możliwości wdrożenia

WAF można wdrożyć w infrastrukturze na co najmniej 3 różne sposoby, przy czym każdy z nich ma swoje zalety i wady:

  • Network-based WAF – oparte na własnym, niezależnym sprzęcie, WAF jest instalowany lokalnie co minimalizuje opóźnienia, ale też wymaga zasobów do przechowywania danych oraz konserwacji, jest opcją najdroższą
  • Host-based WAF – zintegrowanie z serwerem hostującym aplikacje, zużywane są zasoby lokalne serwera, opcja ta oferuje najwięcej możliwości dostosowywania WAF do własnych potrzeb, jest jednak trudna w implementacji i konserwacji, wymaga poświęcenia czasu inżynierów w organizacji, tańsza niż opcja numer 1
  • Cloud-based WAF – wdrożenie rozwiązania w chmurze, jest to opcja najprostsza oraz najtańsza, instalacja polega zazwyczaj na zmianie wpisu w DNS i przekierowania ruchu, takie rozwiązanie jest konsekwentnie aktualizowane i konserwowane przez osoby trzecie, wadą jest to, że pełna odpowiedzialność za system przekazana jest stronie trzeciej i niektóre elementy WAF pozostają „czarną skrzynką” dla organizacji

Podsumowanie

Rozwiązania WAF skutecznie zapobiegają atakom skierowanym na aplikacje internetowe. Trzeba pamiętać, że rozwiązania te wciąż ewoluują oraz to, że żadne narzędzie nie jest w stanie wyeliminować wszystkich słabych stron aplikacji. Często konieczne jest użycie więcej niż jednego rodzaju zabezpieczeń.

Typowym podejściem jest połączenie WAF z narzędziem DAST (Dynamic Application Security Testing). Narzędzia te są przeznaczone do sprawdzania luk w zabezpieczeniach w uruchomionych w Internecie aplikacjach. Robią to poprzez wysyłanie żądań imitujących aktywność hackera.

Web Application Firewall oprócz ochrony zapewnia dodatkowe funkcje takie jak buforowanie, kompresja, równoważenie obciążenia, akceleracja SSL czy zestawianie połączeń, które dodatkowo zwiększają wydajność i niezawodność witryny.