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
- Per ulteriori informazioni sull'ottimizzazione delle regole WAF, consulta Ottimizzare le regole WAF preconfigurate di Google Cloud Armor