
В прошлом году мы выпустили Nemesida WAF Free — динамический модуль для NGINX, блокирующий атаки на веб-приложения. В отличие от коммерческой версии, основанной на работе машинного обучения, бесплатная версия анализирует з��просы только сигнатурным методом.
Особенности релиза Nemesida WAF 4.0.129
До текущего релиза динамический модуль Nemesida WAF поддерживал только Nginx Stable 1.12, 1.14 и 1.16. В новом релизе добавлена поддержка Nginx Mainline, начиная с 1.17, и Nginx Plus, начиная с 1.15.10 (R18).
Зачем делать еще один WAF?
NAXSI и mod_security, наверное, самые популярные бесплатные модули WAF, причем mod_security активно продвигается силами Nginx, хотя, изначально, использовался только в Apache2. Оба решения бесплатные, имеют открытый исходный код и множество пользователей во всем мире. Для mod_security доступен бесплатный и коммерческий, за $500 в год, наборы сигнатур, для NAXSI — бесплатный набор сигнатур «из коробки», также можно найти дополнительные наборы правил, такие как doxsi.
В этом году мы провели сравнение работы NAXSI и Nemesida WAF Free. Если коротко о результатах:
- NAXSI не выполняет двойной URL-decode в cookie
- NAXSI очень долго настраивать — по умолчанию дефолтные настройки правил будут блокировать большую часть обращений при работе с веб-приложением (авторизацию, редактирование профиля или материала, участие в опросах и т.д.) и необходимо генерировать списки исключений, что плохо сказывается на безопасности. Nemesida WAF Free с настройками по умолчанию в процессе работы с сайтом не выполнила ни одного ложного срабатывания.
- количество пропусков атак у NAXSI в разы выше и т.д.
Несмотря на недостатки, NAXSI и mod_security имеют, как минимум, два преимущества — открытый исходный код и большое количество пользователей. Мы поддерживаем идею раскрытия исходного кода, но пока не можем этого сделать из-за возможных проблем с «пиратством» коммерческой версии, но чтобы компенсировать этот недостаток — полностью раскрываем содержимое набора сигнатур. Мы ценим конфиденциальность и предлагаем в этом убедиться самостоятельно с помощью прокси-сервера.
Особенность Nemesida WAF Free:
- качественная база сигнатур с минимальным количеством False Positive и False Negative.
- установка и обновление из репозитория (это быстро и удобно);
- простые и понятные события об инцидентах, а не «каша», как у NAXSI;
- полностью бесплатный, не имеет ограничений по количеству трафика, виртуальных хостов и т.д.
В заключении приведу несколько запросов для оценки работы WAF (рекомендуется использовать в каждой из зон: 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)#"]
')) /*!u%6eion*/ /*!se%6cect*/ (1),(2),(3),(4),(5),(6),(7),(8),(9.),(0x70656e746573746974),(11)#"]
')) %2f**%2funion%2f**%2fselect (1),(2),(3),(4),(5),(6),(7),(8),(9),(0x70656e746573746974),(11)#"]
%5B%221807182982%27%29%29%20uni%22%2C%22on
%20sel%22%2C%22ect%201%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C%2some_text%27%2C11%23%22%5D
cat /et?/pa?swd
cat /et'c/pa'ss'wd
cat /et*/pa**wd
e'c'ho 'swd test pentest' |awk '{print "cat /etc/pas"$1}' |bas'h
c\a\t \/\e\t\c/\p\a\s\sw\d
cat$u+/etc$u/passwd$u
<svg/onload=alert()//Если запросы не будут заблокированы — то, скорее всего, WAF пропустит и реальную атаку. Перед использованием примеров убедитесь, что WAF не блокирует легитимные запросы.
