IPS (Intrusion Prevention System) oraz WAF (Web Application Firewall) są jednymi z najbardziej znanych akronimów w świecie bezpieczeństwa sieciowego, które początkującym bezpiecznikom mogą sprawiać problemy ze zrozumieniem. Niniejszy artykuł powstał aby rozwiać wszelkie wątpliwości i nieco bardziej wgłębić się temat.
Jak działa WAF
WAF jest rozwiązaniem sprzętowym lub programowym, które służy jako pośrednik między klientem, a aplikacją. Oznacza to, że cała komunikacja HTTP jest analizowana przed tym, jak dotrze do aplikacji lub użytkownika.
Aby monitorować ruch HTTP, Web Application Firewall stosuje zestaw wcześniej zdefiniowanych reguł, które docelowo wykrywają takie próby ataku jak XSS, SQL injection, DoS / DDoS oraz wiele więcej. W razie zagrożenia, WAF blokuje złośliwe żądania i odpowiedzi zawierające wrażliwe dane.
Wyróżnia się trzy różne rodzaje WAF:
- sprzętowy – wdrażany za pomocą urządzenia fizycznego, instalowany lokalnie w sieci lokalnej (LAN). Wewnątrz urządzenia jest instalowany konfigurowalny system operacyjny.
- oparty na oprogramowaniu – zapora oparta na oprogramowaniu, który instalowany jest w maszynie wirtualnej.
- chmurowe – jak nazwa wskazuje, wszystkie komponenty WAF są zlokalizowane w chmurze, dzięki czemu użytkownik (jak w przypadku opartego na oprogramowaniu) nie musi instalować niczego lokalnie oraz na maszynach wirtualnych.
Naxsi
Aby wgryźć się nieco bardziej w temat, przyjrzyjmy się konfiguracji NAXSI, czyli darmowego modułu WAF serwera webowego Nxinx. NAXSI dostarcza kilka plików konfiguracyjnych. Do jednego z nich należy plik /etc/nginx/naxsi.rules
, w którym to definiowane są główne akcje podejmowane przez moduł. Przykładowy plik mógłby wyglądać w sposób następujący:
# config mode section
LearningMode;
SecRulesEnabled;
#SecRulesDisabled;
DeniedUrl "/RequestDenied";
#
# check rules section
CheckRule "$SQL >= 8" BLOCK;
CheckRule "$RFI >= 8" BLOCK;
CheckRule "$TRAVERSAL >= 4" BLOCK;
CheckRule "$EVADE >= 4" BLOCK;
CheckRule "$XSS >= 8" BLOCK;
Co oznacza wnętrze pliku? Przyjrzyjmy się poszczególnym elementom po kolei.
- LearningMode – NAXSI może działać w dwóch trybach tj. NormalMode oraz LearningMode. Pierwszy przekierowuje złośliwe żądania do określonej lokalizacji i, ponieważ nie blokujemy tych żądań, możemy zwrócić statyczną stronę prezentującą komunikat o błędzie. LearningMode z kolei sprawia, że złośliwe żądania są kopiowane (zamiast przekierowywane) do konkretnej lokalizacji na stronie, a następnie są przetwarzane przez aplikację,
- SecRulesEnabled / SecRulesDisabled – włącza lub wyłącza NAXSI dla tej lokalizacji,
- DeniedURL – zdefiniowany endpoint na które będą przekierowywane zablokowane żądania,
- CheckRule – definiuje akcje, gdy dany wynik jest spełniony.
Jak działa IPS
Jeśli chodzi o Intrusion Prevention System, jest to urządzenie lub oprogramowanie o nieco bardziej ogólnym zastosowaniu. Dzieje się tak, ponieważ zamiast skupiać się na jednym protokole jak w przypadku WAF, tak IPS zapewnia ochronę przed ruchem pochodzącym z protokołów takich jak min. DNS, SMTP, TELNEM, SSH, FTP oraz RDP. Głónymi zagrożeniami, którymi IPS ma zapobiegać, są ataki typu Denial of Service (DoS), ataki DDoS oraz exploity.
W tym celu system IPS przeprowadza inspekcję przesyłanych na serwer pakietów, przy tym analizując dokładnie każdy z nich. Jeśli podejrzany lub złośliwy pakiet zostanie wykryty, system IPS może zareagować na kilka różnych sposobów, min.:
- zakańczając sesję TCP i blokując adres IP bądź konto użytkownika przesyłającego złośliwe pakiety,
- przeprogramowując lub konfigurując ponownie zaporę sieciową, aby zapobiegać podobnym atakom w przyszłości,
- usuwając lub zastępując złośliwe treści.
WAF vs IPS
Zróbmy bardzo ogólne porównanie, które protokoły i jakie min. metody, ataki oraz żądania mogą pokrywać oba z rozwiązań, aby móc lepiej zwizualizować sobie różnice między nimi.
+------------------------------------+------------------------------------+
| WAF | IPS |
+------------------------------------+------------------------------------+
| 7 layer ISO OSI (HTTPS/ HTTP) | 3 / 4 layer ISO OSI |
+------------------------------------+------------------------------------+
| SSL (decryption) | DNS |
| JavaScript | SMTP |
| Ajax | TELNET |
| Active X | RDP |
| Session management | SSH |
| GET, POST, HEAD | FTP |
| URL | |
| SQL Injection | |
| Cookie Manipulation | |
| XSS | |
+------------------------------------+------------------------------------+
Źródła
https://www.lanner-america.com/blog/waf-vs-ips-whats-difference/
http://it.wip.pw.edu.pl/data/uploads/uskom/uskom_zapory_ogniowe.pdf
https://www.pentasecurity.com/blog/3-types-web-application-firewalls/
https://ipwithease.com/how-is-ips-ids-different-from-waf/
https://github.com/nbs-system/naxsi
https://www.proteansec.com/application-security/naxsi/