WAF Web Application Firewall – Cos’è?

Iniziamo col dire che l’argomento WAF (Web Application Firewall) è molto ampio e complesso. Per questo motivo, questo sarà il primo di una serie di articoli in cui affronteremo e approfondiremo questo tema. In questo articolo parliamo quindi di WAF, ma cos’è un Web Application Firewall?

Affronteremo (plurale) perché, volendo proporre contenuti di qualità, questo articolo è stato scritto a quattro mani, insieme al collega di Security Giuseppe Giannini (ICT Security Engineer | CISM @TIM – https://www.linkedin.com/in/giuseppe-giannini-a158911/) che di WAF ne sa a vagonate 😎.

Let’s go!

No, WAF non è l’abbreviazione di una parolaccia. Anche se devo ammettere che le cause che portano all’adozione di un WAF, sono spesso loro stesse generatrici di WAF…… Va beh, ci siamo capiti 😊.

Lavoro nel mondo dell’informatica da 23 anni e credo che mai come negli ultimi 2 ho sentito tanto parlare di hacker, attacchi informatici (anche andati a buon fine), e di sicurezza. Qualche dato relativo ad hacks e breaches del 2022 da Wired.

Molto spesso il canale d’ingresso di ogni attacco è il sito web dell’azienda target; questo perché le risorse web che l’azienda espone su Internet (sito istituzionale, e-commerce, servizi/api esposti per altre ragioni) sono spesso un canale di ingresso per gli attacchi dei malintenzionati.

Abbiamo già parlato nell’articolo precedente di quali potrebbero essere i primi passi da seguire per apportare un primo filtro di protezione da un attacco. In questo articolo invece passeremo al livello 2, quello avanzato, che contempla l’utilizzo di un Web Application Firewall (WAF), ovvero un firewall applicativo. 

Capiamo insieme cos’è un WAF, a cosa serve e come può aiutarci.

WAF – Web Application Firewall – Cos’è? A cosa serve?

Imprinting da Wikipedia:

web application firewall (WAF) is a specific form of application firewall that filters, monitors, and blocks HTTP traffic to and from a web service. By inspecting HTTP traffic, it can prevent attacks exploiting a web application’s known vulnerabilities, such as SQL injection, cross-site scripting (XSS), file inclusion, and improper system configuration.

La descrizione è chiara. 

Possiamo definire un WAF come un apparato o un servizio che, posto davanti ai web server (o meglio davanti al bilanciatore, o comunque davanti al servizio web che vogliamo proteggere), ispeziona, monitora , filtra e blocca il traffico HTTP/S malevolo o indesiderato diretto ai nostri server (o, volendo, anche generato dal nostro server se, per esempio, le risposte dei server rivelano informazioni che non desideriamo rendere disponibili).

Qual è la differenza tra un Firewall e un WAF?

Il WAF protegge le applicazioni Web da attacchi dannosi che sfruttano vulnerabilità applicative. Il firewall tradizionale invece, offre protezione contro le minacce a livello di rete.

Entriamo più nel dettaglio:

  1. La principale differenza tra firewall e WAF è che il WAF fornisce una difesa contro le minacce che prendono di mira le applicazioni web e conseguentemente i server che le ospitano. Un firewall tradizionale invece viene posizionato al confine di una rete, fungendo da barriera tra la nostra rete e Internet, consentendo il transito del solo traffico diretto ai servizi che desideriamo esporre. La differenza relativa al posizionamento è labile. Questo perché il posizionamento del WAF nella rete cambia a seconda della topologia di rete e a seconda che il WAF sia istallato On-Premise (ovvero all’interno del nostro datacenter) o sia un servizio SaaS (Vedi Figura 1 sotto). Di questa differenza parleremo più avanti o in post futuri :).
  2. I firewall standard hanno lo scopo di consentire o negare l’accesso alle reti. I firewall WAF si concentrano sulle minacce mirate a server e app che utilizzano il protocollo HTTP/HTTPS.
  3. Un comune firewall lavora a livello 3 e 4 (livello di trasporto) del modello OSI, mentre il WAF è un oggetto avanzato che, lavorando invece a livello7 (livello di applicazione), è in grado di ispezionare il contenuto dei pacchetti in ingresso e capire se contengono richieste con caratteristiche anomale o riconducibili allo sfruttamento di vulnerabilità applicative .
  4. WAF è un apparato intelligente che include algoritmi euristici, algoritmi di rilevamento delle anomalie e algoritmi basati sulla firma, utili a intercettare attacchi o anomalie di traffico. 

Iniziamo a dare una forma alla topologia di una rete in cui sia presente un WAF:

WAF-Web-Application-Firewall-Figure1
WAF-Web-Application-Firewall-Figure1

L’immagine rappresentata in Figura 1 ci mostra una configurazione di rete in cui il WAF è in modalità SaaS (sfruttando quindi capacità computazionale di un public cloud). Il WAF in SaaS è quindi un servizio e non un apparato. Approfondiremo in futuro i due concetti: SaaS e On Premise.

Testo consigliato:

Web Application Firewalls A Complete Guide Implementa strategie di best practice basate sull’evidenza in linea con gli obiettivi generali. Integra i recenti progressi nei Web Application Firewall e le strategie di progettazione dei processi nella pratica secondo le linee guida delle migliori pratiche. L’utilizzo dello strumento di autovalutazione fornisce la scorecard Web Application Firewalls, consentendo di sviluppare un quadro chiaro delle aree Web Application Firewalls che richiedono attenzione. Il tuo acquisto include l’accesso ai componenti digitali di autovalutazione di Web Application Firewalls che ti offre uno strumento pronto per i progetti con priorità dinamica che ti consente di definire, mostrare e guidare la tua organizzazione esattamente con ciò che è importante.

compra-su-amazon

Come funziona un WAF

Una comune configurazione, senza WAF, prevede che il servizio sia esposto su internet risolto dal DNS direttamente con l’IP del bilanciatore (Origin Public IP in viola):

WAF Web Application Firewall - Figure2
WAF Web Application Firewall – Figure2

Figura 2 – Nessun Web Application Firewall a protezione. I clienti risolvono sul DNS il nostro sito con l’IP reale del bilanciatore.

Nella configurazione di Figura 2 non c’è un WAF, pertanto il nostro sito non ha alcuna protezione.

Come abbiamo visto nell’immagine in Figura 1 il WAF è posizionato tra i client utilizzatori del servizio che esponiamo e i nostri server, e in mezzo ci saranno:

  1. un firewall ( o più di uno)
  2. un load balancer.

Il traffico attraverso il WAF

Quindi tutto il traffico proveniente dai client su internet dovrà passare attraverso il WAF (che di fatto opera da reverse proxy) prima di arrivare sui nostri server.

Il WAF elabora il traffico in ingresso e in base alle regole di protezione che abbiamo configurato farà passare o meno i pacchetti verso i nostri server.

Affinché il tutto funzioni come ci aspettiamo, sarà necessario che il nome simbolico del nostro servizio sia risolto dai DNS su internet con l’indirizzo IP pubblico del WAF. Mentre sul WAF dovremo impostare l’indirizzo IP pubblico del nostro servizio, esposto su internet attraverso il bilanciatore, come Origin Server.

Spieghiamo meglio questo concetto con un’immagine.

WAF-Web-Application-Firewall-Figure3
WAF-Web-Application-Firewall-Figure3

Figura 3: Esempio di WAF in SaaS dove viene mostrato come l’IP con cui viene risolto il nostro servizio sia un IP del WAF stesso.

Facciamo conto che il nostro sito sia risolto dai DNS internet con l’IP 169.0.0.1 (impossibile ma facciamocelo andare bene per il nostro esempio). Questo IP è quello evidenziato in arancio nella figura 3. In questo modo tutti i clienti che visiteranno https://ilnostrositoprotettodalwaf.io dovranno attraversare il WAF per arrivare alla destinazione finale.

Contestualmente, la configurazione del WAF prevede che sia impostato l’IP (o un nome host) dell’origin server a cui inoltrare il traffico “pulito”. L’origin server è il sistema che effettivamente eroga il servizio e il suo IP è quello evidenziato in viola in figura 3.

Quali protezioni offre un WAF?

Abbiamo capito in linea generale la logica di funzionamento e la macro-architettura di una soluzione WAF in SaaS, ma che tipo di protezioni offre?

esempio di regole WAF
esempio di regole WAF – Interfaccia grafica di Cloudflare

Facciamo una premessa prima di andare avanti. Esistono diversi produttori che offrono il servizio. Tra i più conosciuti ci sono Akamai, Cloudflare, F5, Fortinet, Cloud Armor di GCP, AWS insieme ad altri più o meno noti.

Le politiche di protezione sono più o meno le stesse tra tutti. Qualcuno offre qualcosa in più, altri qualcosa in meno.

In linea generale tutti offrono le seguenti protezioni:

  • Known Attacks (OWASP)
  • Protezione dai Bot
  • Cookie Security
  • DDoS
  • Request Limit
  • URL Protection
  • Counrty Filtering
  • API Protection
  • XSS
  • Custom rules …. and much more

In uno dei prossimi articoli della newsletter snoccioleremo nel dettaglio il significato di queste voci per capire in quali occasioni ciascuna di queste può risultarci utili.

La logica è comunque semplice. Si scelgono le protezioni che si vogliono attivare (solitamente attraverso un’interfaccia grafica abbastanza intuitiva. Sopra, in figura 4, potete vedere la GUI offerta da Cloudflare) e da quel momento, tutto il traffico che fa match con queste regole viene bloccato, ovvero si ferma sul WAF, e non viene inoltrato ai nostri real servers.

Conclusioni

La prima parte della serie dedicata al WAF si conclude qui. Gli argomenti da trattare sono ancora tantissimi.

Nei prossimi articoli affronteremo i seguenti temi:

  • Dettaglio delle protezioni disponibili. Cosa fanno e come configurarle.
  • Differenza tra WAF in SaaS e On Premise
  • Correlazioni tra WAF, balancer e ZERO TRUST
  • Opinioni personali su alcuni servizi WAF offerti dal mercato

Video contributo sui Web Application Firewall

Cosa ne pensate dell’articolo? Mi piacerebbe avere la vostra opinione nei commenti.

Il confronto è sempre costruttivo.

We wish you a funny job

Fabio Iegri – Giuseppe Giannini

Questo articolo è presente anche su LinkedIn al seguente indirizzo https://www.linkedin.com/pulse/sec-waf-ovvero-web-application-firewall-part-1-fabio-iegri/.

Se l’articolo vi è piaciuto o se vi è risultato utile per chiarire qualche dubbio, potete iscrivervi alla mia newsletter LinkedIn: Web in Cloud: https://www.linkedin.com/newsletters/web-in-cloud-6945274376917274624/

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *