Web application firewall regole e gruppi di regole DRS

Web application firewall (WAF) di Frontdoor di Azure protegge le applicazioni Web da vulnerabilità ed exploit comuni. I set di regole gestiti da Azure consentono di distribuire in modo semplice la protezione da un set comune di minacce alla sicurezza. Poiché questi set di regole sono gestiti da Azure, le regole vengono aggiornate quando necessario per assicurare la protezione da nuove firme di attacco. Il set di regole predefinito include anche le regole della raccolta di intelligence sulle minacce di Microsoft scritte in collaborazione con il team di Intelligence Microsoft per offrire una maggiore copertura, patch per vulnerabilità specifiche e una migliore riduzione dei falsi positivi.

Set di regole predefiniti

Il set di regole predefinite gestito da Azure include regole per le categorie di minacce seguenti:

  • Scripting intersito
  • Attacchi Java
  • Attacchi di tipo Local File Inclusion
  • Attacchi PHP injection
  • Attacchi di tipo Remote Command Execution
  • Attacchi di tipo Remote File Inclusion
  • Attacchi di tipo Session Fixation
  • Protezione dagli attacchi SQL injection
  • Attacchi a protocollo

Il numero di versione del drS aumenta quando vengono aggiunte nuove firme di attacco al set di regole.

DrS è abilitato per impostazione predefinita in modalità di rilevamento nei criteri WAF. È possibile disabilitare o abilitare singole regole nel set predefinito in base ai requisiti dell'applicazione. È anche possibile impostare azioni specifiche per regola. Le azioni disponibili sono : Consenti, Blocca, Log e Reindirizzamento.

In alcuni casi potrebbe essere necessario omettere determinati attributi di richiesta da una valutazione WAF. Un esempio comune è rappresentato dai token inseriti in Active Directory che vengono usati per l'autenticazione. È possibile configurare un elenco di esclusione per una regola gestita, un gruppo di regole o per l'intero set di regole. Per altre informazioni, vedere Web application firewall (WAF) con elenchi di esclusione di Frontdoor.

Per impostazione predefinita, DRS blocca le richieste che attivano le regole. È inoltre possibile configurare regole personalizzate nello stesso criterio di WAF se si vuole ignorare una qualsiasi regola preconfigurata nel set predefinito.

Le regole personalizzate vengono sempre applicate prima della valutazione delle regole del set predefinito. Se una richiesta corrisponde a una regola personalizzata, viene applicata l'azione della regola corrispondente. La richiesta viene bloccata o passata al back-end. Non vengono elaborate altre regole personalizzate o le regole include nel set predefinito. È anche possibile rimuovere il set di regole predefinito dai criteri di WAF.

Regole di microsoft Threat Intelligence Collection

Le regole di Microsoft Threat Intelligence Collection sono scritte in collaborazione con il team di Microsoft Threat Intelligence per offrire una maggiore copertura, patch per vulnerabilità specifiche e una migliore riduzione dei falsi positivi.

Alcune delle regole predefinite drS sono disabilitate per impostazione predefinita perché sono state sostituite da regole più recenti nella raccolta di Intelligence sulle minacce di Microsoft. Ad esempio, l'ID regola 942440, la sequenza di commenti SQL rilevata. è stata disabilitata e sostituita dalla regola raccolta di intelligence sulle minacce Microsoft 99031002. La regola sostituita riduce il rischio di rilevamenti falsi positivi da richieste legittime.

Assegnazione di punteggi anomalie

Quando si usa DRS 2.0 o versione successiva, il WAF usa l'assegnazione dei punteggi anomalie. Il traffico che corrisponde a qualsiasi regola non viene bloccato immediatamente, anche quando il WAF è in modalità di prevenzione. I set di regole OWASP definiscono invece una gravità per ogni regola: Critico, Errore, Avviso o Avviso. La gravità influisce su un valore numerico per la richiesta, denominato punteggio anomalie:

Gravità della regola Valore che ha contribuito al punteggio di anomalia
Critico 5
Errore 4
Avviso 3
Notifica 2

Se il punteggio di anomalia è 5 o superiore, WAF blocca la richiesta.

Ad esempio, una singola corrispondenza di regola critica è sufficiente per il WAF per bloccare una richiesta, perché il punteggio complessivo dell'anomalia è 5. Tuttavia, una regola di avviso aumenta solo il punteggio di anomalia di 3, che non è sufficiente per bloccare il traffico.

Quando waf usa la versione precedente del set di regole predefinito (prima di DRS 2.0), il WAF viene eseguito in modalità tradizionale. Il traffico che corrisponde a qualsiasi regola viene considerato indipendentemente da qualsiasi altra regola corrispondente. In modalità tradizionale non si ha visibilità sul set completo di regole corrispondenti a una richiesta specifica.

La versione del servizio di ripristino di emergenza usata determina anche quali tipi di contenuto sono supportati per l'ispezione del corpo della richiesta. Per altre informazioni, vedere Quali tipi di contenuto supporta WAF? nelle domande frequenti.

DRS 2.0

Le regole drs 2.0 offrono una protezione migliore rispetto alle versioni precedenti del servizio ripristino di emergenza. Supporta anche trasformazioni oltre la semplice decodifica url.

DRS 2.0 include 17 gruppi di regole, come illustrato nella tabella seguente. Ogni gruppo contiene più regole ed è possibile disabilitare singole regole e interi gruppi di regole.

Nota

DRS 2.0 è disponibile solo in Frontdoor di Azure Premium.

Gruppo di regole Descrizione
Generale Gruppo generale
APPLICAZIONE DEL METODO Metodi di blocco (PUT, PATCH)
APPLICAZIONE DEL PROTOCOLLO Protezione da problemi di protocollo e codifica
PROTOCOL-ATTACK Protezione contro l'inserimento di intestazioni, il contrabbando di richieste e la suddivisione delle risposte
APPLICATION-ATTACK-LFI Protezione da attacchi a file e percorsi
APPLICATION-ATTACK-RFI Protezione da attacchi RFI (Remote File Inclusion)
APPLICATION-ATTACK-RCE Proteggere nuovamente gli attacchi di esecuzione del codice remoto
APPLICATION-ATTACK-PHP Proteggere dagli attacchi PHP-injection
APPLICATION-ATTACK-NodeJS Proteggere dagli attacchi JS del nodo
APPLICATION-ATTACK-XSS Protezione da attacchi di scripting tra siti
APPLICATION-ATTACK-SQLI Protezione da attacchi SQL injection
APPLICATION-ATTACK-SESSION-FIXATION Protezione dagli attacchi di correzione delle sessioni
APPLICATION-ATTACK-SESSION-JAVA Proteggere dagli attacchi JAVA
MS-ThreatIntel-WebShells Protezione dagli attacchi di Web Shell
MS-ThreatIntel-AppSec Proteggere dagli attacchi AppSec
MS-ThreatIntel-SQLI Proteggere dagli attacchi SQLI
MS-ThreatIntel-CVEs Proteggere dagli attacchi CVE

Ripristino di emergenza 1.1

Gruppo di regole Descrizione
PROTOCOLLO-ATTACCO Proteggere dall'inserimento delle intestazioni, dalla richiesta di contrabbando e dalla suddivisione delle risposte
APPLICATION-ATTACK-LFI Proteggere da attacchi di file e percorso
APPLICATION-ATTACK-RFI Protezione dagli attacchi di inclusione di file remoti
APPLICATION-ATTACK-RCE Protezione dall'esecuzione di comandi remoti
APPLICATION-ATTACK-PHP Proteggere dagli attacchi PHP-injection
APPLICATION-ATTACK-XSS Proteggere dagli attacchi di scripting tra siti
APPLICATION-ATTACK-SQLI Proteggere dagli attacchi sql-injection
APPLICATION-ATTACK-SESSION-FIXATION Proteggere dagli attacchi di correzione delle sessioni
APPLICATION-ATTACK-SESSION-JAVA Proteggere dagli attacchi JAVA
MS-ThreatIntel-WebShells Proteggere dagli attacchi della shell Web
MS-ThreatIntel-AppSec Proteggere dagli attacchi AppSec
MS-ThreatIntel-SQLI Proteggere dagli attacchi SQLI
MS-ThreatIntel-CVEs Proteggere dagli attacchi CVE

Ripristino di emergenza 1.0

Gruppo di regole Descrizione
PROTOCOLLO-ATTACCO Proteggere dall'inserimento delle intestazioni, dalla richiesta di contrabbando e dalla suddivisione delle risposte
APPLICATION-ATTACK-LFI Proteggere da attacchi di file e percorso
APPLICATION-ATTACK-RFI Protezione dagli attacchi di inclusione di file remoti
APPLICATION-ATTACK-RCE Protezione dall'esecuzione di comandi remoti
APPLICATION-ATTACK-PHP Proteggere dagli attacchi PHP-injection
APPLICATION-ATTACK-XSS Proteggere dagli attacchi di scripting tra siti
APPLICATION-ATTACK-SQLI Proteggere dagli attacchi sql-injection
APPLICATION-ATTACK-SESSION-FIXATION Proteggere dagli attacchi di correzione delle sessioni
APPLICATION-ATTACK-SESSION-JAVA Proteggere dagli attacchi JAVA
MS-ThreatIntel-WebShells Proteggere dagli attacchi della shell Web
MS-ThreatIntel-CVEs Proteggere dagli attacchi CVE

Regole del bot

Gruppo di regole Descrizione
BadBots Proteggere da bot non valido
GoodBots Identificare i bot validi
UnknownBots Identificare i bot sconosciuti

I gruppi di regole e le regole seguenti sono disponibili quando si usa Web application firewall in Frontdoor di Azure.

Set di regole 2.0

Generale

ID regola Descrizione
200002 Impossibile analizzare corpo della richiesta
200003 Il corpo della richiesta multipart non è riuscito a convalida rigorosa

IMPOSIZIONE DEI METODI

ID regola Descrizione
911100 Metodo non consentito da criteri

APPLICAZIONE DEL PROTOCOLLO

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 codifica di trasferimento.
920180 Richiesta POST senza intestazione Content-Length
920190 Intervallo: valore ultimo byte non valido.
920200 Intervallo: troppi campi (6 o più)
920201 Intervallo: troppi campi per la richiesta PDF (35 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
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)
920280 Richiesta senza intestazione host
920290 Intestazione host vuota
920300 Richiesta senza intestazione Accept
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 contenente 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 Intestazione HTTP limitata da criteri
920470 Intestazione Content-Type non valida
920480 Il set di caratteri del tipo di contenuto della richiesta non è consentito dai criteri

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)

LFI - Inclusione di file locali

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

RFI - Inclusione di file remoti

ID regola Descrizione
931100 Possibile attacco di inclusione file remota (RFI): parametro URL tramite indirizzo IP
931110 Possibile attacco di inclusione file remota (RFI): nome di parametro vulnerabile RFI comune usato con payload w/URL
931120 Possibile attacco RFI (Remote File Inclusion): payload URL usato con carattere punto interrogativo finale (?)
931130 Possibile attacco RFI (Remote File Inclusion): Off-Domain riferimento/collegamento

RCE - Esecuzione di comandi remoti

ID regola Descrizione
932100 Esecuzione del comando remoto: inserimento di comandi Unix
932105 Esecuzione di comandi remoti: Inserimento comandi Unix
932110 Esecuzione di comandi remoti: Inserimento comandi Windows
932115 Esecuzione di comandi remoti: Inserimento comandi Windows
932120 Esecuzione dei comandi remoti: comando Windows PowerShell trovato
932130 Esecuzione di comandi remoti: espressione Shell Unix o vulnerabilità di confluenza (CVE-2022-26134) Trovato
932140 Esecuzione di comandi remoti: comando Windows FOR/IF trovato
932150 Esecuzione dei comandi remoti: esecuzione del comando Direct Unix
932160 Esecuzione dei comandi remoti: Codice Shell Unix trovato
932170 Esecuzione del comando remoto: Shellshock (CVE-2014-6271)
932171 Esecuzione del comando remoto: Shellshock (CVE-2014-6271)
932180 Tentativo di caricamento file con restrizioni

Attacchi PHP

ID regola Descrizione
933100 Attacco PHP Injection: tag di apertura/chiusura trovato
933110 Attacco PHP Injection: caricamento del file di script PHP trovato
933120 Attacco PHP Injection: Direttiva di configurazione trovata
933130 Attacco PHP Injection: variabili trovate
933140 Attacco PHP Injection: Flusso di I/O trovato
933150 Attacco PHP Injection: High-Risk nome funzione PHP trovato
933151 Attacco PHP Injection: Medium-Risk nome funzione PHP trovato
933160 Attacco PHP Injection: High-Risk chiamata di funzione PHP trovata
933170 Attacco PHP Injection: Inserimento di oggetti serializzati
933180 Attacco PHP Injection: Chiamata alla funzione variabile trovata
933200 Attacco PHP Injection: schema wrapper rilevato
933210 Attacco PHP Injection: Chiamata alla funzione variabile trovata

Attacchi JS del nodo

ID regola Descrizione
934100 attacco Node.js injection

XSS - Scripting tra siti

ID regola Descrizione
941100 Rilevato attacco XSS tramite libinjection
941101 Attacco XSS rilevato tramite libiniection.
Questa regola rileva le richieste con un'intestazione referer .
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: Attributo Injection
941180 Parole chiave in blacklist convalida nodi
941190 XSS Uso di fogli di stile
941200 XSS usando frame VML
941210 XSS usando JavaScript offuscato
941220 XSS usando script VB offuscati
941230 XSS usando il tag 'embed'
941240 XSS usando l'attributo 'import' o 'implementazione'
941250 Filtri XSS IE: rilevato attacco
941260 XSS usando il tag 'meta'
941270 XSS usando "link" href
941280 XSS usando il tag 'base'
941290 XSS usando il tag "applet"
941300 XSS usando il 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 Rilevato l'offuscamento javaScript.
941370 Variabile globale JavaScript trovata
941380 Inserimento del modello lato client AngularJS rilevato

Nota

Questo articolo contiene riferimenti al termine blacklist, un termine che Microsoft non usa più. Quando il termine verrà rimosso dal software, verrà rimosso anche dall'articolo.

SQLI - SQL Injection

ID regola Descrizione
942100 Rilevato attacco SQL injection tramite libinjection
942110 Attacco SQL Injection: test di inserimento comuni rilevati
942120 Attacco SQL Injection: Operatore SQL rilevato
942140 Attacco SQL Injection: nomi di database comuni rilevati
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 dell'autenticazione SQL 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 inserimento sql concatenati 1/2
942220 Cercando attacchi di overflow integer, questi vengono presi da skipfish, ad eccezione di 3.0.00738585072007e-308 è l'arresto anomalo del "numero magico"
942230 Rilevamento tentativi di SQL injection condizionale
942240 Rileva l'opzione charset MySQL e i tentativi di MSSQL DoS
942250 Rileva MATCH AGAINST, MERGE e EXECUTE IMMEDIATE injections
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 postgres pg_sleep inserimento, attesa per attacchi di ritardo e tentativi di arresto del database
942290 Ricerca tentativi di SQL injection di base in MongoDB
942300 Rileva commenti, condizioni e ch(a)r injection di MySQL
942310 Rileva tentativi di inserimento SQL 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 all'modifica o all'unione delle parole chiave
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
942430 Rilevamento anomalie caratteri SQL con restrizioni (args): n. di caratteri speciali in eccesso (12)
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
942500 Rilevato commento in linea di MySQL.
942510 Tentativo di bypass SQLi tramite segni di graduazione o backtick rilevati.

CORREZIONE DELLA SESSIONE

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 Referrer
943120 Possibile attacco di correzione della sessione: nome del parametro SessionID senza referrer

Attacchi JAVA

ID regola Descrizione
944100 Esecuzione di comandi remoti: Apache Struts, Oracle WebLogic
944110 Rileva la potenziale esecuzione del payload
944120 Possibile esecuzione del payload ed esecuzione remota dei comandi
944130 Classi Java sospette
944200 Sfruttamento della deserializzazione Di Java Apache Commons
944210 Possibile uso della serializzazione Java
944240 Esecuzione dei comandi remoti: vulnerabilità di serializzazione Java e Log4j (CVE-2021-44228, CVE-2021-45046)
944250 Esecuzione del comando remoto: rilevato metodo Java sospetto

MS-ThreatIntel-WebShells

ID regola Descrizione
99005002 Tentativo di interazione di Web Shell (POST)
99005003 Tentativo di caricamento di Web Shell (POST) - CHOPPER PHP
99005004 Tentativo di caricamento di Web Shell (POST) - CHOPPER ASPX
99005006 Tentativo di interazione di Spring4Shell

MS-ThreatIntel-AppSec

ID regola Descrizione
99030001 Evasione attraversamento percorso nelle intestazioni (/.. /./.. /)
99030002 Evasione attraversamento percorso nel corpo della richiesta (/.. /./.. /)

MS-ThreatIntel-SQLI

ID regola Descrizione
99031001 Attacco SQL Injection: test di inserimento comuni rilevati
99031002 Rilevata sequenza commenti SQL

MS-ThreatIntel-CVEs

ID regola Descrizione
99001001 Tentativo di sfruttamento dell'API REST F5 tmui (CVE-2020-5902) con credenziali note
99001014 Tentativo di instradamento di Spring Cloud routing-expression injection CVE-2022-22963
99001015 Tentativo di sfruttamento di oggetti di classe unsafe spring framework CVE-2022-22965
99001016 Tentativo di inserimento dell'attuatore Spring Cloud Gateway CVE-2022-22947

Nota

Quando si esaminano i log di WAF, è possibile che venga visualizzato l'ID regola 949110. La descrizione della regola potrebbe includere il punteggio di anomalia in ingresso superato.

Questa regola indica che il punteggio totale delle anomalie per la richiesta ha superato il punteggio massimo consentito. Per altre informazioni, vedere Assegnazione di punteggi alle anomalie.

Quando si ottimizzano i criteri WAF, è necessario esaminare le altre regole attivate dalla richiesta in modo da poter modificare la configurazione di WAF. Per altre informazioni, vedere Ottimizzazione Web application firewall (WAF) per Frontdoor di Azure.

Passaggi successivi