Check ID: waf_regional_webacl_with_rules
Provider: AWS
Service: waf
Severity: MEDIUM
Resource type: AwsWafRegionalWebAcl

What this check verifies

AWS WAF Classic Regional web ACL contains at least one rule or rule group to inspect and act on HTTP(S) requests. An ACL with no entries is considered empty.

Risk

With no rules, the web ACL performs no inspection, letting malicious traffic through.
  • Confidentiality: data exposure via SQLi/XSS
  • Integrity: unauthorized actions or tampering
  • Availability: abuse/bot traffic causing degradation or denial

Recommendation

Populate each web ACL with at least one rule or rule group that inspects requests and enforces least privilege. Apply defense in depth by combining managed and custom rules, include rate controls where appropriate, and review regularly. Default to blocking undesired traffic; only permit required patterns.

Remediation

aws waf-regional update-web-acl --web-acl-id <your-web-acl-id> --change-token $(aws waf-regional get-change-token --query 'ChangeToken' --output text) --updates '[{"Action":"INSERT","ActivatedRule":{"Priority":1,"RuleId":"<your-rule-id>","Action":{"Type":"BLOCK"}}}]'

References

Where this check fires

This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable by Check ID = waf_regional_webacl_with_rules. 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