Azure Networking: Web Application Firewall Policy

Le Web Application Firewall policies permettono di centralizzare tutte le impostazioni, anche di WAF differenti, in un’unica configurazione. E’ possibile anche applicare più WAF policy, allo stesso Azure Application Gateway, associandole a livello di HTTP listener. In questo modo verranno applicate differenti regole personalizzate a seconda della URL ripubblicata esternamente (public listener) o internamente (private listener).

Prerequisito per le WAF policy è il Web Application Firewall nella SKU v2.

Figura 1 - Web Application Firewall policy protection
Figura 1 – Web Application Firewall policy protection

Ad oggi le WAF policies sono applicabili a tre differenti oggetti Azure:

  • Global WAF (Front Door)
  • Regional WAF (Application Gateway)
  • Azure CDN (Preview)

In questo articolo entreremo nel dettaglio delle Web Application Firewall policies applicate ad Azure Application Gateway. E’ da tenere in considerazione che alcune configurazioni, come le regole gestite o personalizzate, sono molto simili se non identiche tra Global WAF, Regional WAF ed Azure CDN.

Policy

Le WAF policies consistono nell’insieme di regole personalizzate e gestite, nella tipologia di attivazione del WAF (Detection o Prevention), nelle esclusioni, nella impostazione sul limite della dimensione di upload di file e nelle configurazione di ispezione del request body.

La creazione della WAF policy, per quanto riguarda Azure Application Gateway, prevede le seguenti configurazioni.

Associazione

Una volta selezionato il regional WAF occorerrà definire l’associazione a livello di Azure Application Gateway o HTTP listener.

Figura 2 - Associazione Application Gateway
Figura 2 – Associazione Application Gateway
Figura 3 - Associazione HTTP listener
Figura 3 – Associazione HTTP listener

Sarà possibile creare policy differenti per ogni listener appartenente allo stesso Application Gateway. Nel caso venissero assegnate policy a livello di Application Gateway o HTTP listener, che già hanno una policy associata, l’effetto sarà che la policy precedente verrà sovrascritta. La policy applicata a livello di Application Gateway o HTTP listener deve essere univoca.

Regole Gestite

Le regole gestite riguardano tutto il gruppo di regole OWASP pre-create e abilitate di default per offrire una protezione da differenti tipologie di attacchi conosciuti tra cui: SQL injection, cross-site scripting, local file inclusion, remote code execution, PHP code injection, scanner detection e tanti altri.

Figura 4 - Regole gestite
Figura 4 – Regole gestite

Regole Personalizzate

Con le regole personalizzate è possibile creare le proprie regole che verranno processate con priorità maggiore rispetto alle regole gestite. Le regole personalizzate si basano su una serie di condizioni per bloccare, permettere o loggare il traffico.

Figura 5 - Regole personalizzate
Figura 5 – Regole personalizzate

I campi richiesti e permessi per la creazione della regola personalizzata sono i seguenti:

Name

Priority

Le regole verranno processate in ordine numerico crescente. Il range numerico consentito è 1-100.

Match Rule

  • Match rule

Match Variable

  • RemoteAddr
  • RequestMethod
  • QueryString
  • PostArgs
  • RequestUri
  • RequestHeaders
  • RequestBody
  • RequestCookies

Operator

  • IPMatch
  • Equals
  • Contains
  • LessThan
  • GreaterThan
  • LessThanOrEqual
  • GreaterThanOrEqual
  • BeginsWith
  • EndsWith
  • Regex

Action Required

  • Allow
  • Block
  • Log

Tramite una funzionalità in preview è possibile applicare delle regole personalizzate, di tipo geomatch, a seconda della provenienza (region) della richiesta.

Riferimenti

Si riportano alcuni riferimenti alla documentazione ufficiale Microsoft:

Regole personalizzate per Azure Application Gateway SKU v2

Creare WAF Policy per Azure Application Gateway

Conclusioni

La WAF policy permette una gestione centralizzata di tutti gli aspetti legati alle configurazioni di sicurezza del Web Application Firewall. In modo particolare le regole personalizzate, oltre ad applicare specifici controlli sulle applicazioni web ripubblicate, ottimizzano anche l’aspetto economico. Prima delle regole personalizzate, nel caso fosse stato necessario applicare dei filtri sugli IP sorgenti, l’unico modo era tramite Network Security Group. In questi scenari significava prevedere un Application Gateway dedicato, anche per un singolo listener, che doveva essere acceduto solamente da quei determinati IP sorgenti. Con la WAF policy, tramite regole personalizzate, è possibile prevedere la stessa tipologia di blocco a livello di HTTP listener e non più in modo globale su Azure Application Gateway con regole configurate nel NSG.