
W zeszłym roku wydaliśmy Nemesida WAF Free — dynamiczny moduł dla NGINX, który blokuje ataki na aplikacje internetowe. W przeciwieństwie do wersji komercyjnej, opartej na uczeniu maszynowym, wersja darmowa analizuje zapytania tylko metodą sygnatur.
Cechy wydania Nemesida WAF 4.0.129
Do obecnego wydania dynamiczny moduł Nemesida WAF wspierał tylko Nginx Stable 1.12, 1.14 i 1.16. W nowym wydaniu dodano wsparcie dla Nginx Mainline, począwszy od 1.17, oraz Nginx Plus, począwszy od 1.15.10 (R18).
Dlaczego warto stworzyć kolejny WAF?
NAXSI i mod_security to chyba najpopularniejsze darmowe moduły WAF, przy czym mod_security jest aktywnie promowany przez Nginx, mimo że początkowo był używany wyłącznie w Apache2. Oba rozwiązania są darmowe, mają otwarty kod źródłowy i wielu użytkowników na całym świecie. Dla mod_security dostępny jest darmowy i komercyjny zestaw sygnatur, za 500 dolarów rocznie, a dla NAXSI — darmowy zestaw sygnatur „z pudełka”, dostępne są również dodatkowe zestawy reguł, takie jak doxsi.
W tym roku przeprowadziliśmy testowanie pracy NAXSI i Nemesida WAF Free. Krótko o wynikach:
- NAXSI nie wykonuje podwójnego dekodowania URL w cookie
- NAXSI wymaga długiej konfiguracji — domyślne ustawienia reguł będą blokować większość zapytań przy pracy z aplikacją internetową (logowanie, edytowanie profilu lub materiału, udział w ankietach itp.), co wymaga generowania list wyjątków, co negatywnie wpływa na bezpieczeństwo. Nemesida WAF Free z domyślnymi ustawieniami podczas pracy z witryną nie wykonała żadnego fałszywego alarmu.
- liczba zablokowanych ataków przez NAXSI jest wielokrotnie wyższa itd.
Pomimo wad, NAXSI i mod_security mają przynajmniej dwie zalety — otwarty kod źródłowy i dużą liczbę użytkowników. Wspieramy ideę ujawniania kodu źródłowego, ale obecnie nie możemy tego zrobić z powodu możliwych problemów z „piractwem” wersji komercyjnej, ale aby zrekompensować tę wadę — w pełni ujawniamy zawartość zestawu sygnatur. Ceniemy prywatność i zachęcamy do upewnienia się o tym samodzielnie za pomocą proxy.serwera.
Cechy Nemesida WAF Free:
- jakościowa baza sygnatur z minimalną liczbą fałszywych pozytywów i negatywów.
- szybka instalacja i aktualizacja z repozytorium (to szybkie i wygodne);
- proste i zrozumiałe zdarzenia dotyczące incydentów, a nie „mieszanka”, jak w przypadku NAXSI;
- całkowicie darmowy, nie ma ograniczeń co do ilości ruchu, hostów wirtualnych itd.
Na zakończenie przedstawiam kilka zapytań do oceny działania WAF (zaleca się używanie w każdej z stref: URL, ARGS, Headers & Body):
')) un","ion se","lect 1,2,3,4,5,6,7,8,9,0,11#"]
')) union/**/select/**/1/**/2/**/3/**/4/**/5/**/6/**/7/**/8/**/9/**/'some_text',/**/11#"]
union(select(1),2,3,4,5,6,7,8,9,0x70656e746573746974,11)#"]
')) union+ /*!select*/ (1),(2),(3),(4),(5),(6),(7),(8),(9),(0x70656e746573746974),(11)#"]
')) /*!uion*\/ /*!seect*\/ (1),(2),(3),(4),(5),(6),(7),(8),(9.),(0x70656e746573746974),(11)#"]
')) **union**select (1),(2),(3),(4),(5),(6),(7),(8),(9),(0x70656e746573746974),(11)#"]
1807182982union
select123456789%2some_text11
cat /et?/?pa?swd
cat /et'c/pas's'wd
cat /et*/pa**wd
e'c'ho 'swd test pentest' |awk '{print "cat /etc/pas"$1}' |bas'h
cat /etc/passwd
cat$u+/etc$u/passwd$u
<svg/onload=alert()//
Jeśli zapytania nie zostaną zablokowane — to najprawdopodobniej WAF przepuści także rzeczywisty atak. Przed użyciem przykładów upewnij się, że WAF nie blokuje legalnych zapytań.
Źródło: habr.com
