Проблема с безопасностью мода Apache — основной набор правил

#apache #mod-rewrite #mod-security

#apache #переписать мод #мод-безопасность

Вопрос:

В моем приложении я реализовал безопасность мода, и, поскольку она является общей для нескольких URL-адресов, я заблокировал несколько правил для определенного местоположения (URL). Но я ошибка OWASP с указанным ниже URL и не могу или не нахожу способ блокировать правила для этого URL.

Поэтому, пожалуйста, помогите мне заблокировать правило для приведенной ниже проблемы. Журнал ошибок приведен ниже. Заранее спасибо.

 POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 499
Host: accountingdev.com
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.4.1 (Java/1.8.0_72)
Cookie: FA512c3d57865ef2662e9b1421f5c4d8ad=3pr1b0illdbem2kq9f99kfrpn2
Accept-Encoding: gzip,deflate

--a42de647-C--
logoutRequest=@NOT_USED@ST-47-zdTNWjTqaSAbtxbpBPca-abc.com
--a42de647-F--
HTTP/1.1 302 Found
X-Frame-Options: SAMEORIGIN
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store
Pragma: no-cache
Location: https://portal.com/caa/login?service=https://accountingdev..com/
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
csrf-token: D=20647 t=1476445738526589
Content-Length: 493
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
 

Комментарии:

1. Можете ли вы показать правило, которое должно блокировать этот запрос, который не работает?

2. Я хочу отключить набор правил для этого конкретного URL.

3. Какое правило? Или вы хотите отключить все правила для этого URL?

4. ДА. Я хочу отключить все правила для этого конкретного URL.

5. URL-адрес «/», который является домашней страницей. Можно отключить все правила для домашней страницы или для запросов, включая «LogoutRequest» в теле, если это то, что вы хотите. В качестве альтернативы может быть лучше объяснить, какое правило запускается, и просто исключить это правило для этих запросов. На данный момент ваш вопрос неясен относительно того, в чем проблема и что вы хотите сделать.

Ответ №1:

Вы могли бы написать правило, подобное этому:

 SecRule REQUEST_METHOD "POST" "phase:1,id:1234,pass,log,chain"
    SecRule REQUEST_URI "/" "ctl:ruleEngine=Off"
 

Это должно отключить ModSecurity для любых запросов POST, сделанных на домашней странице (непроверенных). Это, конечно, довольно широко и может снять защиту от других запросов POST, сделанных на домашнюю страницу, которую вы хотите проверить.

В качестве альтернативы вы можете сделать это только для поиска этого конкретного запроса:

 SecRule REQUEST_METHOD "POST" "phase:2,id:1234,pass,log,chain"
   SecRule REQUEST_URI "/"
       SecRule ARG_POSTS:logoutRequest "LogoutRequest" "ctl:ruleEngine=Off"
 

Однако это должно быть правилом фазы 2, чтобы просмотреть аргументы POST, которые находятся в ТЕЛЕ и поэтому недоступны на этапе 1. Это может означать, что правила фазы 1 срабатывают еще до того, как они доберутся до этого правила.

Гораздо лучшая идея — настроить запускаемые правила, но для этого нужно сообщить нам, какие это правила, которые вы, похоже, не решаетесь выполнять. Так что я не могу вам в этом помочь, пока вы этого не сделаете.