Regole applicative
Le Regole applicative consentono di bloccare una richiesta HTTP ispezionando i suoi campi interni, come i parametri URI, gli header o il corpo della richiesta. Questo tipo di regole può essere tradotto e sincronizzato con dispositivi di protezione a livello applicativo (Web Application Firewall).
Una regola applicativa è composta da più campi generici, e definisce un insieme di condizioni e un insieme di azioni.
L'elenco delle regole applicative è disponibile alla pagina Protection - Application Rules
.
Campi generici
Campo | Descrizione |
---|---|
Status | Indica se la regola è abilitata o meno, l'utente relativo all'ultimo aggiornamento e relativo timestamp. |
ID | L'UID della regola (i primi 8 caratteri per una migliore leggibilità) e, opzionalmente, la descrizione. |
Context | Rappresenta il contesto applicativo della regola, che può essere un Host specifico, un Domain Group oppure applicarsi a entrambi. |
Priority | Indica la priorità di esecuzione. Valori più bassi rappresentano una priorità più alta. |
Expiration | Rappresenta la durata dell'attivazione. |
Condizioni
Ogni condizione è composta da più target e espressioni, oltre a un operatore.
Target
I target rappresentano l'elenco degli attributi della richiesta HTTP da ispezionare.
Possono essere Basic o Composed:
- Basic: un attributo semplice della richiesta HTTP (ad esempio, request path, request method, ecc.).
- Composed: un attributo della richiesta HTTP composto da più elementi (ad esempio, un header specifico, un campo nel corpo della richiesta, ecc.).
Questa è una lista di target disponibili e del loro tipo:
Target | Tipo | Descrizione |
---|---|---|
method | Basic | Il metodo della richiesta HTTP |
parameter_key | Basic | Le chiavi dei parametri query della richiesta |
parameter_value | Basic | I valori dei parametri query della richiesta |
path | Basic | L'uri path della richiesta |
protocol | Basic | La versione del protocollo HTTP della richiesta |
query | Basic | La query string grezza della richiesta |
request_body | Basic | Il corpo grezzo della richiesta |
request_size | Basic | La dimensione della richiesta HTTP in byte |
request_target | Basic | L'URL della richiesta, inclusi il dominio, il path e la query string |
response_body | Basic | Il corpo grezzo della risposta |
response_size | Basic | La dimensione della risposta HTTP in byte |
status | Basic | Il codice di risposta della risposta HTTP |
request:HEADER | Composed | Un valore dell'header della richiesta HTTP per uno specifico HEADER (es. per l'header User-Agent , il target è request:User-Agent ) |
response:HEADER | Composed | Un valore dell'header della risposta HTTP per uno specifico HEADER (es. per l'header Content-Type , il target è responde:Content-Type ) |
parsed_request_body:x-www-form-urlencoded:KEY | Composed | Il valore associato a una specifica KEY (codificata in URL) nel corpo della richiesta (es. per la chiave KEY , il target è parsed_request_body:x-www-form-urlencoded:test ) |
parsed_request_body:json:JSON_PATH | Composed | Il valore associato a un specifico JSON_PATH nel corpo della richiesta (formattato il JSON). |
parsed_request_body:xml:XML_PATH | Composed | Il valore associato a un specifico XML_PATH del corpo della richiesta (formattato in XML). |
parsed_response_body:x-www-form-urlencoded:KEY | Composed | Il valore associato a una specifica KEY (codificata in URL) nel corpo della risposta (es. per la chiave test , il target è parsed_response_body:x-www-form-urlencoded:test ) |
parsed_response_body:json:JSON_PATH | Composed | Il valore associato a un specifico JASON_PATH nel corpo della risposta (formattato in JSON). |
parsed_response_body:xml:XML_PATH | Composed | Il valore associato a un specifico XML_PATH del corpo della risposta (formattato in XML). |
Operatore
L'operatore definisce come le espressioni vengono valutate rispetto ai target.
Supporta sia confronti di stringhe semplici che espressioni regolari avanzate per offrire una massima flessibilità.
Operatore | Tipo di confronto | Descrizione |
---|---|---|
Is equal | Plain text | Corrisponde se il target è esattamente uguale all'espressione |
Is not equal | Plain text | Corrisponde se il target non è esattamente uguale all'espressione |
Contains | Plain text | Corrisponde se il target include l'espressione specificata |
Does not contain | Plain text | Corrisponde se il target non include l'espressione specifica |
Starts with | Plain text | Corrisponde se il target inizia con l'espressione |
Does not start with | Plain text | Corrisponde se il target non inizia con l'espressione |
Ends with | Plain text | Corrisponde se il target finisce con l'espressione |
Does not end with | Plain text | Corrisponde se il target non corrisponde con l'espressione |
Match charset | Plain text | Corrisponde se il target contiene caratteri da un set di caratteri specificato. Vedi la sezione Charset per maggiori dettagli |
Match all except charset | Plain text | Corrisponde se il target non contiene caratteri da un set di caratteri specificato. Vedi la sezione Charset per maggiori dettagli |
Match regex | Plain text | Corrisponde se il target soddisfa il pattern dell'espressione regolare fornita |
Match all except regex | Plain text | Corrisponde se il target non soddisfa il pattern dell'espressione regolare fornita |
Espressioni
Le espressioni definiscono il pattern o valore che verrà confrontato con un target specificato.
Un'espressione può essere di uno dei seguenti tipi:
- String: un valore semplice da confrontare direttamente.
- Espressioni Regolari (Regex): un pattern utilizzato per un confronto avanzato.
- Character Set (Charset): un set predefinito di caratteri di cui il target deve essere composto.
String
Le espressioni di tipo stringa vengono utilizzate per eseguire confronti basati su testo semplice.
Queste vengono usate con operatori come Contains
, Is equal
, Starts with
or Ends with
.
Espressioni regolari (Regex)
Le espressioni regex consentono confronti con pattern complessi, ad esempio per rilevare più varianti di una stringa o imporre regole di formattazione specifiche.
Queste vengono utilizzate con l'operatore Match regex
.
Charset
Gli operatori Match charset
e Match all except charset
verificano se un target contiene (o non contiene) specifici tipi di caratteri.
Invece di fornire una stringa o un'espressione regolare, l'utente seleziona le espressioni da un set di valori predefiniti:
Set di caratteri | Descrizione |
---|---|
Whitespaces | Corrisponde se il target contiene caratteri di spazio (\s ) |
Digits | Corrisponde se il target contiene cifre numeriche (0-9 ) |
Lowercases | Corrisponde se il target contiene lettere minuscole (a-z ) |
Uppercases | Corrisponde se il target contiene lettere maiuscole (A-Z ) |
Alphanumerical | Corrisponde se il target contiene lettere (A-Za-z ) o cifre (0-9 ) |
All symbols | Corrisponde se il target contiene qualsiasi simbolo non alfanumerico (es. !@#$%^&*()_+[]{} ) |
SINGLE_SYMBOL | Invece di usare un set di caratteri predefinito, l'utente può specificare un singolo carattere (es. @ or # ), che verrà confrontato con il target |
Azioni
Le azioni definiscono come Seer Box debba tradurre una Regola applicativa in una regola WAF. Ogni azione specifica:
- Il WAF di destinazione dove la regola deve essere applicata. Il WAF dovrebbe essere già configurato nella pagina delle impostazioni dei firewall (vedi la sezione Firewalls per maggiori dettagli).
- L'azione WAF da eseguire quando le condizioni sono soddisfatte. Le azioni disponibili dipendono dal firewall selezionato.
Una Regola applicativa può definire azioni multiple da tradurre simultaneamente verso diversi WAF. Questo consente una maggiore flessibilità nell'applicazione delle politiche di sicurezza su varie infrastrutture.
Gestione delle Regole applicative
La gestione delle regole applicative è consentita agli utenti nel gruppo admin
o agli utenti appartenenti a un gruppo che ha il permesso Handle rules
associato al gruppo di domini a cui appartiene la regola.
Creare una Regola applicativa
Oltre a creare una o più regole dalla pagina dei dettagli dell'alert con la funzione Advanced Protection, è possibile creare regole personalizzate.
Dall'interfaccia web di Seer Box
-
Accedi alla pagina
Protection - Application rules
: in questa sezione puoi visualizzare l'elenco di tutte le regole applicative create. -
Per creare una regola personalizzata, clicca sul pulsante
Add rule
nell'angolo in alto a destra della pagina. -
Verrà visualizzato un wizard che ti permetterà di creare una regola applicativa. Per maggiori dettagli sul wizard, consulta la sezione Wizard di creazione più in basso.
-
Dopo aver inserito i dati, è possibile cliccare sul pulsante
Save rule
per confermare la creazione.
La nuova regola applicativa apparirà nella pagina di riepilogo.
Wizard di creazione
Il wizard di creazione è strutturato in più fasi.
1. Impostare il Context della regola
Puoi scegliere il contesto applicativo in cui si desidera limitare la regola.
Le opzioni sono:
Opzioni | Descrizione |
---|---|
Host | La regola verrà applicata solo a host specifici. Selezionando più host, verranno create più regole. |
Domain Groups (o Services) | La regola verrà applicata dinamicamente agli host appartenenti ai domain groups specifici. Selezionando più domain groups, verranno create più regole. |
All hosts and domain groups | La regola verrà applicata per ogni host. |
2. Definire le Condizioni
Puoi creare più condizioni selezionando un operatore, dei target e delle espressioni.
Le condizioni verranno convertite nel formato appropriato richiesto dai WAF configurati.
Per creare una regola è necessaria almeno una condizione.
3. Impostare le Azioni
Puoi selezionare più azioni per sincronizzare la regola con i WAF, una per dispositivo.
Devi configurare almeno un WAF per poter aggiungere un'azione dalla pagina dei Firewalls.
4. Impostare i campi generici
Puoi aggiungere una breve descrizione alla regola per identificare rapidamente il motivo della sua creazione, impostarne la durata e la priorità.
Modificare una Regola applicativa
Quando si aggiorna una regola, solo alcuni campi possono essere modificati. In particolare:
- Campi generici (eccetto il Context)
- Azioni
Quando si modificano i campi generici di una regola applicativa, i nuovi valori sovrascriveranno sempre quelli esistenti.
Quando si modificano le azioni di una regola applicativa, gli utenti possono scegliere tra tre opzioni di aggiornamento:
- Aggiungere azioni alla regola: aggiungi una o più nuove azioni a tutte le regole selezionate.
- Se un'azione per il firewall specificato non esiste già, verrà aggiunta.
- Se un'azione per il firewall specificato esiste già, rimarrà invariata.
- Sostituire azioni alla regola: aggiorna una o più azioni per tutte le regole selezionate.
- Se un'azione per il firewall specificato esiste già, verrà sovrascritta con la nuova azione.
- Se un'azione per il firewall specificato non esiste, verrà aggiunta.
- Eliminare azioni dalla regola: rimuovi una o più azioni da tutte le regole selezionate.
- Se un'azione per il firewall specificato esiste, verrà rimossa.
- Se un'azione per il firewall specificato non esiste, non verranno apportate modifiche.
Dall'interfaccia web di Seer Box
-
Accedi alla pagina
Protection - Application rules
: in questa sezione puoi visualizzare l'elenco di tutte le regole applicative create. -
Seleziona una o più regole da modificare cliccando sulla casella di controllo situata all'estremità sinistra di ciascun elemento.
-
Non appena almeno un record è selezionato, il pulsante
...
con l'icona dei tre punti verrà abilitato nell'angolo in alto a destra dell'elenco delle regole. -
Seleziona il campo da aggiornare e segui le istruzioni nel modal.
-
Clicca sul pulsante
Save
per confermare le modifiche.
Eliminare una Regola applicativa
Dall'interfaccia web di Seer Box
-
Accedi alla pagina
Protection - Application rules
: in questa sezione puoi visualizzare l'elenco di tutte le regole applicative create. -
Seleziona una o più regole da eliminare cliccando sulla casella di controllo situata all'estremità sinistra di ciascun elemento.
-
Non appena almeno un record è selezionato, il pulsante
...
con l'icona dei tre punti verrà abilitato nell'angolo in alto a destra dell'elenco delle regole. -
Seleziona l'opzione
Delete rules
. Verrà visualizzata una modale che conferma l'opzione. Clicca sul pulsanteConfirm
per procedere.
Sincronizzazione WAF
Ogni volta che una regola applicativa viene creata, aggiornata o eliminata, Seer Box avvia automaticamente un processo di sincronizzazione per applicare le modifiche ai WAF configurati (come definito nelle azioni della regola).
Risultati della sincronizzazione
L'esito del processo di sincronizzazione viene visualizzato:
- Nella colonna Actions del record della regola
- All'interno della sottotabella delle Actions, sotto la colonna Sync status, che fornisce un aggiornamento sullo stato per ogni firewall configurato.
Gestione degli errori di sincronizzazione
Se il processo di sincronizzazione fallisce:
- L'utente dovrebbe verificare la configurazione del firewall per assicurarsi che sia correttamente configurata.
- Dopo aver risolto il problema, il processo di sincronizzazione può essere ripetuto facendo clic sul pulsante
Sync firewalls
nell'angolo in alto a destra della pagina delle Regole Applicative, sotto il pulsante con l'icona dei tre puntini...
.