Skip to content

Commit 3870ad6

Browse files
committed
Add information about anomaly scoring and rule ID 949110
1 parent 1f49d80 commit 3870ad6

File tree

2 files changed

+30
-23
lines changed

2 files changed

+30
-23
lines changed

articles/web-application-firewall/afds/waf-front-door-drs.md

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@ ms.service: web-application-firewall
55
author: vhorne
66
ms.author: victorh
77
ms.topic: conceptual
8-
ms.date: 06/15/2022
8+
ms.date: 08/21/2022
99
---
1010

1111
# Web Application Firewall DRS rule groups and rules
1212

1313
Azure Front Door web application firewall (WAF) protects web applications from common vulnerabilities and exploits. Azure-managed rule sets provide an easy way to deploy protection against a common set of security threats. Since such rule sets are managed by Azure, the rules are updated as needed to protect against new attack signatures. Default rule set also includes the Microsoft Threat Intelligence Collection rules that are written in partnership with the Microsoft Intelligence team to provide increased coverage, patches for specific vulnerabilities, and better false positive reduction.
1414

15-
1615
## Default rule sets
1716

1817
Azure-managed Default Rule Set includes rules against the following threat categories:
@@ -40,23 +39,26 @@ Custom rules are always applied before rules in the Default Rule Set are evaluat
4039

4140
The Microsoft Threat Intelligence Collection rules are written in partnership with the Microsoft Intelligence team to provide increased coverage, patches for specific vulnerabilities, and better false positive reduction.
4241

43-
### Anomaly Scoring mode
42+
### Anomaly scoring mode
43+
44+
OWASP has two modes for deciding whether to block traffic: *traditional* mode and anomaly scoring* mode.
4445

45-
OWASP has two modes for deciding whether to block traffic: Traditional mode and Anomaly Scoring mode.
46+
In the traditional mode, traffic that matches any rule is considered independently of any other rule matches. This mode is easy to understand. But the lack of information about how many rules match a specific request is a limitation.
4647

47-
In Traditional mode, traffic that matches any rule is considered independently of any other rule matches. This mode is easy to understand. But the lack of information about how many rules match a specific request is a limitation. So, Anomaly Scoring mode was introduced. It's the default for OWASP 3.*x*.
48+
The anomaly scoring mode was introduced in the OWASP 3.*x* rule sets, and it's the default mode. Traffic that matches any rule isn't immediately blocked when the firewall is in Prevention mode. Rules have a severity: *Critical*, *Error*, *Warning*, or *Notice*. The severity affects a numeric value for the request, which is called the *anomaly score*:
4849

49-
In Anomaly Scoring mode, traffic that matches any rule isn't immediately blocked when the firewall is in Prevention mode. Rules have a certain severity: *Critical*, *Error*, *Warning*, or *Notice*. That severity affects a numeric value for the request, which is called the Anomaly Score. For example, one *Warning* rule match contributes 3 to the score. One *Critical* rule match contributes 5.
50+
| Severity | Contributes to anomaly score |
51+
|-|-|
52+
| Critical | 5 |
53+
| Error | 4 |
54+
| Warning | 3 |
55+
| Notice | 2 |
5056

51-
|Severity |Value |
52-
|---------|---------|
53-
|Critical |5|
54-
|Error |4|
55-
|Warning |3|
56-
|Notice |2|
57+
If the anomaly score is 5 or greater, WAF blocks the request.
5758

58-
There's a threshold of 5 for the Anomaly Score to block traffic. So, a single *Critical* rule match is enough for the WAF to block a request, even in Prevention mode. But one *Warning* rule match only increases the Anomaly Score by 3, which isn't enough by itself to block the traffic. For more information, see [What content types does WAF support?](waf-faq.yml#what-content-types-does-waf-support-) in the FAQ to learn what content types are supported for body inspection with different DRS versions.
59+
For example, a single *Critical* rule match is enough for the WAF to block a request, because the overall anomaly score is 5. However, one *Warning* rule match only increases the anomaly score by 3, which isn't enough by itself to block the traffic.
5960

61+
For information about which content types are supported for body inspection with different DRS versions, see [What content types does WAF support?](waf-faq.yml#what-content-types-does-waf-support-) in the FAQ.
6062

6163
### DRS 2.0
6264

@@ -118,9 +120,6 @@ DRS 2.0 includes 17 rule groups, as shown in the following table. Each group con
118120
|**[MS-ThreatIntel-WebShells](#drs9905-10)**|Protect against Web shell attacks|
119121
|**[MS-ThreatIntel-CVEs](#drs99001-10)**|Protect against CVE attacks|
120122

121-
122-
123-
124123
### Bot rules
125124

126125
|Rule group|Description|
@@ -129,10 +128,7 @@ DRS 2.0 includes 17 rule groups, as shown in the following table. Each group con
129128
|**[GoodBots](#bot200)**|Identify good bots|
130129
|**[UnknownBots](#bot300)**|Identify unknown bots|
131130

132-
133-
134-
The following rule groups and rules are available when using Web Application Firewall on Azure
135-
Front Door.
131+
The following rule groups and rules are available when using Web Application Firewall on Azure Front Door.
136132

137133
# [DRS 2.0](#tab/drs20)
138134

@@ -289,7 +285,6 @@ Front Door.
289285
>[!NOTE]
290286
> This article contains references to the term *blacklist*, a term that Microsoft no longer uses. When the term is removed from the software, we’ll remove it from this article.
291287
292-
293288
### <a name="drs942-20"></a> SQLI - SQL Injection
294289
|RuleId|Description|
295290
|---|---|
@@ -335,7 +330,6 @@ Front Door.
335330
|942500|MySQL in-line comment detected.|
336331
|942510|SQLi bypass attempt by ticks or backticks detected.|
337332

338-
339333
### <a name="drs943-20"></a> SESSION-FIXATION
340334
|RuleId|Description|
341335
|---|---|
@@ -383,6 +377,13 @@ Front Door.
383377
|99001015|Attempted Spring Framework unsafe class object exploitation [CVE-2022-22965](https://www.cve.org/CVERecord?id=CVE-2022-22965)|
384378
|99001016|Attempted Spring Cloud Gateway Actuator injection [CVE-2022-22947](https://www.cve.org/CVERecord?id=CVE-2022-22947)
385379

380+
> [!NOTE]
381+
> When reviewing your WAF's logs, you might see rule ID 949110, which has a description of *Mandatory rule. Cannot be disabled. Inbound Anomaly Score Exceeded*.
382+
>
383+
> This rule indicates that the total anomaly score for the request exceeded the maximum allowable score. For more information, see [Anomaly scoring mode](#anomaly-scoring-mode).
384+
>
385+
> When you tune your WAF policies, you need to investigate the other rules that were triggered by the request so that you can adjust your WAF's configuration. For more information, see [Tuning Web Application Firewall (WAF) for Azure Front Door](waf-front-door-tuning.md).
386+
386387
# [DRS 1.1](#tab/drs11)
387388

388389
## <a name="drs11"></a> 1.1 rule sets

articles/web-application-firewall/afds/waf-front-door-tuning.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: web-application-firewall
55
author: mohitkusecurity
66
ms.service: web-application-firewall
77
ms.topic: conceptual
8-
ms.date: 12/11/2020
8+
ms.date: 08/21/2022
99
ms.author: mohitku
1010
ms.reviewer: victorh
1111
ms.custom: devx-track-azurepowershell
@@ -271,6 +271,12 @@ Another way to view request and response headers is to look inside the developer
271271

272272
If the request contains cookies, the Cookies tab can be selected to view them in Fiddler. Cookie information can also be used to create exclusions or custom rules in WAF.
273273

274+
## Anomaly scoring rule
275+
276+
If you see rule ID 949110 during the process of tuning your WAF, this indicates that the request was blocked by the [anomaly scoring](waf-front-door-drs.md#anomaly-scoring-mode) process.
277+
278+
Review the other WAF log entries for the same request, by searching for the log entries with the same tracking reference. Look at each of the rules that were triggered, and tune each rule by following the guidance throughout this article.
279+
274280
## Next steps
275281

276282
- Learn about [Azure web application firewall](../overview.md).

0 commit comments

Comments
 (0)