Шлюз приложений Azure WAF блокирует распространенные запросы ASP.Net Core

Я настроил Azure Application Gateway + WAF перед приложением ASP.Net Core, работающим в Azure WebApp. У меня установлены OWASP 3.0 Правила по умолчанию, которые включены и находятся в режиме предотвращения.

Проблема, с которой я столкнулся, заключается в том, что каждый запрос через WAF так или иначе завершается сбоем, и некоторые правила по умолчанию возвращают 403 - Forbidden status.

Просматривая журналы WAF, я обнаружил, что несколько правил не работают.

  1. Идентифицирована шестнадцатеричная кодировка SQL

    {
        "message": "Warning. Pattern match \"(?i:(?:\\\\A|[^\\\\d])0x[a-f\\\\d]{3,}[a-f\\\\d]*)+\" at REQUEST_COOKIES:ASP.Net_Auth.",
        "data": "Matched Data: H0XAa4 found within REQUEST_COOKIES:AspNetCore.Auth: CfDJ8El_2vmJILFHjQYUCDWwttioV16BAlL12KiQnTLGZztGtA8P0xbo1MosAgmrkUk4IQ7pF5O4ZMJbmRHsHxYHq842rq_hr8FUyMhAMo_5mQ-C_5jBrkRWqUGrYHMa6fVIj4xtGOfku...",
    }
    
  2. Обнаружена последовательность комментариев SQL

    "message": "SQL Comment Sequence Detected.",
    "details": {
            "message": "Warning. Pattern match \"(/\\\\*!?|\\\\*/|[';]--|--[\\\\s\\\\r\\\\n\\\\v\\\\f]|(?:--[^-]*?-)|([^\\\\-&])#.*?[\\\\s\\\\r\\\\n\\\\v\\\\f]|;?\\\\x00)\" at REQUEST_COOKIES:.AspNetCore.Identity.Application.",
            "data": "Matched Data: --Z35d...- found within REQUEST_COOKIES:.AspNetCore.Identity.Application: CfDJ8El_2vmJILFHjQYUCDWwttihjUTpJneEVE1l-3UeTx...",
            "file": "rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf",
            "line": "1053"
    }
    
  3. Превышены пределы PCRE

    {
        "requestUri": "/api/ping?_=240477821",
        "message": "Execution error - PCRE limits exceeded (-8): (null)."
    }
    

Этот url / api / ping не имеет возврата, кроме 200 OK.

Я не могу найти никакой хорошей документации по этим правилам, а также по тому, когда и какое правило следует включать / отключать. Я уверен, что могу отключить их, но мне кажется, что WAF очень агрессивен и улавливает слишком много ложных срабатываний.

Есть ли набор правил по умолчанию, которые являются хорошими, безопасными и совместимыми по умолчанию с приложением ASP.Net Core?


person Corneliu    schedule 16.04.2018    source источник


Ответы (1)


OWASP 3.0 работает на основе суммы баллов, полученных за каждое правило. Один запрос будет обработан набором правил, и каждое правило будет добавлять оценку к запросу, и в конце, если оценка превышает предел, запрос блокируется.

В вашем случае вы можете прочитать определение правила здесь и проверьте, какой балл каждое правило добавляет к конкретному запросу.

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

person msrini-MSIT    schedule 17.11.2019
comment
У меня здесь также есть одно беспокойство. Если у нас есть правило 941140 и мы получаем несколько лимитов PCRE, исключение для этого правила. Что произойдет, когда мы включим это правило для предотвращения, заблокирует ли WAF этот запрос или передаст запрос следующему конвейеру? - person Himanshu Jain; 03.03.2021
comment
WAF заблокирует запрос - person msrini-MSIT; 04.03.2021
comment
Спасибо за ваш ответ. Это их способ справиться с такими ошибками. Хорошо ли увеличить скорость выполнения, чтобы уменьшить предел PCRE. Так как я просматриваю несколько статей и где-то указано увеличить лимит PCRE, а где-то это не рекомендуется. Довольно сложно воспроизвести такие сценарии и найти решение для их исправления. - person Himanshu Jain; 05.03.2021
comment
Не рекомендуется снижать предел PCRE. Но если вы используете шлюз приложений, вы можете использовать исключения для обхода законного трафика. - person msrini-MSIT; 06.03.2021