Configurare le regole WAF preconfigurate

Segui queste istruzioni per configurare e ottimizzare le regole WAF (Web Application Firewall) predefinite di Google Cloud Armor per proteggere la tua applicazione dagli attacchi. Se non hai dimestichezza con le regole WAF preconfigurate, consulta la panoramica.

Configurare una regola WAF preconfigurata

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

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

Console

Seleziona Modalità avanzata, quindi utilizza l'espressione di esempio seguente 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

Il secondo esempio è simile al primo, ma disattiva le firme delle regoleSIGNATURE_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 l'espressione di esempio seguente 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

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 se imposti il livello di sensibilità su 0:

Console

Seleziona Modalità avanzata, quindi utilizza l'espressione di esempio seguente 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

In tutti gli esempi precedenti, viene utilizzata una sola espressione per regola. Anche se puoi combinare le espressioni utilizzando l'operatore logico ||, come best practice ti consigliamo di utilizzare una sola espressione per regola per evitare di superare la dimensione massima dell'espressione.

Esempi

Gli esempi in questa sezione mettono in evidenza aspetti importanti della creazione e della regolazione delle regole WAF predefinite, tra cui il livello di sensibilità e le eccezioni alle firme. In tutti i comandi di esempio gcloud, 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, vuoi utilizzare tutte le firme nella regola WAF sqli-v33-stable con un livello di sensibilità inferiore a 4. Pertanto, crei la regola con un 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 l'espressione di esempio seguente 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

Creare una regola che disattivi una o più firme

In questo esempio, vuoi utilizzare 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 controlla le variabili globali JavaScript. Pertanto, crea la regola a 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 l'espressione di esempio seguente 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

Se vuoi escludere due o più firme da una regola, fornisci un elenco di firme separate da virgole con l'argomento opt_out_rule_ids, come nell'esempio seguente:

Console

Seleziona Modalità avanzata, quindi utilizza l'espressione di esempio seguente 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

Crea una regola che attiva una o più firme

In questo esempio, vuoi utilizzare solo la firma owasp-crs-v030001-id941150-xss della regola WAF xss-v33-stable. La firma controlla la presenza di attributi HTML non consentiti ed è a livello di sensibilità 2. Pertanto, crea la regola a 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 se imposta il livello di sensibilità su 0:

Console

Seleziona Modalità avanzata, quindi utilizza l'espressione di esempio seguente 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

Se vuoi includere due o più firme di una regola, fornisci un elenco di firme separate da virgola con l'argomento opt_in_rule_ids, come nell'esempio seguente:

Console

Seleziona Modalità avanzata, quindi utilizza l'espressione di esempio seguente 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

Passaggi successivi