Azure应用程序网关WAF阻止常见的ASP.Net核心请求

时间:2018-04-16 22:41:23

标签: azure asp.net-core asp.net-identity azure-application-gateway web-application-firewall

我在Azure WebApp上运行的ASP.Net Core应用程序前面配置了Azure Application Gateway + WAF。 我打开了默认的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)."
    }
    
  4. 除了200 OK之外,url / api / ping没有返回。

    我找不到关于这些规则的任何好的文档,无论什么时候应该禁用它们。我相信我可以禁用它们,但我觉得WAF非常具有侵略性,并且会收集太多的误报。

    默认使用ASP.Net Core应用程序是否有一组默认的安全且兼容的默认规则?

1 个答案:

答案 0 :(得分:0)

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

对于您而言,您可以阅读规则定义here并检查每个规则对特定请求的得分。

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