Configurare le regole WAF preconfigurate

Utilizza queste istruzioni per configurare e ottimizzare le regole web application firewall (WAF) preconfigurate di Google Cloud Armor per proteggere l'applicazione dagli attacchi. Se non hai familiarità con le regole WAF preconfigurate, consulta la panoramica.

Configurare una regola WAF preconfigurata

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

Il primo esempio configura una regola con un nome di regola RULE_NAME e un 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 Scegliere 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 per cui vuoi disattivare la funzionalità
  • SIGNATURE_2: il nome della firma WAF per cui vuoi disattivare la funzionalità.

Il terzo esempio è simile al secondo, ma anziché disattivare due firme, attivi due firme di 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 per cui vuoi disattivare la funzionalità
  • SIGNATURE_2: il nome della firma WAF per cui vuoi disattivare la funzionalità

In tutti gli esempi precedenti, utilizzi una sola espressione per regola. Sebbene tu possa 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.

Aggiornare il limite di ispezione per le regole WAF preconfigurate

Le regole WAF preconfigurate di Google 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 norma 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 nel criterio POLICY_NAME su 8 kB utilizzando il flag --request-body-inspection-size. Per ulteriori informazioni sui limiti di ispezione delle regole WAF preconfigurate, consulta Limitazione dell'ispezione del corpo delle richieste POST e PATCH.

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

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

Allo stesso modo, puoi utilizzare il flag --request-body-inspection-size per impostare il limite di ispezione di tutte le regole WAF preconfigurate disponibili nel criterio POLICY_NAME su 16 kB, 32 kB, 48 kB o 64 kB.

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

Quando una regola WAF preconfigurata viene valutata in un criterio di sicurezza Google Cloud Armor, vengono ispezionati fino ai 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 mitigare il rischio derivante da richieste più grandi creando una regola nelle tue norme di sicurezza per contribuire a 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 nelle dimensioni del corpo della richiesta. Ad esempio, il seguente comando mostra come creare questa regola per il limite di ispezione di 64 kB (65536 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 alle firme. In tutti i comandi di esempio di gcloud CLI, crei un criterio di sicurezza con il nome POLICY_NAME con priorità PRIORITY.

Creare una regola a un determinato livello di sensibilità

In questo esempio, utilizzi tutte le firme nella regola WAF sqli-v33-stable con un livello di sensibilità inferiore a 4. Pertanto, crei 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, utilizzi quasi tutte le firme a livello di sensibilità 1 e 2 nella regola WAF xss-v33-stable, ma vuoi escludere la firma owasp-crs-v030301-id941370-xss, che verifica le variabili globali JavaScript. Pertanto, crea la regola al livello di sensibilità 2 e utilizza 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 separate 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. Il controllo della firma verifica la presenza di attributi HTML non consentiti e si trova al livello di sensibilità 2. Pertanto, crea la regola al livello di sensibilità 0 e utilizza 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

Se vuoi includere due o più firme da una regola, fornisci un elenco di firme separate 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