Google Cloud Armor fornisce
regole WAF preconfigurate, ognuna composta da
più firme provenienti dalla
ModSecurity Core Rules Set (CRS).
Ogni firma corrisponde a un rilevamento di attacco
nel set di regole. Le richieste in entrata vengono valutate in base alle regole WAF preconfigurate.
Una richiesta corrisponde a una regola WAF preconfigurata se corrisponde a uno dei
firme associate alla regola WAF preconfigurata. Viene fatta una corrispondenza quando
l'espressione evaluatePreconfiguredWaf()
o evaluatePreconfiguredExpr()
restituisce il valore true
.
Scegli un livello di sensibilità
Ogni firma ha un livello di sensibilità che corrisponde a un ModSecurity
a livello di paranoia.
Puoi selezionare una sensibilità compresa tra 0
e 4
, anche se il livello di sensibilità è 0
significa che nessuna regola è abilitata per impostazione predefinita.
Un livello di sensibilità più basso indica firme di confidenza maggiori, che sono meno
che genererà un falso positivo. Un livello di sensibilità più alto aumenta
sicurezza, ma aumenta anche il rischio di generare un falso positivo. Quando
seleziona un livello di sensibilità per la regola WAF, attivi le firme nella
livelli di sensibilità inferiori o uguali al livello di sensibilità selezionato. Nella
nell'esempio seguente, puoi ottimizzare una regola WAF preconfigurata selezionando
livello di sensibilità di 1
:
evaluatePreconfiguredWaf('sqli-v33-stable', {'sensitivity': 1})
Firme delle regole di disattivazione
Se decidi che una regola WAF preconfigurata soddisfa più richieste del necessario,
oppure, se blocca il traffico che deve essere consentito, può essere
ottimizzato per disattivare firme rumoroso o comunque non necessario. Per disattivare le firme
in una particolare regola WAF preconfigurata, fornisci un elenco di ID dei
nell'espressione evaluatePreconfiguredWaf()
.
L'esempio seguente esclude due ID regola CRS dall'elenco preconfigurato
sqli-v33-stable
(CRS 3.3) Regola WAF:
evaluatePreconfiguredWaf('sqli-v33-stable', {'sensitivity': 4, 'opt_out_rule_ids': ['owasp-crs-v030301-id942350-sqli', 'owasp-crs-v030301-id942360-sqli']})
Quando disattivi gli ID firma dalle serie di regole CRS preconfigurate, devi corrispondere la versione dell'ID firma con la versione del set di regole (CRS 3.0 o 3.3) per evitare di configurazione.
Puoi anche disattivare gli ID firma utilizzando l'espressione precedente
evaluatePreconfigureExpr()
. Per ulteriori informazioni sulla regola WAF preconfigurata
le espressioni, consulta
riferimento al linguaggio delle regole personalizzate.
Firme delle regole di attivazione
Invece di disattivare le firme delle regole, puoi attivarle in
altrimenti disattivati. Ti consigliamo di attivare la regola
firme quando ce ne sono meno da utilizzare in un determinato
di sensibilità del prodotto rispetto alle regole che vuoi disattivare. Per attivare la regola
firme, il livello di sensibilità deve essere 0
. Nell'esempio che segue viene disattivata la funzionalità
tutte le firme (cve-canary
) a tutti i livelli di sensibilità, poi sceglie esplicitamente di eseguire l'attivazione
tra owasp-crs-v030001-id044228-cve
e owasp-crs-v030001-id144228-cve
:
evaluatePreconfiguredWaf('cve-canary', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030001-id044228-cve', 'owasp-crs-v030001-id144228-cve']})
Escludi i campi di richiesta dall'ispezione
L'applicazione personalizzata potrebbe includere contenuti nei campi di richiesta (come intestazioni, cookie, parametri di ricerca o URI) che corrispondono alle firme regole WAF preconfigurate, ma che sai essere legittime. In questo caso, puoi ridurre i falsi positivi escludendo quei campi di richiesta dall'ispezione associazione di un elenco di esclusioni per i campi di richiesta al criterio di sicurezza personalizzata.
Quando configuri un'esclusione di campo di richiesta, la associ a una destinazione, che può essere un'intera regola WAF preconfigurata o un elenco di firme in un una regola WAF preconfigurata. Puoi specificare una corrispondenza esatta o parziale utilizzando un campo e un valore del campo. Gli operatori di campo disponibili sono i seguenti:
EQUALS
: l'operatore trova una corrispondenza se il valore del campo è uguale al valore specificato.STARTS_WITH
: l'operatore trova una corrispondenza se il valore del campo inizia con il valore specificato.ENDS_WITH
: l'operatore trova una corrispondenza se il valore del campo termina con il valore specificato.CONTAINS
: l'operatore trova una corrispondenza se il valore del campo contiene il valore specificato.EQUALS_ANY
: l'operatore trova una corrispondenza se il valore del campo è qualsiasi valore.
Le sezioni seguenti forniscono ulteriori informazioni sulla richiesta che puoi escludere dall'ispezione, seguiti da esempi.
Intestazioni delle richieste
Un elenco di nomi di intestazioni di richieste il cui valore è escluso dall'ispezione durante di valutazione delle regole WAF preconfigurate.
L'esclusione si applica solo alle firme nel target che controllava inizialmente il valore dell'intestazione della richiesta. Sono inclusi le firme associate al seguente flag della richiesta in il ModSecurity Core Rule Set:
- REQUEST_HEADERS
Solo il valore delle intestazioni della richiesta specificate viene escluso dall'ispezione. Il nome è ancora controllato.
Richiedi cookie
Un elenco di nomi dei cookie delle richieste il cui valore è escluso dall'ispezione durante di valutazione delle regole WAF preconfigurate.
L'esclusione è applicabile solo alle firme nella destinazione che eseguono l'ispezione il valore del cookie di richiesta originale. Sono incluse le firme associati al seguente flag della richiesta il ModSecurity Core Rule Set:
- REQUEST_COOKIES
Solo il valore dei cookie di richiesta specificati viene escluso dall'ispezione. Il nome è ancora controllato.
Richiedi parametri di ricerca
Un elenco di nomi di parametri di query della richiesta il cui valore è escluso dall'ispezione durante la valutazione delle regole WAF preconfigurate.
L'esclusione si applica solo alle firme nel target che controlla prima i parametri della richiesta. Sono inclusi le firme associate ai seguenti flag della richiesta in il ModSecurity Core Rule Set:
- ARGS
- ARGS_GET
- REQUEST_URI
- REQUEST_URI_RAW
- REQUEST_LINE
Solo il valore dei parametri di ricerca specificati viene escluso da controllo, che può essere nella stringa di query o nel corpo POST. La è ancora in fase di ispezione.
Poiché parametri di ricerca fanno parte dell'URI e della riga della richiesta,
questi campi vengono riassemblati per l'ispezione dopo aver escluso i
parametri di ricerca specificati. Tuttavia, per le firme che esaminano
l'intero corpo della richiesta (come le firme associate al parametro
flag di richiesta REQUEST_BODY
), l'esclusione per parametri di ricerca non viene applicata.
Ad esempio, se escludi un parametro di query denominato "args", potresti comunque vedere una corrispondenza a una firma che controlla l'intero corpo della richiesta se la richiesta ha un "args" nel corpo del POST e il valore "args" corrispondenze.
URI di richiesta
Un elenco di URI della riga della richiesta, esclusi i dati della stringa di query da utilizzare esclusi dall'ispezione durante la valutazione delle regole WAF preconfigurate.
L'esclusione si applica solo alle firme nel target che controllava in origine l'URI della richiesta. Sono incluse le firme associati ai seguenti flag di richiesta nel Set di regole di base ModSecurity:
- REQUEST_URI
- REQUEST_URI_RAW
- REQUEST_LINE
- REQUEST_FILENAME
- REQUEST_BASENAME
Quando escludi uno dei campi precedenti, il campo viene escluso. interamente dall'ispezione e non viene eseguito riassemblaggio.
Valori dei campi
Devi specificare un valore del campo se utilizzi un operatore di campo diverso da
EQUALS_ANY
.
Per le intestazioni delle richieste, i cookie delle richieste e i parametri di ricerca delle richieste, il parametro il set di caratteri consentito per i valori dei campi comprende i seguenti caratteri:
!
,#
,$
,%
,&
,*
,+
,-
,.
,^
,_
,`
,|
,~
- Caratteri alfabetici da
A
aZ
(maiuscole e maiuscole) - Numero di caratteri da
0
a9
Quando applichi esclusioni per questi campi di richiesta, i valori dei campi configurati vengono confrontate con i valori (senza distinzione tra maiuscole e minuscole, dopo trasformazione) dalla richiesta. Non è previsto che tu esegua se desideri escludere un carattere specifico non incluso nel campo set di caratteri.
Per gli URI delle richieste, il valore del campo deve essere in un formato URI, ad esempio:
- Uno schema è consentito, ma è limitato solo a http o https.
- Un host è consentito e può essere un indirizzo IP.
- È consentita una porta.
- È consentito un percorso.
- Non è consentita una query.
- Non è consentito utilizzare un frammento.
Quando applichi esclusioni per gli URI della richiesta, i valori dei campi configurati sono rispetto agli URI (senza distinzione tra maiuscole e minuscole, dopo la trasformazione) dalla riga della richiesta, esclusa la stringa di query. Gli URI la riga della richiesta può essere relativa o assoluta. Tieni presente questo aspetto durante la configurazione esclusioni per gli URI della richiesta.
Esempi
Il primo esempio aggiorna la regola nel criterio di sicurezza POLICY_1 in
PRIORITY per aggiungere una configurazione di esclusione per tutte le firme in
la regola WAF sqli-v33-stable
, per escludere tutti i cookie di richiesta dall'ispezione:
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \ --security-policy POLICY_1 \ --target-rule-set "sqli-v33-stable" \ --request-cookie-to-exclude "op=EQUALS_ANY"
Il secondo esempio aggiorna la regola nel criterio di sicurezza POLICY_2
in PRIORITY per aggiungere una configurazione di esclusione per le firme
owasp-crs-v030301-id941140-xss
e owasp-crs-v030301-id941270-xss
nel
xss-v33-stable
regola WAF, per escludere le intestazioni delle richieste che iniziano con
abc
o termina con xyz
dall'ispezione:
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \ --security-policy POLICY_2 \ --target-rule-set "xss-v33-stable" \ --target-rule-ids "owasp-crs-v030301-id941140-xss" "owasp-crs-v030301-id941270-xss" \ --request-header-to-exclude "op=STARTS_WITH,val=abc" \ --request-header-to-exclude "op=ENDS_WITH,val=xyz"
Il terzo esempio aggiorna la regola nel criterio di sicurezza POLICY_3
in PRIORITY per rimuovere tutte le esclusioni dei campi di richiesta per la regola
ID owasp-crs-v030301-id942110-sqli
e owasp-crs-v030301-id942120-sqli
in sqli-v33-stable
.
gcloud compute security-policies rules remove-preconfig-waf-exclusion PRIORITY \ --security-policy POLICY_3 \ --target-rule-set "sqli-v33-stable" \ --target-rule-ids "owasp-crs-v030301-id942110-sqli,owasp-crs-v030301-id942120-sqli"
Applica l'analisi ai valori di intestazione Content-Type
personalizzati
Quando Google Cloud Armor valuta il corpo POST in base alle regole WAF preconfigurate,
L'intestazione Content-Type
indica il formato dei dati nel corpo della richiesta. Di
per impostazione predefinita, Google Cloud Armor tratta i contenuti del corpo del POST come uno solo
tutte idonee per l'ispezione e la corrispondenza sul tuo
regole WAF preconfigurate. Tuttavia, puoi configurare un'analisi più precisa se il tuo
per le richieste in entrata hanno una codifica diversa. Google Cloud Armor supporta
i seguenti tipi di codifica:
- JSON
- GraphQL
Per ulteriori informazioni, consulta la sezione Analisi dei contenuti del corpo del POST.
Passaggi successivi
- Scopri di più sulla configurazione dei criteri di sicurezza.
- Scopri di più su quali firme delle regole sono disponibili regole WAF preconfigurate.
- Scopri di più sulle regole WAF preconfigurate utilizzando riferimento al linguaggio delle regole personalizzate.