mirror of
https://github.com/BagelHole/DevOps-Security-Agent-Skills.git
synced 2026-08-22 12:49:53 +02:00
2.3 KiB
2.3 KiB
WAF Rules Reference
AWS WAF
Managed Rules
resource "aws_wafv2_web_acl" "main" {
name = "myapp-waf"
scope = "REGIONAL"
default_action {
allow {}
}
# AWS Managed Rules - Core
rule {
name = "AWSManagedRulesCommonRuleSet"
priority = 1
override_action { none {} }
statement {
managed_rule_group_statement {
vendor_name = "AWS"
name = "AWSManagedRulesCommonRuleSet"
}
}
visibility_config {
cloudwatch_metrics_enabled = true
metric_name = "CommonRuleSet"
sampled_requests_enabled = true
}
}
# SQL Injection
rule {
name = "AWSManagedRulesSQLiRuleSet"
priority = 2
override_action { none {} }
statement {
managed_rule_group_statement {
vendor_name = "AWS"
name = "AWSManagedRulesSQLiRuleSet"
}
}
visibility_config {
cloudwatch_metrics_enabled = true
metric_name = "SQLiRuleSet"
sampled_requests_enabled = true
}
}
}
Custom Rules
# Rate limiting
rule {
name = "RateLimit"
priority = 0
action { block {} }
statement {
rate_based_statement {
limit = 2000
aggregate_key_type = "IP"
}
}
}
# Geo blocking
rule {
name = "GeoBlock"
priority = 3
action { block {} }
statement {
geo_match_statement {
country_codes = ["CN", "RU"]
}
}
}
Cloudflare WAF
resource "cloudflare_ruleset" "waf" {
zone_id = var.zone_id
name = "WAF Rules"
kind = "zone"
phase = "http_request_firewall_managed"
rules {
action = "execute"
action_parameters {
id = "efb7b8c949ac4650a09736fc376e9aee" # OWASP Core Ruleset
}
expression = "true"
}
}
Common Attack Patterns
| Pattern | Description | Rule |
|---|---|---|
| SQLi | SQL Injection | Block ' OR 1=1, UNION |
| XSS | Cross-Site Scripting | Block <script>, event handlers |
| LFI | Local File Inclusion | Block ../, /etc/passwd |
| RCE | Remote Code Execution | Block shell commands |
Best Practices
- Start in monitoring mode
- Tune rules for false positives
- Use rate limiting
- Block known bad IPs
- Log all blocked requests
- Regular rule review