由于 Scriptresource.axd,WAF 正在阻止 ASP.NET 网站

WAF is blocking ASP.NET website due to Scriptresource.axd

ASP.NET (Framework 3.5, IIS 8.5, windows server 2012R2) with Ajax control toolkit is being blocked by WAF (Web Applications Firewall). Following is the screen shot from WAF

These are signatures from WAF

I tried disabling ajax components at the web page but still getting same problem.

Any suggestions ??

它引用了评级为 "HIGH" 的 ASP.NET 填充攻击向量。根据您的 WAF,这可能是阻止您的应用程序的预构建签名,并且可能与 Ajax 控件没有直接关系。

CVE-2010-3332

有几条路线可供选择:

  1. 确定您是否确实在解密期间暴露了敏感的 IIS 错误代码并在代码中解决。这是一个旧的 CVE,所以最新的 ASP.NET 将减轻它的影响。剩下的就交给开发者了。
  2. 验证您的系统是最新的补丁(ASP 更新,Windows 更新,任何更新)。 Microsoft 漏洞已在补丁 MS10-070 中修复。
  3. 如果这实际上是误报,您需要训练 WAF 将此代码和应用程​​序行为视为可接受的。如果您已用尽代码和补丁并确定这不是导致签名块的 CVE,则这是最后的手段。

Web 应用程序防火墙与传统防火墙(或 NG)有很大不同,因为它们需要针对特定​​应用程序进行定制才能正常工作。这很痛苦,但需要它来正确保护单个应用程序。

您的 WAF 应该能够 运行 在学习透明模式下理解可接受的行为并围绕默认应用程序行为创建策略。学习过程完成后,您就可以开启强制行为并对错误发出警报。然后修复 WAF 或应用程序中的错误。一旦完成,您就可以强制执行并阻止错误。如何实现取决于 WAF 供应商。

由于这是一个 CVE 签名块,您可能需要深入了解 .Net 如何处理 URL。

许多托管公司使用 Plesk 控制面板,它默认实现了 ModSecurity Web 应用程序防火墙 (WAF)。虽然您可以完全关闭 Plesk 上的 Web 应用程序防火墙 (WAF),但这不是一个好主意,因为 WAF 的目的是帮助保护您的网站免受各种攻击。相反,仅关闭导致问题的特定规则 ID。

在这种情况下,WAF 是 AJAX 调用所必需的块 .axd 文件。因此,您需要在您的网站上允许 .axd 文件,即“Scriptresource.axd”和“WebResource.axd”。

  1. 通过打开 Plesk WAF 页面上的“ModSecurity 日志文件”来识别被违反的特定规则 ID。

  2. 在日志文件中搜索 403 Access Denied 消息,然后查找类似于 [id "942440"] 的子字符串。这是被违反的规则 ID。对于 ModSecurity 2.9,942440 规则是阻止 .axd 文件的规则。

  3. 关闭适用于此问题的“安全规则”,方法是在 Plesk WAF 页面的“关闭安全规则”部分输入 ID 号。在此示例中,您只需在文本框中键入数字“920440”。