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 sicurezzaPOLICY_NAME
: il nome della policy di sicurezza che vuoi configurareRULE_NAME
: il nome della regola WAF che vuoi configurareSENSITIVITY
: 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 sicurezzaPOLICY_NAME
: il nome della policy di sicurezza che vuoi configurareRULE_NAME
: il nome della regola WAF che vuoi configurareSENSITIVITY
: il livello di sensibilità della regola WAFSIGNATURE_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 sicurezzaPOLICY_NAME
: il nome della policy di sicurezza che vuoi configurareRULE_NAME
: il nome della regola WAF che vuoi configurareSIGNATURE_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 sicurezzaPOLICY_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 sicurezzaPOLICY_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 sicurezzaPOLICY_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 sicurezzaPOLICY_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 sicurezzaPOLICY_NAME
: il nome della policy di sicurezza che vuoi configurare
Passaggi successivi
- Per saperne di più sull'ottimizzazione delle regole WAF, consulta Ottimizzare le regole WAF preconfigurate di Google Cloud Armor