Назад | Перейти на главную страницу

mod_security: отключить проверку файлов cookie, вызывающую ложное срабатывание SQLI

Я пытаюсь настроить mod_security на CentOS 7 для apache2.4 с набором правил OWASP. Дело в том, что мое веб-приложение создает файл cookie с символами - и помечается как SQLI. Я прочитал следующую статью как внести в белый список определенную строку cookie в ModSecurity чтобы попытаться отключить виновный cookie, но мне с этим не повезло: я все еще получаю 403 запрещено.

Я попытался добавить в свой whitelist.conf (в папке modsecurity.d /) следующее правило: SecRuleUpdateTargetByMsg «Обнаружена последовательность комментариев SQL». ! REQUEST_COOKIES: / ^ * Заголовок * (в той же строке c):

Я получаю 403 запрещено, если есть cookie. Я попытался создать файл, как указано в статье, и добавил правило в файл /etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_61_customrules.conf, но все равно ничего: меня заблокировали.

Это проблематично, поскольку этот файл cookie является допустимым. Изменился ли способ решения этой проблемы в текущей версии mod_security? Или я все еще что-то не так делаю? Спасибо за вашу помощь.

редактировать:

С правилом для каждого идентификатора, который выглядит так: SecRuleUpdateTargetById 981172! REQUEST_COOKIES_NAMES: / ^ TitleBox / Работает

По одному на сообщение вроде этого: SecRuleUpdateTargetByMsg «Обнаружена последовательность комментариев SQL». ! REQUEST_COOKIES_NAMES: / ^ TitleBox Он не работает и по-прежнему блокирует мой файл cookie

Вопрос, с которым вы связались, касался правила 981231 внесения в белый список, которое выглядит так:

SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "(/\*!?|\*/|[';]--|--[\s\r\n\v\f]|(?:--[^-]*?-)|([^\-&])#.*?[\s\r\n\v\f]|;?\\x00)" "phase:2,rev:'2',ver:'OWASP_CRS/2.2.9',maturity:'8',accuracy:'8',\
id:'981231',t:none,t:urlDecodeUni,block,\
msg:'SQL Comment Sequence Detected.'\
,severity:'2',capture,logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}',tag:'OWASP_CRS/WEB_ATTACK/SQL_INJECTION',tag:'WASCTC/WASC-19',tag:'OWASP_TOP_10/A1',tag:'OWASP_AppSensor/CIE1',tag:'PCI/6.5.2',setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},setvar:tx.sql_injection_score=+1,setvar:'tx.msg=%{rule.msg}',setvar:tx.%{rule.id}-OWASP_CRS/WEB_ATTACK/SQL_INJECTION-%{matched_var_name}=%{tx.0}"

Вы пытаетесь внести 981172 в белый список, который выглядит так:

SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES "([\~\!\@\#\$\%\^\&\*\(\)\-\+\=\{\}\[\]\|\:\;\"\'\´\’\‘\`\<\>].*?){8,}" "phase:2,t:none,t:urlDecodeUni,block,\
id:'981172',rev:'2',ver:'OWASP_CRS/2.2.9',maturity:'9',accuracy:'8',\
msg:'Restricted SQL Character Anomaly Detection Alert - Total # of special characters exceeded',\
capture,logdata:'Matched Data: %{TX.1} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}',tag:'OWASP_CRS/WEB_ATTACK/SQL_INJECTION',setvar:tx.anomaly_score=+%{tx.warning_anomaly_score},setvar:tx.sql_injection_score=+1,setvar:'tx.msg=%{rule.msg}',setvar:tx.%{rule.id}-OWASP_CRS/WEB_ATTACK/RESTRICTED_SQLI_CHARS-%{matched_var_name}=%{tx.0}"

Как видите, сообщение для этого правила отличается, поэтому вы вносите в белый список не то сообщение. Следовательно, почему это не работает для вас.