Regole e gruppi di regole CRS di Web application firewall

Il Web application firewall (WAF) di Gateway applicazione protegge le applicazioni Web da vulnerabilità ed exploit comuni. Questa operazione viene eseguita tramite regole definite in base ai set di regole di base OWASP 3.2, 3.1, 3.0 o 2.2.9. Queste regole possono essere disabilitate regola per regola. Questo articolo contiene le regole e i set di regole correnti offerti.

Set di regole principali

Il WAF del gateway applicazione è preconfigurato con CRS 3.0 per impostazione predefinita. È tuttavia possibile scegliere di usare CRS 3.2, 3.1 o 2.2.9.

CRS 3.2 (anteprima pubblica) offre un nuovo motore e nuovi set di regole per la difesa da virus Java, un set iniziale di controlli di caricamento di file, falsi positivi corretti e altro ancora.

CRS 3.1 offre falsi positivi ridotti rispetto a CRS 3.0 e 2.2.9. È anche possibile personalizzare le regole in base alle proprie esigenze.

Gestisce le regole

WaF protegge dalle vulnerabilità Web seguenti:

  • SQL attacchi injection
  • Attacchi di tipo cross-site scripting (XSS)
  • Altri attacchi comuni, ad esempio l'inserimento di comandi, il traffico di richieste HTTP, la suddivisione delle risposte HTTP e l'inclusione di file remoti
  • Violazioni del protocollo HTTP
  • Anomalie del protocollo HTTP, ad esempio l'agente utente host mancante e le intestazioni di accettazione
  • Bot, crawler e scanner
  • Errori di configurazione comuni dell'applicazione (ad esempio, Apache e IIS)

OWASP CRS 3.2 (anteprima pubblica)

CRS 3.2 include 13 gruppi di regole, come illustrato nella tabella seguente. Ogni gruppo contiene più regole, che possono essere disabilitate.

Nota

CRS 3.2 è disponibile solo nella WAF_v2 SKU.

Gruppo di regole Descrizione
Generale Gruppo Generale
REQUEST-911-METHOD-ENFORCEMENT Metodi di blocco (PUT, PATCH)
REQUEST-913-SCANNER-DETECTION Protezione da scanner di porte e ambienti
REQUEST-920-PROTOCOL-ENFORCEMENT Protezione da problemi di protocollo e codifica
REQUEST-921-PROTOCOL-ATTACK Protezione dall'inserimento di intestazioni, dal traffico di richieste e dalla suddivisione delle risposte
REQUEST-930-APPLICATION-ATTACK-LFI Protezione da attacchi a file e percorsi
REQUEST-931-APPLICATION-ATTACK-RFI Protezione da attacchi rfI (Remote File Inclusion)
REQUEST-932-APPLICATION-ATTACK-RCE Proteggere nuovamente gli attacchi di esecuzione remota del codice
REQUEST-933-APPLICATION-ATTACK-PHP Protezione dagli attacchi PHP injection
REQUEST-941-APPLICATION-ATTACK-XSS Protezione dagli attacchi di scripting tra siti
REQUEST-942-APPLICATION-ATTACK-SQLI Protezione da SQL attacchi di tipo injection
REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION Protezione dagli attacchi di correzione della sessione
REQUEST-944-APPLICATION-ATTACK-SESSION-JAVA Protezione dagli attacchi JAVA

OWASP CRS 3.1

CRS 3.1 include 13 gruppi di regole, come illustrato nella tabella seguente. Ogni gruppo contiene più regole, che possono essere disabilitate.

Nota

CRS 3.1 è disponibile solo nella WAF_v2 SKU.

Gruppo di regole Descrizione
Generale Gruppo Generale
REQUEST-911-METHOD-ENFORCEMENT Metodi di blocco (PUT, PATCH)
REQUEST-913-SCANNER-DETECTION Protezione da scanner di porte e ambienti
REQUEST-920-PROTOCOL-ENFORCEMENT Protezione da problemi di protocollo e codifica
REQUEST-921-PROTOCOL-ATTACK Protezione dall'inserimento di intestazioni, dal traffico di richieste e dalla suddivisione delle risposte
REQUEST-930-APPLICATION-ATTACK-LFI Protezione da attacchi a file e percorsi
REQUEST-931-APPLICATION-ATTACK-RFI Protezione da attacchi rfI (Remote File Inclusion)
REQUEST-932-APPLICATION-ATTACK-RCE Proteggere nuovamente gli attacchi di esecuzione remota del codice
REQUEST-933-APPLICATION-ATTACK-PHP Protezione dagli attacchi PHP injection
REQUEST-941-APPLICATION-ATTACK-XSS Protezione dagli attacchi di scripting tra siti
REQUEST-942-APPLICATION-ATTACK-SQLI Protezione da SQL attacchi di tipo injection
REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION Protezione dagli attacchi di correzione della sessione
REQUEST-944-APPLICATION-ATTACK-SESSION-JAVA Protezione dagli attacchi JAVA

OWASP CRS 3.0

CRS 3.0 include 12 gruppi di regole, come illustrato nella tabella seguente. Ogni gruppo contiene più regole, che possono essere disabilitate.

Gruppo di regole Descrizione
Generale Gruppo Generale
REQUEST-911-METHOD-ENFORCEMENT Metodi di blocco (PUT, PATCH)
REQUEST-913-SCANNER-DETECTION Protezione da scanner di porte e ambienti
REQUEST-920-PROTOCOL-ENFORCEMENT Protezione da problemi di protocollo e codifica
REQUEST-921-PROTOCOL-ATTACK Protezione contro l'inserimento di intestazioni, il traffico di richieste e la suddivisione delle risposte
REQUEST-930-APPLICATION-ATTACK-LFI Proteggere da attacchi a file e percorsi
REQUEST-931-APPLICATION-ATTACK-RFI Proteggere da attacchi RFI (Remote File Inclusion)
REQUEST-932-APPLICATION-ATTACK-RCE Proteggere nuovamente gli attacchi di esecuzione di codice in modalità remota
REQUEST-933-APPLICATION-ATTACK-PHP Proteggere da attacchi PHP injection
REQUEST-941-APPLICATION-ATTACK-XSS Proteggere da attacchi di scripting tra siti
REQUEST-942-APPLICATION-ATTACK-SQLI Proteggere da SQL attacchi injection
REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION Proteggere dagli attacchi di correzione della sessione

OWASP CRS 2.2.9

CRS 2.2.9 include 10 gruppi di regole, come illustrato nella tabella seguente. Ogni gruppo contiene più regole, che possono essere disabilitate.

Gruppo di regole Descrizione
crs_20_protocol_violations Proteggere da violazioni del protocollo (ad esempio caratteri non validi o GET con un corpo della richiesta)
crs_21_protocol_anomalies Protezione da informazioni di intestazione non corrette
crs_23_request_limits Proteggere da argomenti o file che superano le limitazioni
crs_30_http_policy Proteggere da metodi, intestazioni e tipi di file limitati
crs_35_bad_robots Protezione da crawler e scanner Web
crs_40_generic_attacks Protezione da attacchi generici ,ad esempio la correzione di sessione, l'inclusione di file remoti e l'inserimento PHP
crs_41_sql_injection_attacks Proteggere da SQL attacchi injection
crs_41_xss_attacks Proteggere da attacchi di scripting tra siti
crs_42_tight_security Proteggere da attacchi di attraversamento del percorso
crs_45_trojans Proteggere da trojan backdoor

Quando si usa Web Application Firewall nel gateway applicazione, sono disponibili i gruppi di regole e le regole seguenti.

3.2 Set di regole

Generale

ID regola Descrizione
200004 Possibile limite multiparte senza corrispondenza.

REQUEST-911-METHOD-ENFORCEMENT

ID regola Descrizione
911100 Metodo non consentito da criteri

REQUEST-913-SCANNER-DETECTION

ID regola Descrizione
913100 Trovato agente utente associato ad analisi della sicurezza
913101 Trovato agente utente associato a client HTTP generico/di scripting
913102 Trovato agente utente associato a bot/agente di ricerca Web
913110 Trovata intestazione della richiesta associata ad analisi della sicurezza
913120 Trovato argomento/nome file della richiesta associato ad analisi della sicurezza

REQUEST-920-PROTOCOL-ENFORCEMENT

ID regola Descrizione
920100 Riga della richiesta HTTP non valida
920120 Tentativo di bypass multipart/form-data
920121 Tentativo di bypass multipart/form-data
920160 Intestazione HTTP Content-Length non numerica
920170 Richiesta GET o HEAD con contenuto del corpo
920171 Richiesta GET o HEAD con Transfer-Encoding.
920180 Richiesta POST senza intestazione Content-Length
920190 Intervallo: valore dell'ultimo byte non valido.
920200 Intervallo: troppi campi (6 o più)
920201 Intervallo: troppi campi per la richiesta pdf (35 o più)
920202 Intervallo: troppi campi per la richiesta pdf (6 o più)
920210 Trovati dati intestazione di connessione multipli/in conflitto
920220 Tentativo di attacco con uso improprio codifica URL
920230 Rilevata codifica multipla URL
920240 Tentativo di attacco con uso improprio codifica URL
920250 Tentativo di attacco con uso improprio codifica UTF8
920260 Tentativo di attacco con uso improprio metà larghezza/larghezza intera Unicode
920270 Carattere non valido nella richiesta (carattere null)
920271 Carattere non valido nella richiesta (caratteri non stampabili)
920272 Carattere non valido nella richiesta (non compreso nei caratteri stampabili sotto ASCII 127)
920273 Carattere non valido nella richiesta (non compreso in set molto restrittivo)
920274 Carattere non valido nelle intestazioni della richiesta (non compreso in set con restrizioni elevate)
920280 Richiesta senza intestazione host
920290 Intestazione host vuota
920310 Richiesta con intestazione Accept vuota
920311 Richiesta con intestazione Accept vuota
920320 Intestazione agente utente mancante
920330 Intestazione agente utente vuota
920340 Richiesta contenente contenuto, ma intestazione Content-Type mancante
920341 La richiesta che contiene contenuto richiede l'intestazione Content-Type
920350 Intestazione host costituita da un indirizzo IP numerico
920420 Tipo di contenuto della richiesta non consentito da criteri
920430 Versione protocollo HTTP non consentita da criteri
920440 Estensione file URL limitata da criteri
920450 L'intestazione HTTP è limitata dai criteri (%{MATCHED_VAR})
920460 Caratteri di escape anomali
920470 Intestazione Content-Type non valida
920480 Limitare il parametro charset all'interno dell'intestazione content-type

REQUEST-921-PROTOCOL-ATTACK

ID regola Descrizione
921110 Attacco di tipo HTTP Request Smuggling
921120 Attacco di tipo HTTP Response Splitting
921130 Attacco di tipo HTTP Response Splitting
921140 Attacco di tipo HTTP Header Injection tramite intestazioni
921150 Attacco di tipo HTTP Header Injection tramite payload (rilevato CR/LF)
921151 Attacco di tipo HTTP Header Injection tramite payload (rilevato CR/LF)
921160 Attacco di tipo HTTP Header Injection tramite payload (rilevati CR/LF e nome intestazione)
921170 Inquinamento dei parametri HTTP
921180 Inquinamento dei parametri HTTP (%{TX.1})

REQUEST-930-APPLICATION-ATTACK-LFI

ID regola Descrizione
930100 Attacco di tipo Path Traversal (/../)
930110 Attacco di tipo Path Traversal (/../)
930120 Tentativo di accesso a file del sistema operativo
930130 Tentativo di accesso a file con restrizioni

REQUEST-931-APPLICATION-ATTACK-RFI

ID regola Descrizione
931100 Possibile attacco RFI (Remote File Inclusion): parametro URL con indirizzo IP
931110 Possibile attacco RFI (Remote File Inclusion): nome del parametro vulnerabile RFI comune usato per il payload w/URL
931120 Possibile attacco RFI (Remote File Inclusion): payload URL usato con il carattere punto interrogativo finale (?)
931130 Possibile attacco RFI (Remote File Inclusion): Off-Domain/Link

REQUEST-932-APPLICATION-ATTACK-RCE

ID regola Descrizione
932100 Esecuzione di comandi remoti: inserimento di comandi Unix
932105 Esecuzione di comandi remoti: inserimento di comandi Unix
932106 Esecuzione di comandi remoti: inserimento di comandi Unix
932110 Esecuzione di comandi remoti: inserimento Windows comando
932115 Esecuzione di comandi remoti: inserimento Windows comando
932120 Esecuzione di comandi remoti: Windows PowerShell comando trovato
932130 Esecuzione di comandi remoti: trovata espressione shell Unix
932140 Esecuzione di comandi remoti: Windows comando FOR/IF trovato
932150 Esecuzione di comandi remoti: esecuzione diretta di comandi Unix
932160 Esecuzione di comandi remoti: trovato codice della shell Unix
932170 Esecuzione di comandi remoti: Shellshock (CVE-2014-6271)
932171 Esecuzione di comandi remoti: Shellshock (CVE-2014-6271)
932180 Tentativo di Upload file con restrizioni
932190 Esecuzione di comandi remoti: tentativo di tecnica di bypass con caratteri jolly

REQUEST-933-APPLICATION-ATTACK-PHP

ID regola Descrizione
933100 Attacco php injection: trovato tag di apertura/chiusura
933110 Attacco di tipo injection PHP: file di script PHP Upload trovato
933111 Attacco di tipo injection PHP: file di script PHP Upload trovato
933120 Attacco php injection: trovata direttiva di configurazione
933130 Attacco php injection: variabili trovate
933131 Attacco php injection: variabili trovate
933140 Attacco php injection: trovato flusso di I/O
933150 Attacco php injection: High-Risk trovato il nome della funzione PHP
933151 Attacco php injection: Medium-Risk trovato il nome della funzione PHP
933160 Attacco php injection: High-Risk chiamata di funzione PHP trovata
933161 Attacco php injection: Low-Value chiamata di funzione PHP trovata
933170 Attacco PHP Injection: inserimento di oggetti serializzati
933180 Attacco php injection: trovata chiamata di funzione variabile
933190 Attacco php injection: trovato tag di chiusura PHP
933200 Attacco php injection: rilevato schema wrapper
933210 Attacco php injection: trovata chiamata di funzione variabile

REQUEST-941-APPLICATION-ATTACK-XSS

ID regola Descrizione
941100 Rilevato attacco XSS tramite libinjection
941101 Rilevato attacco XSS tramite libinjection.
941110 Filtro XSS - Categoria 1: Vettore tag script
941120 Filtro XSS - Categoria 2: Vettore del gestore eventi
941130 Filtro XSS - Categoria 3: Vettore di attributi
941140 Filtro XSS - Categoria 4: Vettore URI JavaScript
941150 Filtro XSS - Categoria 5: Attributi HTML non consentiti
941160 NoScript XSS InjectionChecker: inserimento HTML
941170 NoScript XSS InjectionChecker: inserimento di attributi
941180 Parole chiave in blacklist convalida nodi
941190 XSS con fogli di stile
941200 XSS con frame VML
941210 XSS con JavaScript offuscato
941220 XSS con lo script VB offuscato
941230 XSS con tag 'embed'
941240 XSS con l'attributo 'import' o 'implementation'
941250 Filtri XSS IE: rilevato attacco
941260 XSS con tag 'meta'
941270 XSS con href 'link'
941280 XSS con tag 'base'
941290 XSS con il tag 'applet'
941300 XSS con tag 'object'
941310 Filtro XSS per codifica US-ASCII in formato non valido: rilevato attacco
941320 Rilevato possibile attacco XSS: gestore tag HTML
941330 Filtri XSS IE: rilevato attacco
941340 Filtri XSS IE: rilevato attacco
941350 XSS IE con codifica UTF-7: rilevato attacco
941360 Rilevata offuscamento JavaScript.

REQUEST-942-APPLICATION-ATTACK-SQLI

ID regola Descrizione
942100 Rilevato attacco SQL injection tramite libinjection
942110 SQL Attacco injection: rilevato test di inserimento comune
942120 SQL Attacco injection: rilevato SQL'operatore
942130 SQL Attacco injection: rilevato SQL tautologia.
942140 SQL Attacco injection: rilevati nomi di database comuni
942150 Attacco SQL injection
942160 Rilevamento test di blind SQL injection con sleep() o benchmark()
942170 Rilevamento tentativi di SQL injection con benchmark e sleep e query condizionali
942180 Rileva i tentativi di bypass SQL autenticazione di base 1/3
942190 Rileva l'esecuzione di codice MSSQL e tentativi di raccolta di informazioni
942200 Rileva injection offuscati nello spazio/con commento MySQL e terminazioni con apice inverso
942210 Rileva tentativi di SQL injection concatenati 1/2
942220 Alla ricerca di attacchi di overflow di interi, questi vengono presi da skipfish, ad eccezione di 3.0.00738585072007e-308 è l'arresto anomalo del "numero magic"
942230 Rilevamento tentativi di SQL injection condizionale
942240 Rileva l'opzione del set di caratteri MySQL e i tentativi DoS di MSSQL
942250 Rileva gli inserimenti MATCH AGAINST, MERGE ed EXECUTE IMMEDIATE
942251 Rilevamento inserimenti HAVING
942260 Rileva tentativi di ignorare l'autenticazione SQL di base (2/3)
942270 Ricerca di SQL injection di base. Stringa di attacco comune per mysql, oracle e altri.
942280 Rileva l'inserimento di pg_sleep Postgres, gli attacchi con ritardo di attesa e i tentativi di arresto del database
942290 Ricerca tentativi di SQL injection di base in MongoDB
942300 Rileva ch(a)r injection, condizioni e commenti MySQL
942310 Rileva tentativi di SQL injection concatenati 2/2
942320 Rilevamento inserimenti di stored procedure/funzioni MySQL e PostgreSQL
942330 Rileva sondaggi di SQL injection classici (1/2)
942340 Rileva tentativi di ignorare l'autenticazione SQL di base (3/3)
942350 Rilevamento di inserimento di funzioni definite dall'utente MySQL e altri tentativi di manipolazione dati/struttura
942360 Rileva tentativi SQL/LFI e di SQL injection di base concatenati
942361 Rileva l'inserimento SQL di base in base alla parola chiave alter o union
942370 Rileva sondaggi di SQL injection classici (2/2)
942380 Attacco SQL injection
942390 Attacco SQL injection
942400 Attacco SQL injection
942410 Attacco SQL injection
942420 Rilevamento anomalie SQL caratteri con restrizioni (cookie): numero di caratteri speciali superati (8)
942421 Rilevamento anomalie SQL caratteri con restrizioni (cookie): numero di caratteri speciali superati (3)
942430 Rilevamento anomalie caratteri SQL con restrizioni (args): n. di caratteri speciali in eccesso (12)
942431 Rilevamento anomalie SQL caratteri con restrizioni (argomenti): numero di caratteri speciali superati (6)
942432 Rilevamento anomalie SQL caratteri con restrizioni (argomenti): numero di caratteri speciali superati (2)
942440 Rilevata sequenza commenti SQL
942450 Identificata codifica esadecimale SQL
942460 Avviso di rilevamento anomalie metacaratteri: caratteri non alfanumerici ripetitivi
942470 Attacco SQL injection
942480 Attacco SQL injection
942490 Rileva i probe SQL injection classici 3/3
942500 Rilevato commento inline mySQL.

REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION

ID regola Descrizione
943100 Possibile attacco di correzione della sessione: impostazione dei valori dei cookie in HTML
943110 Possibile attacco di correzione della sessione: nome del parametro SessionID con Off-Domain Referer
943120 Possibile attacco di correzione della sessione: nome del parametro SessionID senza referenziatore

REQUEST-944-APPLICATION-ATTACK-JAVA

ID regola Descrizione
944100 Esecuzione di comandi remoti: Apache Struts, Oracle WebLogic
944110 Rileva la potenziale esecuzione del payload
944120 Possibile esecuzione di payload ed esecuzione remota dei comandi
944130 Classi Java sospette
944200 Sfruttamento della deserializzazione Java Apache Commons
944210 Possibile uso della serializzazione Java
944240 Esecuzione di comandi remoti: serializzazione Java
944250 Esecuzione di comandi remoti: rilevato metodo Java sospetto
944300 Parola chiave sospetta per la stringa codificata Base64

Passaggi successivi