Странное поведение при тестах WAF

660658

Member
Добрый день
Делаем тесты WAF с помощью https://github.com/nemesida-waf/waf-bypass

Получаем очень странные результаты

╒══════════════════════════════╕
│ FALSE NEGATIVE TEST │
╘══════════════════════════════╛
╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮
│ PAYLOAD TYPE │ PASSED │ BYPASSED │ FAILED │
├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤
│ API │ 0 │ 0 │ 30 (100.0%) │
│ CM │ 0 │ 0 │ 135 (100.0%) │
│ GraphQL │ 0 │ 0 │ 10 (100.0%) │
│ LDAP │ 0 │ 0 │ 84 (100.0%) │
│ LFI │ 0 │ 0 │ 151 (100.0%) │
│ MFD │ 0 │ 0 │ 9 (100.0%) │
│ Misc │ 0 │ 0 │ 11 (100.0%) │
│ NoSQLi │ 0 │ 0 │ 106 (100.0%) │
│ OR │ 0 │ 0 │ 54 (100.0%) │
│ RCE │ 0 │ 0 │ 293 (100.0%) │
│ RFI │ 0 │ 0 │ 60 (100.0%) │
│ SQLi │ 0 │ 0 │ 268 (100.0%) │
│ SSI │ 0 │ 0 │ 75 (100.0%) │
│ SSRF │ 0 │ 0 │ 66 (100.0%) │
│ SSTI │ 0 │ 0 │ 211 (100.0%) │
│ UWA │ 0 │ 0 │ 27 (100.0%) │
│ XSS │ 131 (3.1%) │ 30 (0.71%) │ 4071 (96.2%) │
╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯

╒══════════════════════════════╕
│ FALSE POSITIVE TEST │
╘══════════════════════════════╛
╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮
│ PAYLOAD TYPE │ PASSED │ FALSED │ FAILED │
├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤
│ FP │ 0 │ 0 │ 19 (100.0%) │
╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯

╒══════════════════════════════╕
│ TOTAL SUMMARY │
╘══════════════════════════════╛
╭────────────────┬────────────────┬────────────────┬────────────────┬────────────────╮
│ TOTAL PAYLOADS │ PASSED (OK) │ FALSED (FP) │ BYPASSED (FN) │ FAILED │
├────────────────┼────────────────┼────────────────┼────────────────┼────────────────┤
│ 5841 │ 131 (2.24%) │ 0 │ 30 (0.51%) │ 5680 (97.24%) │
╰────────────────┴────────────────┴────────────────┴────────────────┴────────────────╯

╒══════════════════════════════╕
│ FALSE NEGATIVE TEST │
╘══════════════════════════════╛
╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮
│ PAYLOAD TYPE │ PASSED │ BYPASSED │ FAILED │
├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤
│ API │ 24 (80.0%) │ 1 (3.33%) │ 5 (16.67%) │
│ CM │ 106 (78.52%) │ 0 │ 29 (21.48%) │
│ GraphQL │ 0 │ 0 │ 10 (100.0%) │
│ LDAP │ 0 │ 0 │ 84 (100.0%) │
│ LFI │ 105 (69.54%) │ 0 │ 46 (30.46%) │
│ MFD │ 8 (88.89%) │ 0 │ 1 (11.11%) │
│ Misc │ 0 │ 0 │ 11 (100.0%) │
│ NoSQLi │ 0 │ 0 │ 106 (100.0%) │
│ OR │ 53 (98.15%) │ 0 │ 1 (1.85%) │
│ RCE │ 0 │ 0 │ 293 (100.0%) │
│ RFI │ 0 │ 0 │ 60 (100.0%) │
│ SQLi │ 0 │ 0 │ 268 (100.0%) │
│ SSI │ 43 (57.33%) │ 0 │ 32 (42.67%) │
│ SSRF │ 0 │ 0 │ 66 (100.0%) │
│ SSTI │ 136 (64.45%) │ 2 (0.95%) │ 73 (34.6%) │
│ UWA │ 0 │ 0 │ 27 (100.0%) │
│ XSS │ 75 (1.77%) │ 4 (0.09%) │ 4153 (98.13%) │
╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯

╒══════════════════════════════╕
│ FALSE POSITIVE TEST │
╘══════════════════════════════╛
╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮
│ PAYLOAD TYPE │ PASSED │ FALSED │ FAILED │
├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤
│ FP │ 0 │ 0 │ 19 (100.0%) │
╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯

╒══════════════════════════════╕
│ TOTAL SUMMARY │
╘══════════════════════════════╛
╭────────────────┬────────────────┬────────────────┬────────────────┬────────────────╮
│ TOTAL PAYLOADS │ PASSED (OK) │ FALSED (FP) │ BYPASSED (FN) │ FAILED │
├────────────────┼────────────────┼────────────────┼────────────────┼────────────────┤
│ 5841 │ 550 (9.42%) │ 0 │ 7 (0.12%) │ 5284 (90.46%) │
╰────────────────┴────────────────┴────────────────┴────────────────┴────────────────╯

╒══════════════════════════════╕
│ FALSE NEGATIVE TEST │
╘══════════════════════════════╛
╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮
│ PAYLOAD TYPE │ PASSED │ BYPASSED │ FAILED │
├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤
│ API │ 0 │ 0 │ 30 (100.0%) │
│ CM │ 0 │ 0 │ 135 (100.0%) │
│ GraphQL │ 0 │ 0 │ 10 (100.0%) │
│ LDAP │ 1 (1.19%) │ 0 │ 83 (98.81%) │
│ LFI │ 9 (5.96%) │ 0 │ 142 (94.04%) │
│ MFD │ 0 │ 0 │ 9 (100.0%) │
│ Misc │ 4 (36.36%) │ 0 │ 7 (63.64%) │
│ NoSQLi │ 5 (4.72%) │ 2 (1.89%) │ 99 (93.4%) │
│ OR │ 3 (5.56%) │ 1 (1.85%) │ 50 (92.59%) │
│ RCE │ 5 (1.71%) │ 0 │ 288 (98.29%) │
│ RFI │ 0 │ 0 │ 60 (100.0%) │
│ SQLi │ 13 (4.85%) │ 0 │ 255 (95.15%) │
│ SSI │ 4 (5.33%) │ 2 (2.67%) │ 69 (92.0%) │
│ SSRF │ 1 (1.52%) │ 0 │ 65 (98.48%) │
│ SSTI │ 8 (3.79%) │ 3 (1.42%) │ 200 (94.79%) │
│ UWA │ 0 │ 0 │ 27 (100.0%) │
│ XSS │ 60 (1.42%) │ 4 (0.09%) │ 4168 (98.49%) │
╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯

╒══════════════════════════════╕
│ FALSE POSITIVE TEST │
╘══════════════════════════════╛
╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮
│ PAYLOAD TYPE │ PASSED │ FALSED │ FAILED │
├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤
│ FP │ 0 │ 0 │ 19 (100.0%) │
╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯

╒══════════════════════════════╕
│ TOTAL SUMMARY │
╘══════════════════════════════╛
╭────────────────┬────────────────┬────────────────┬────────────────┬────────────────╮
│ TOTAL PAYLOADS │ PASSED (OK) │ FALSED (FP) │ BYPASSED (FN) │ FAILED │
├────────────────┼────────────────┼────────────────┼────────────────┼────────────────┤
│ 5841 │ 113 (1.93%) │ 0 │ 12 (0.21%) │ 5716 (97.86%) │
╰────────────────┴────────────────┴────────────────┴────────────────┴────────────────╯

Можете подсказать куда копать по настройкам, что бы результат был более или менее?

PS Делаем этим же тестом другой сайт под другим WAF и результат намного лучше

╒══════════════════════════════╕
│ FALSE NEGATIVE TEST │
╘══════════════════════════════╛
╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮
│ PAYLOAD TYPE │ PASSED │ BYPASSED │ FAILED │
├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤
│ API │ 30 (100.0%) │ 0 │ 0 │
│ CM │ 135 (100.0%) │ 0 │ 0 │
│ GraphQL │ 10 (100.0%) │ 0 │ 0 │
│ LDAP │ 84 (100.0%) │ 0 │ 0 │
│ LFI │ 151 (100.0%) │ 0 │ 0 │
│ MFD │ 9 (100.0%) │ 0 │ 0 │
│ Misc │ 11 (100.0%) │ 0 │ 0 │
│ NoSQLi │ 106 (100.0%) │ 0 │ 0 │
│ OR │ 54 (100.0%) │ 0 │ 0 │
│ RCE │ 293 (100.0%) │ 0 │ 0 │
│ RFI │ 60 (100.0%) │ 0 │ 0 │
│ SQLi │ 268 (100.0%) │ 0 │ 0 │
│ SSI │ 75 (100.0%) │ 0 │ 0 │
│ SSRF │ 66 (100.0%) │ 0 │ 0 │
│ SSTI │ 211 (100.0%) │ 0 │ 0 │
│ UWA │ 25 (92.59%) │ 0 │ 2 (7.41%) │
│ XSS │ 4211 (99.5%) │ 0 │ 21 (0.5%) │
╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯

╒══════════════════════════════╕
│ FALSE POSITIVE TEST │
╘══════════════════════════════╛
╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮
│ PAYLOAD TYPE │ PASSED │ FALSED │ FAILED │
├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤
│ FP │ 0 │ 19 (100.0%) │ 0 │
╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯

╒══════════════════════════════╕
│ TOTAL SUMMARY │
╘══════════════════════════════╛
╭────────────────┬────────────────┬────────────────┬────────────────┬────────────────╮
│ TOTAL PAYLOADS │ PASSED (OK) │ FALSED (FP) │ BYPASSED (FN) │ FAILED │
├────────────────┼────────────────┼────────────────┼────────────────┼────────────────┤
│ 5841 │ 5799 (99.28%) │ 19 (0.33%) │ 0 │ 23 (0.39%) │
╰────────────────┴────────────────┴────────────────┴────────────────┴────────────────╯
 
Добрый день. Создавали правила исключений для тестируемых виртуальных хостов или переводили обработку запросов для этих виртуальных хостов в режим мониторинга (пассивный режим)?
 
правила исключений созданы по рекомендации тех поддержки, по заведеному тикету
 
правила исключений созданы по рекомендации тех поддержки, по заведеному тикету
Пришлите, пожалуйста, вашу конфигурацию (содержимое файла /etc/nginx/nwaf/conf/global/nwaf.conf и скриншоты из Личного кабинета). Чуствительные данные, например, лицензионный ключ рекомендуем закрасить.
 
Last edited:
nwaf_license_key ****;
nwaf_rules /etc/nginx/nwaf/rules.bin;
nwaf_sys_proxy none;
nwaf_api_proxy none;
nwaf_api_conf host=http://***:8080/nw-api/;
nwaf_host_enable *.*.ru, *.ru, *.ru, *.*.ru;


nwaf_mla 127.0.0.1:5101 mla_score:2;
nwaf_mla_api 127.0.0.1:5102;

nwaf_rmq host=127.0.0.1 user=* password=*;

RL ID:50002 domain=*.ru "PX:\.(jar|jsp|jspx|jspf|java|coffee|war|cfm)($|\s|\:)" "SC:UWA:12" "Z:URL";
 
nwaf_license_key ****;
nwaf_rules /etc/nginx/nwaf/rules.bin;
nwaf_sys_proxy none;
nwaf_api_proxy none;
nwaf_api_conf host=http://***:8080/nw-api/;
nwaf_host_enable *.*.ru, *.ru, *.ru, *.*.ru;


nwaf_mla 127.0.0.1:5101 mla_score:2;
nwaf_mla_api 127.0.0.1:5102;

nwaf_rmq host=127.0.0.1 user=* password=*;

RL ID:50002 domain=*.ru "PX:\.(jar|jsp|jspx|jspf|java|coffee|war|cfm)($|\s|\:)" "SC:UWA:12" "Z:URL";
Мы проанализировали присланные вами результаты, но в будущем, пожалуйста, присылайте результаты в виде скриншотов для более наглядного представления.

Исходя из полученной информации, полученные результаты связаны с ошибками доступа сервера, где установлен waf-bypass, к серверу тестируемого веб-приложения и не связаны с механизмом фильтрации.

Пожалуйста, убедитесь:
1. Что на сервере фильтрующей ноды или конечного веб-приложения, куда отправляются запросы инструментом waf-bypass, в журналах error.log нет ошибок и access.log нет ошибок 50х, связанных с доступностью сервера;
2. Что тестируемый ресурс доступен для сервера, где установлен waf-bypass.
 
1. 5хх ошибок во время тестирования нет
2. ресурс доступен с машины где установлен waf
 
1. 5хх ошибок во время тестирования нет
2. ресурс доступен с машины где установлен waf
 
посмотрели скрип проверки, возникли вопросы

1. как настроить Немезиду так, что бы ип адрес злоумышленника не просто уходил в блокировку, а получал 403 ошибку?
2. Можно ли отдать свою страницу с 403 ошибкой?
 
посмотрели скрип проверки, возникли вопросы

1. как настроить Немезиду так, что бы ип адрес злоумышленника не просто уходил в блокировку, а получал 403 ошибку?
2. Можно ли отдать свою страницу с 403 ошибкой?
1. Блокировка IP-адреса источника запросов происходит при превышении максимального количества блокировок запросов, но даже в таком случае на каждый последующий запрос клиента будет возвращаться код ответа 403. Уточните, пожалуйста, что вы имеете ввиду?

2. Изменить код ответа средствами Nemesida WAF в настоящий момент невозможно. Но его можно изменить средствами Nginx. На нашем Github опубликована инструкция по настройке собственной страницы ответа, где в примере используется замена кода 403 на код 222.

error_page 403 =222 /403.html;

Для более подробной информации по замене кодов ответа рекомендуем обратиться к документации Nginx.
 
1. мы получаем ошибку
An error occurred while processing file /waf_bypass/payload/XSS/301.json in COOKIE: WBHTTPConnectionPool(host='***.ru', port=80): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x10b167400>, 'Connection to ****.ru timed out. (connect timeout=10)'))

но ни как не 403

2. понятно, вопрос снят
 
1. мы получаем ошибку
An error occurred while processing file /waf_bypass/payload/XSS/301.json in COOKIE: WBHTTPConnectionPool(host='***.ru', port=80): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x10b167400>, 'Connection to ****.ru timed out. (connect timeout=10)'))

но ни как не 403

2. понятно, вопрос снят
Ошибка из п. 1 говорит о том, что ресурс ***.ru недоступен для обращений с сервера, на котором вы запускаете инструмент waf-bypass. Убедитесь, что сервер, где вы запускаете инструмент имеет доступ к требуемым ресурсам.
 
Ошибка из п. 1 говорит о том, что ресурс ***.ru недоступен для обращений с сервера, на котором вы запускаете инструмент waf-bypass. Убедитесь, что сервер, где вы запускаете инструмент имеет доступ к требуемым ресурсам.
я про это и пытаюсь сказать, что в момент теста при первом запросе происходит блокировка средствами немезиды и не отдается ни какая ошибка, получается что следующие запросы валятся по тайм-ауту, а не получают ошибку, например 403

в принципе блокировка после первого запроса нормальная, но надо не просто блокировать ип средствами Немезиды, а отдавать как то ошибку 403, тогда тест будет валидный и пройдет, а не свалится по тайм-ауту
 
я про это и пытаюсь сказать, что в момент теста при первом запросе происходит блокировка средствами немезиды и не отдается ни какая ошибка, получается что следующие запросы валятся по тайм-ауту, а не получают ошибку, например 403

в принципе блокировка после первого запроса нормальная, но надо не просто блокировать ип средствами Немезиды, а отдавать как то ошибку 403, тогда тест будет валидный и пройдет, а не свалится по тайм-ауту
Ошибка, которая появляется при тестировании, в явном виде говорит об отсутствии сетевого соединения с ресурсом ***.ru. Это может происходит по разным причинам, например, при неправильной конфигурации веб-сервера. Для выявления причины попробуйте повторно запустить тестирование с помощью waf-bypass и выполнить несколько запросов к серверу (легитимный и с сигнатурой nwaftest), например:

Bash:
# curl -i your_domain.ru
# curl -i your_domain.ru/nwaftest

Если для обращения к ресурсу используется прокси-сервер, то его также задайте.
 
Ошибка, которая появляется при тестировании, в явном виде говорит об отсутствии сетевого соединения с ресурсом ***.ru. Это может происходит по разным причинам, например, при неправильной конфигурации веб-сервера. Для выявления причины попробуйте повторно запустить тестирование с помощью waf-bypass и выполнить несколько запросов к серверу (легитимный и с сигнатурой nwaftest), например:

Bash:
# curl -i your_domain.ru
# curl -i your_domain.ru/nwaftest

Если для обращения к ресурсу используется прокси-сервер, то его также задайте.
так такой тест не пройдет, поскольку мы обращаемся к ресурсу доступ к которому блокирует waf, то есть на курл мы так же получим тайм-аут
 
так такой тест не пройдет, поскольку мы обращаемся к ресурсу доступ к которому блокирует waf, то есть на курл мы так же получим тайм-аут
Обращение к ресурсу командой curl -i your_domain.ru/nwaftest при штатной работе Немезида ВАФ всегда возвращает код ответа 403. Поэтому, в целях выявления проблемы, пришлите, пожалуйста, вывод команд:

curl -i your_domain.ru
curl -i your_domain.ru/nwaftest

где your_domain.ru - адрес тестируемого ресурса.
 
Обращение к ресурсу командой curl -i your_domain.ru/nwaftest при штатной работе Немезида ВАФ всегда возвращает код ответа 403. Поэтому, в целях выявления проблемы, пришлите, пожалуйста, вывод команд:

curl -i your_domain.ru
curl -i your_domain.ru/nwaftest

где your_domain.ru - адрес тестируемого ресурса.
курд проходит успешно, получаем 301 редирект
 
Можете объяснить как понять вот такие результаты и что значат поля в таблице?

│ FALSE NEGATIVE TEST │


╘══════════════════════════════╛


╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮


│ PAYLOAD TYPE │ PASSED │ BYPASSED │ FAILED │


├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤


│ API │ 30 (100.0%) │ 0 │ 0 │


│ CM │ 135 (100.0%) │ 0 │ 0 │


│ GraphQL │ 10 (100.0%) │ 0 │ 0 │


│ LDAP │ 83 (98.81%) │ 0 │ 1 (1.19%) │


│ LFI │ 150 (99.34%) │ 0 │ 1 (0.66%) │


│ MFD │ 9 (100.0%) │ 0 │ 0 │


│ Misc │ 11 (100.0%) │ 0 │ 0 │


│ NoSQLi │ 105 (99.06%) │ 0 │ 1 (0.94%) │


│ OR │ 52 (96.3%) │ 0 │ 2 (3.7%) │


│ RCE │ 288 (98.29%) │ 0 │ 5 (1.71%) │


│ RFI │ 58 (96.67%) │ 0 │ 2 (3.33%) │


│ SQLi │ 263 (98.13%) │ 0 │ 5 (1.87%) │


│ SSI │ 74 (98.67%) │ 0 │ 1 (1.33%) │


│ SSRF │ 66 (100.0%) │ 0 │ 0 │


│ SSTI │ 210 (99.53%) │ 0 │ 1 (0.47%) │


│ UWA │ 27 (100.0%) │ 0 │ 0 │


│ XSS │ 4159 (98.28%) │ 8 (0.19%) │ 65 (1.54%) │


╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯





╒══════════════════════════════╕


│ FALSE POSITIVE TEST │


╘══════════════════════════════╛


╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮


│ PAYLOAD TYPE │ PASSED │ FALSED │ FAILED │


├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤


│ FP │ 0 │ 19 (100.0%) │ 0 │


╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯





╒══════════════════════════════╕


│ TOTAL SUMMARY │


╘══════════════════════════════╛


╭────────────────┬────────────────┬────────────────┬────────────────┬────────────────╮


│ TOTAL PAYLOADS │ PASSED (OK) │ FALSED (FP) │ BYPASSED (FN) │ FAILED │


├────────────────┼────────────────┼────────────────┼────────────────┼────────────────┤


│ 5841 │ 5730 (98.1%) │ 19 (0.33%) │ 8 (0.14%) │ 84 (1.44%) │


╰────────────────┴────────────────┴────────────────┴────────────────┴────────────────╯

и тут же следующий тест этого же имени

╒══════════════════════════════╕


│ FALSE NEGATIVE TEST │


╘══════════════════════════════╛


╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮


│ PAYLOAD TYPE │ PASSED │ BYPASSED │ FAILED │


├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤


│ API │ 21 (70.0%) │ 5 (16.67%) │ 4 (13.33%) │


│ CM │ 119 (88.15%) │ 2 (1.48%) │ 14 (10.37%) │


│ GraphQL │ 10 (100.0%) │ 0 │ 0 │


│ LDAP │ 79 (94.05%) │ 0 │ 5 (5.95%) │


│ LFI │ 133 (88.08%) │ 12 (7.95%) │ 6 (3.97%) │


│ MFD │ 8 (88.89%) │ 1 (11.11%) │ 0 │


│ Misc │ 10 (90.91%) │ 0 │ 1 (9.09%) │


│ NoSQLi │ 96 (90.57%) │ 0 │ 10 (9.43%) │


│ OR │ 51 (94.44%) │ 2 (3.7%) │ 1 (1.85%) │


│ RCE │ 270 (92.15%) │ 0 │ 23 (7.85%) │


│ RFI │ 56 (93.33%) │ 0 │ 4 (6.67%) │


│ SQLi │ 248 (92.54%) │ 0 │ 20 (7.46%) │


│ SSI │ 66 (88.0%) │ 6 (8.0%) │ 3 (4.0%) │


│ SSRF │ 61 (92.42%) │ 0 │ 5 (7.58%) │


│ SSTI │ 191 (90.52%) │ 14 (6.64%) │ 6 (2.84%) │


│ UWA │ 27 (100.0%) │ 0 │ 0 │


│ XSS │ 3925 (92.75%) │ 44 (1.04%) │ 263 (6.21%) │


╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯





╒══════════════════════════════╕


│ FALSE POSITIVE TEST │


╘══════════════════════════════╛


╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮


│ PAYLOAD TYPE │ PASSED │ FALSED │ FAILED │


├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤


│ FP │ 0 │ 18 (94.74%) │ 1 (5.26%) │


╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯





╒══════════════════════════════╕


│ TOTAL SUMMARY │


╘══════════════════════════════╛


╭────────────────┬────────────────┬────────────────┬────────────────┬────────────────╮


│ TOTAL PAYLOADS │ PASSED (OK) │ FALSED (FP) │ BYPASSED (FN) │ FAILED │


├────────────────┼────────────────┼────────────────┼────────────────┼────────────────┤


│ 5841 │ 5371 (91.95%) │ 18 (0.31%) │ 86 (1.47%) │ 366 (6.27%) │


╰────────────────┴────────────────┴────────────────┴────────────────┴────────────────╯
 
Можете объяснить как понять вот такие результаты и что значат поля в таблице?

│ FALSE NEGATIVE TEST │


╘══════════════════════════════╛


╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮


│ PAYLOAD TYPE │ PASSED │ BYPASSED │ FAILED │


├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤


│ API │ 30 (100.0%) │ 0 │ 0 │


│ CM │ 135 (100.0%) │ 0 │ 0 │


│ GraphQL │ 10 (100.0%) │ 0 │ 0 │


│ LDAP │ 83 (98.81%) │ 0 │ 1 (1.19%) │


│ LFI │ 150 (99.34%) │ 0 │ 1 (0.66%) │


│ MFD │ 9 (100.0%) │ 0 │ 0 │


│ Misc │ 11 (100.0%) │ 0 │ 0 │


│ NoSQLi │ 105 (99.06%) │ 0 │ 1 (0.94%) │


│ OR │ 52 (96.3%) │ 0 │ 2 (3.7%) │


│ RCE │ 288 (98.29%) │ 0 │ 5 (1.71%) │


│ RFI │ 58 (96.67%) │ 0 │ 2 (3.33%) │


│ SQLi │ 263 (98.13%) │ 0 │ 5 (1.87%) │


│ SSI │ 74 (98.67%) │ 0 │ 1 (1.33%) │


│ SSRF │ 66 (100.0%) │ 0 │ 0 │


│ SSTI │ 210 (99.53%) │ 0 │ 1 (0.47%) │


│ UWA │ 27 (100.0%) │ 0 │ 0 │


│ XSS │ 4159 (98.28%) │ 8 (0.19%) │ 65 (1.54%) │


╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯





╒══════════════════════════════╕


│ FALSE POSITIVE TEST │


╘══════════════════════════════╛


╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮


│ PAYLOAD TYPE │ PASSED │ FALSED │ FAILED │


├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤


│ FP │ 0 │ 19 (100.0%) │ 0 │


╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯





╒══════════════════════════════╕


│ TOTAL SUMMARY │


╘══════════════════════════════╛


╭────────────────┬────────────────┬────────────────┬────────────────┬────────────────╮


│ TOTAL PAYLOADS │ PASSED (OK) │ FALSED (FP) │ BYPASSED (FN) │ FAILED │


├────────────────┼────────────────┼────────────────┼────────────────┼────────────────┤


│ 5841 │ 5730 (98.1%) │ 19 (0.33%) │ 8 (0.14%) │ 84 (1.44%) │


╰────────────────┴────────────────┴────────────────┴────────────────┴────────────────╯

и тут же следующий тест этого же имени

╒══════════════════════════════╕


│ FALSE NEGATIVE TEST │


╘══════════════════════════════╛


╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮


│ PAYLOAD TYPE │ PASSED │ BYPASSED │ FAILED │


├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤


│ API │ 21 (70.0%) │ 5 (16.67%) │ 4 (13.33%) │


│ CM │ 119 (88.15%) │ 2 (1.48%) │ 14 (10.37%) │


│ GraphQL │ 10 (100.0%) │ 0 │ 0 │


│ LDAP │ 79 (94.05%) │ 0 │ 5 (5.95%) │


│ LFI │ 133 (88.08%) │ 12 (7.95%) │ 6 (3.97%) │


│ MFD │ 8 (88.89%) │ 1 (11.11%) │ 0 │


│ Misc │ 10 (90.91%) │ 0 │ 1 (9.09%) │


│ NoSQLi │ 96 (90.57%) │ 0 │ 10 (9.43%) │


│ OR │ 51 (94.44%) │ 2 (3.7%) │ 1 (1.85%) │


│ RCE │ 270 (92.15%) │ 0 │ 23 (7.85%) │


│ RFI │ 56 (93.33%) │ 0 │ 4 (6.67%) │


│ SQLi │ 248 (92.54%) │ 0 │ 20 (7.46%) │


│ SSI │ 66 (88.0%) │ 6 (8.0%) │ 3 (4.0%) │


│ SSRF │ 61 (92.42%) │ 0 │ 5 (7.58%) │


│ SSTI │ 191 (90.52%) │ 14 (6.64%) │ 6 (2.84%) │


│ UWA │ 27 (100.0%) │ 0 │ 0 │


│ XSS │ 3925 (92.75%) │ 44 (1.04%) │ 263 (6.21%) │


╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯





╒══════════════════════════════╕


│ FALSE POSITIVE TEST │


╘══════════════════════════════╛


╭─────────────────────┬─────────────────────┬─────────────────────┬─────────────────────╮


│ PAYLOAD TYPE │ PASSED │ FALSED │ FAILED │


├─────────────────────┼─────────────────────┼─────────────────────┼─────────────────────┤


│ FP │ 0 │ 18 (94.74%) │ 1 (5.26%) │


╰─────────────────────┴─────────────────────┴─────────────────────┴─────────────────────╯





╒══════════════════════════════╕


│ TOTAL SUMMARY │


╘══════════════════════════════╛


╭────────────────┬────────────────┬────────────────┬────────────────┬────────────────╮


│ TOTAL PAYLOADS │ PASSED (OK) │ FALSED (FP) │ BYPASSED (FN) │ FAILED │


├────────────────┼────────────────┼────────────────┼────────────────┼────────────────┤


│ 5841 │ 5371 (91.95%) │ 18 (0.31%) │ 86 (1.47%) │ 366 (6.27%) │


╰────────────────┴────────────────┴────────────────┴────────────────┴────────────────╯
Показатели, которые вы получили, являются довольно высокими и говорят о высоком уровне защиты (мы при тестировании получаем аналогичные результаты). Что касается расшифровки интересующих полей, то:
BYPASSED - поле, в котором регистрируются запросы, которые привели к обходу свердства защиты или не набрали нужного веса (score) для блокировки запроса. Подобный результат может быть связан с обучающей выборкой, на основе которой была создана поведенческая модель. Уменьшить их количество (и соответственно улучшить результат) можно, но для этого необходимо будет отправлять каждый запрос на анализ модулем машинного обучения, что заметно увеличит нагрузку на аппаратные ресурсы сервера фильтрующей ноды.

FAILED - поле, в котором регистрируются запросы, которые не были отправлены на тестируемое веб-приложения из-за ошибок доступа к нему. Для получения боле точных результатов значение этого поля должно быть 0.

Раздел False Positive содержит легитимные запросы, которые были ошибочно заблокированы. Для проведения этого теста используются тестовые запросы, поэтому при использовании Немезида ВАФ с модулем машинного обучения результаты этого блока можно игнорировать.

Раздел Total Summary содержит итоговую информацию о проведении теста.
 
Back
Top