Configura le regole WAF preconfigurate

Segui queste istruzioni per configurare e ottimizzare le regole web application firewall (WAF) preconfigurate di Cloud Armor per proteggere la tua applicazione dagli attacchi. Se non hai dimestichezza con le regole WAF preconfigurate, consulta la panoramica.

Configura una regola WAF preconfigurata

Questa sezione offre dei template di regole WAF preconfigurate che puoi copiare nella console Google Cloud e personalizzare in base al tuo caso d'uso. In ogni comando Google Cloud CLI di esempio, configurerai una policy di sicurezza con nome POLICY_NAME e priorità PRIORITY.

Il primo esempio configura una regola con nome RULE_NAME e livello di sensibilità SENSITIVITY, che attiva tutte le firme con sensibilità inferiore o uguale a SENSITIVITY. Per saperne di più sulla sensibilità delle regole, consulta Scegli un livello di sensibilità.

Console

Seleziona Modalità avanzata, quindi utilizza la seguente espressione di esempio nel campo Corrispondenza:

evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY})" \
    --action deny-403

Sostituisci quanto segue:

  • PRIORITY: la priorità della policy di sicurezza
  • POLICY_NAME: il nome della policy di sicurezza che vuoi configurare
  • RULE_NAME: il nome della regola WAF che vuoi configurare
  • SENSITIVITY: il livello di sensibilità della regola WAF

Il secondo esempio è simile al primo, ma disattiva le firme delle regole SIGNATURE_1 e SIGNATURE_2. Ciò significa che queste due firme non vengono valutate quando viene valutata la regola WAF:

Console

Seleziona Modalità avanzata, quindi utilizza la seguente espressione di esempio nel campo Corrispondenza:

evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY, 'opt_out_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY, 'opt_out_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})" \
    --action deny-403

Sostituisci quanto segue:

  • PRIORITY: la priorità della policy di sicurezza
  • POLICY_NAME: il nome della policy di sicurezza che vuoi configurare
  • RULE_NAME: il nome della regola WAF che vuoi configurare
  • SENSITIVITY: il livello di sensibilità della regola WAF
  • SIGNATURE_1: il nome della firma WAF che vuoi disattivare
  • SIGNATURE_2: il nome della firma WAF che vuoi disattivare.

Il terzo esempio è simile al secondo, ma anziché disattivare due firme, attivi due firme delle regole. Tieni presente che puoi attivare le firme delle regole solo quando imposti il livello di sensibilità su 0:

Console

Seleziona Modalità avanzata, quindi utilizza la seguente espressione di esempio nel campo Corrispondenza:

evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': 0, 'opt_in_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': 0, 'opt_in_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})" \
    --action deny-403

Sostituisci quanto segue:

  • PRIORITY: la priorità della policy di sicurezza
  • POLICY_NAME: il nome della policy di sicurezza che vuoi configurare
  • RULE_NAME: il nome della regola WAF che vuoi configurare
  • SIGNATURE_1: il nome della firma WAF che vuoi disattivare
  • SIGNATURE_2: il nome della firma WAF che vuoi disattivare

In tutti gli esempi precedenti, utilizzi una sola espressione per regola. Sebbene sia possibile combinare le espressioni utilizzando l'operatore logico OR (||), ti consigliamo di utilizzare una sola espressione per regola come best practice per evitare di superare le dimensioni massime dell'espressione.

Aggiorna il limite di ispezione per le regole WAF preconfigurate

Le regole WAF preconfigurate di Cloud Armor possono ispezionare solo i primi 64 kB (8 kB, 16 kB, 32 kB, 48 kB o 64 kB) di un corpo della richiesta. Puoi configurare manualmente una policy di sicurezza in modo che utilizzi uno di questi limiti di ispezione per le regole WAF preconfigurate.

Il seguente comando imposta il limite di ispezione di tutte le regole WAF preconfigurate disponibili nella policy POLICY_NAME su 8 kB utilizzando il flag --request-body-inspection-size. Per saperne di più sui limiti di ispezione delle regole WAF preconfigurate, consulta Limitazione dell'ispezione del corpo della richiesta.

gcloud compute security-policies update POLICY_NAME \
    --request-body-inspection-size=8kB

Sostituisci POLICY_NAME con il nome della policy di sicurezza che vuoi configurare.

Analogamente, puoi utilizzare il flag --request-body-inspection-size per impostare il limite di ispezione di tutte le regole WAF preconfigurate disponibili nella policy POLICY_NAME su 16 kB, 32 kB, 48 kB o 64 kB.

Mitiga il rischio sul corpo della richiesta che supera il limite di ispezione configurato

Quando una regola WAF preconfigurata viene valutata in una policy di sicurezza Cloud Armor, vengono ispezionati massimo i primi 64 kB (8 kB, 16 kB, 32 kB, 48 kB o 64 kB) di un corpo della richiesta per verificare la corrispondenza della firma con le regole WAF.

Puoi ridurre il rischio derivante da richieste più grandi creando una regola nelle tue policy di sicurezza per garantire che nessun contenuto non ispezionato raggiunga i tuoi backend. Ad esempio, crea una regola per negare il traffico che supera il limite di ispezione configurato di 8 kB (8192 byte) nelle dimensioni del corpo della richiesta. Il seguente comando mostra come creare questa regola:

gcloud compute security-policies rules create 10 \
    --security-policy my-policy \
    --expression "int(request.headers['content-length']) > 8192" \
    --action deny-403 \
    --description "Block requests greater than 8 kB"

Allo stesso modo, puoi creare una regola per negare il traffico che supera i limiti di ispezione configurati di 16 kB, 32 kB, 48 kB o 64 kB nella dimensione del corpo della richiesta. Ad esempio, il seguente comando mostra come creare questa regola per il limite di ispezione di 64 kB (65.536 byte).

gcloud compute security-policies rules create 10 \
    --security-policy my-policy \
    --expression "int(request.headers['content-length']) > 65536" \
    --action deny-403 \
    --description "Block requests greater than 64 kB"

Esempi

Gli esempi in questa sezione evidenziano aspetti importanti della creazione e dell'ottimizzazione delle regole WAF preconfigurate, inclusi il livello di sensibilità e le eccezioni delle firme. In tutti i comandi di esempio di gcloud CLI, creerai una policy di sicurezza con il nome POLICY_NAME con priorità PRIORITY.

Crea una regola a un determinato livello di sensibilità

In questo esempio, utilizzerai tutte le firme nella regola WAF sqli-v33-stable con un livello di sensibilità inferiore a 4. Pertanto, creerai la regola al livello di sensibilità 3, che include tutte le firme con un livello di sensibilità inferiore o uguale a tre:

Console

Seleziona Modalità avanzata, quindi utilizza la seguente espressione di esempio nel campo Corrispondenza:

evaluatePreconfiguredWaf('sqli-v33-stable', {'sensitivity': 3})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('sqli-v33-stable', {'sensitivity': 3})" \
    --action deny-403

Sostituisci quanto segue:

  • PRIORITY: la priorità della policy di sicurezza
  • POLICY_NAME: il nome della policy di sicurezza che vuoi configurare

Crea una regola che disattiva una o più firme

In questo esempio, utilizzerai quasi tutte le firme ai livelli di sensibilità 1 e 2 nella regola WAF xss-v33-stable ma escludendo la firma owasp-crs-v030301-id941370-xss, che verifica le variabili globali JavaScript. Pertanto, creerai la regola al livello di sensibilità 2 e utilizzerai l'argomento opt_out_rule_ids per disattivare la firma owasp-crs-v030301-id941370-xss:

Console

Seleziona Modalità avanzata, quindi utilizza la seguente espressione di esempio nel campo Corrispondenza:

evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss']})" \
    --action deny-403

Sostituisci quanto segue:

  • PRIORITY: la priorità della policy di sicurezza
  • POLICY_NAME: il nome della policy di sicurezza che vuoi configurare

Per escludere due o più firme da una regola, fornisci un elenco di firme separato da virgole con l'argomento opt_out_rule_ids, come segue:

Console

Seleziona Modalità avanzata, quindi utilizza la seguente espressione di esempio nel campo Corrispondenza:

evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss', 'owasp-crs-v030301-id941380-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss', 'owasp-crs-v030301-id941380-xss']})" \
    --action deny-403

Sostituisci quanto segue:

  • PRIORITY: la priorità della policy di sicurezza
  • POLICY_NAME: il nome della policy di sicurezza che vuoi configurare

Crea una regola che attiva una o più firme

Questo esempio utilizza solo la firma owasp-crs-v030001-id941150-xss della regola WAF xss-v33-stable. La firma verifica la presenza di attributi HTML non consentiti e si trova al livello di sensibilità 2. Pertanto, creerai la regola al livello di sensibilità 0 e utilizzerai l'argomento opt_in_rule_ids per attivare la firma owasp-crs-v030001-id941150-xss. Tieni presente che puoi attivare le firme delle regole solo quando imposti il livello di sensibilità su 0:

Console

Seleziona Modalità avanzata, quindi utilizza la seguente espressione di esempio nel campo Corrispondenza:

evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss']})" \
    --action deny-403

Sostituisci quanto segue:

  • PRIORITY: la priorità della policy di sicurezza
  • POLICY_NAME: il nome della policy di sicurezza che vuoi configurare

Per includere due o più firme in una regola, fornisci un elenco di firme separato da virgole con l'argomento opt_in_rule_ids, come segue:

Console

Seleziona Modalità avanzata, quindi utilizza la seguente espressione di esempio nel campo Corrispondenza:

evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss', 'owasp-crs-v030301-id941320-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss', 'owasp-crs-v030301-id941320-xss']})" \
    --action deny-403

Sostituisci quanto segue:

  • PRIORITY: la priorità della policy di sicurezza
  • POLICY_NAME: il nome della policy di sicurezza che vuoi configurare

Passaggi successivi