7

Azure Application Gateway + WAF在 Azure WebApp 上运行的 ASP.Net Core 应用程序前面配置了一个。我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 应用程序兼容?

4

1 回答 1

1

OWASP 3.0 的工作基于它在每条规则中获得的分数总和。单个请求将由一组规则处理,每个规则都会为请求添加一个分数,最后,如果分数超过限制,则请求被阻止。

在您的情况下,您可以在此处阅读规则定义并检查每条规则添加到特定请求的分数是多少。

最后一条规则 PCRE 限制是由于请求被其他规则集获得的分数而无法禁用的强制规则。因此,您需要跟踪其他规则集并禁用或创建排除项以使您的站点正常运行。

于 2019-11-17T15:35:09.430 回答