Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Resource type:
waf_regional_rule_with_conditionsProvider: AWS
Service:
wafSeverity: MEDIUM
Resource type:
AwsWafRegionalRuleWhat this check verifies
AWS WAF Classic Regional rules have one or more conditions (predicates) attached (IP, byte/regex, geo, size, SQLi/XSS) to define which requests the rule evaluatesRisk
An empty rule never matches, letting traffic bypass that control. This weakens defense-in-depth and can impact confidentiality (data exfiltration), integrity (SQLi/XSS), and availability (missing rate/size limits), depending on Web ACL order and default action.Recommendation
Define precise conditions for each rule (e.g., IP, pattern, geo, size) and avoid placeholder rules. Apply least privilege filtering, review rule order, and use layered controls for defense in depth. Regularly validate and monitor rule effectiveness.Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.aws.amazon.com/waf/latest/developerguide/classic-web-acl-rules-editing.html
- https://docs.aws.amazon.com/securityhub/latest/userguide/waf-controls.html#waf-2
- https://docs.aws.amazon.com/config/latest/developerguide/waf-regional-rule-not-empty.html
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = waf_regional_rule_with_conditions. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks