Passa al contenuto principale

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

CampoDescrizione
StatusIndica se la regola è abilitata o meno, l'utente relativo all'ultimo aggiornamento e relativo timestamp.
IDL'UID della regola (i primi 8 caratteri per una migliore leggibilità) e, opzionalmente, la descrizione.
ContextRappresenta il contesto applicativo della regola, che può essere un Host specifico, un Domain Group oppure applicarsi a entrambi.
PriorityIndica la priorità di esecuzione. Valori più bassi rappresentano una priorità più alta.
ExpirationRappresenta 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:

TargetTipoDescrizione
methodBasicIl metodo della richiesta HTTP
parameter_keyBasicLe chiavi dei parametri query della richiesta
parameter_valueBasicI valori dei parametri query della richiesta
pathBasicL'uri path della richiesta
protocolBasicLa versione del protocollo HTTP della richiesta
queryBasicLa query string grezza della richiesta
request_bodyBasicIl corpo grezzo della richiesta
request_sizeBasicLa dimensione della richiesta HTTP in byte
request_targetBasicL'URL della richiesta, inclusi il dominio, il path e la query string
response_bodyBasicIl corpo grezzo della risposta
response_sizeBasicLa dimensione della risposta HTTP in byte
statusBasicIl codice di risposta della risposta HTTP
request:HEADERComposedUn valore dell'header della richiesta HTTP per uno specifico HEADER (es. per l'header User-Agent, il target è request:User-Agent)
response:HEADERComposedUn 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:KEYComposedIl 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_PATHComposedIl valore associato a un specifico JSON_PATH nel corpo della richiesta (formattato il JSON).
parsed_request_body:xml:XML_PATHComposedIl valore associato a un specifico XML_PATH del corpo della richiesta (formattato in XML).
parsed_response_body:x-www-form-urlencoded:KEYComposedIl 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_PATHComposedIl valore associato a un specifico JASON_PATH nel corpo della risposta (formattato in JSON).
parsed_response_body:xml:XML_PATHComposedIl 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à.

OperatoreTipo di confrontoDescrizione
Is equalPlain textCorrisponde se il target è esattamente uguale all'espressione
Is not equalPlain textCorrisponde se il target non è esattamente uguale all'espressione
ContainsPlain textCorrisponde se il target include l'espressione specificata
Does not containPlain textCorrisponde se il target non include l'espressione specifica
Starts withPlain textCorrisponde se il target inizia con l'espressione
Does not start withPlain textCorrisponde se il target non inizia con l'espressione
Ends withPlain textCorrisponde se il target finisce con l'espressione
Does not end withPlain textCorrisponde se il target non corrisponde con l'espressione
Match charsetPlain textCorrisponde se il target contiene caratteri da un set di caratteri specificato. Vedi la sezione Charset per maggiori dettagli
Match all except charsetPlain textCorrisponde se il target non contiene caratteri da un set di caratteri specificato. Vedi la sezione Charset per maggiori dettagli
Match regexPlain textCorrisponde se il target soddisfa il pattern dell'espressione regolare fornita
Match all except regexPlain textCorrisponde 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 caratteriDescrizione
WhitespacesCorrisponde se il target contiene caratteri di spazio (\s)
DigitsCorrisponde se il target contiene cifre numeriche (0-9)
LowercasesCorrisponde se il target contiene lettere minuscole (a-z)
UppercasesCorrisponde se il target contiene lettere maiuscole (A-Z)
AlphanumericalCorrisponde se il target contiene lettere (A-Za-z) o cifre (0-9)
All symbolsCorrisponde se il target contiene qualsiasi simbolo non alfanumerico (es. !@#$%^&*()_+[]{})
SINGLE_SYMBOLInvece 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

  1. Accedi alla pagina Protection - Application rules: in questa sezione puoi visualizzare l'elenco di tutte le regole applicative create.

  2. Per creare una regola personalizzata, clicca sul pulsante Add rule nell'angolo in alto a destra della pagina.

  3. 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.

  4. 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:

OpzioniDescrizione
HostLa 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 groupsLa 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:

  1. 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.
  1. 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.
  1. 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

  1. Accedi alla pagina Protection - Application rules: in questa sezione puoi visualizzare l'elenco di tutte le regole applicative create.

  2. Seleziona una o più regole da modificare cliccando sulla casella di controllo situata all'estremità sinistra di ciascun elemento.

  3. 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.

  4. Seleziona il campo da aggiornare e segui le istruzioni nel modal.

  5. Clicca sul pulsante Save per confermare le modifiche.

Eliminare una Regola applicativa

Dall'interfaccia web di Seer Box

  1. Accedi alla pagina Protection - Application rules: in questa sezione puoi visualizzare l'elenco di tutte le regole applicative create.

  2. Seleziona una o più regole da eliminare cliccando sulla casella di controllo situata all'estremità sinistra di ciascun elemento.

  3. 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.

  4. Seleziona l'opzione Delete rules. Verrà visualizzata una modale che conferma l'opzione. Clicca sul pulsante Confirm 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 ....