Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Resource type:
waf_global_webacl_with_rulesProvider: AWS
Service:
wafSeverity: MEDIUM
Resource type:
AwsWafWebAclWhat this check verifies
AWS WAF Classic global web ACLs are evaluated for the presence of at least one rule or rule group that inspects HTTP(S) requestsRisk
With no rules, the web ACL relies solely on its default action. Ifallow, hostile traffic reaches origins uninspected; if block, legitimate traffic can be denied.
- SQLi/XSS can expose data (confidentiality)
- Malicious requests can alter state (integrity)
- Bots and scraping can drain resources (availability)
Recommendation
Populate each global web ACL with effective protections:- Use rule groups and targeted rules (managed, rate-based, IP sets)
- Apply least privilege: default
blockwhere feasible; explicitlyallowrequired traffic - Layer defenses and enable logging to tune policies
- Consider migrating to WAFv2
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.aws.amazon.com/securityhub/latest/userguide/waf-controls.html#waf-8
- https://docs.aws.amazon.com/waf/latest/developerguide/classic-web-acl-editing.html
- https://docs.aws.amazon.com/waf/latest/developerguide/waf-rules.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_global_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