Piattaforma edge cloud di Fastly

Cos'è un web application firewall di Kubernetes?

Un web application firewall Kubernetes è un firewall per applicazioni web utilizzato per proteggere le applicazioni web e le API in esecuzione in ambienti Kubernetes dal traffico dannoso a livello di applicazione. È una parte importante della sicurezza di Kubernetes. 

Kubernetes semplifica la distribuzione, la scalabilità e la gestione delle applicazioni containerizzate, ma non protegge automaticamente tali applicazioni da minacce come l’ SQL injection, il cross-site scripting (XSS), il command injection, i bot dannoso o altri attacchi web. Un web application firewall aggiunge un livello di sicurezza dell’applicazione che analizza le richieste HTTP e HTTPS e può rilevare, bloccare o registrare nel log attività dannose prima che raggiungano i carichi di lavoro protetti.

A seconda dell’architettura, un web application firewall può operare alla rete edge, insieme all’infrastruttura di ingresso Kubernetes o all’interno dell’ambiente Kubernetes stesso. L’approccio giusto dipende dalle applicazioni di un’organizzazione, dall’architettura del traffico, dai requisiti di prestazioni e dal modello di sicurezza.

Come funziona un web application firewall Kubernetes?

Un web application firewall Kubernetes è un web application firewall che protegge applicazioni e API distribuite su Kubernetes. Un web application firewall tradizionale si colloca tra gli utenti e un'applicazione web e analizza le richieste in arrivo alla ricerca di attività dannose. Lo stesso principio si applica a Kubernetes, ma l'ambiente dietro il web application firewall può essere costituito da molti container, pod, servizi, API e microservizi che possono cambiare e scalare dinamicamente.

Un'applicazione Kubernetes potrebbe avere un percorso di richiesta simile a questo:

Utente - Rete di distribuzione dei contenuti/edge - web application firewall - Kubernetes ingress o gateway - Service - Pod

La posizione esatta del web application firewall varia. Alcune organizzazioni distribuiscono software di sicurezza all’interno dei loro cluster Kubernetes. Altre ispezionano il traffico prima che raggiunga il cluster utilizzando un web application firewall cloud o edge. Gli approcci ibridi possono utilizzare più di un enforcement point. 

L’obiettivo è lo stesso: identificare e bloccare il traffico dannoso delle applicazioni prima che possa essere oggetto di exploit o interrompere i carichi di lavoro Kubernetes.

Flusso del processo del web application firewall Kubernetes
Un web application firewall Kubernetes esamina le richieste a livello di applicazione e applica la logica di sicurezza prima di consentire loro di raggiungere i carichi di lavoro protetti.

Una tipica richiesta potrebbe seguire questi passaggi:

  1. Un utente o client invia una richiesta HTTP. La richiesta potrebbe essere destinata a un sito web, un’API o un altro servizio esposto su internet in esecuzione su Kubernetes.

  2. Il web application firewall ispeziona la richiesta. A seconda della distribuzione, questo può avvenire ai bordi della rete o più vicino al carico di lavoro Kubernetes.

  3. Il web application firewall analizza le informazioni a livello di applicazione. Può ispezionare elementi come URL, parametri, intestazioni, cookie, corpi delle richieste e payload API.

  4. Le regole di sicurezza e i meccanismi di rilevamento valutano il traffico. Il sistema determina se la richiesta appare legittima, sospetta o dannosa.

  5. Viene eseguita un’azione. Il web application firewall può consentire la richiesta, bloccarla, registrarla nel log o applicare un’altra risposta configurata.

  6. Il traffico consentito continua verso Kubernetes. La richiesta può quindi passare attraverso il bilanciatore del carico, il controller di ingresso o il gateway appropriato fino al servizio Kubernetes e, infine, al pod pertinente.

I moderni WAF possono integrare le firme di attacco con l’analisi comportamentale, l’intelligence sulle minacce, la limitazione della velocità, il rilevamento dei bot o altri segnali di sicurezza.

Perché gli ambienti Kubernetes hanno bisogno di un web application firewall?

Kubernetes fornisce importanti funzionalità di infrastruttura e orchestrazione, ma non sostituisce la sicurezza a livello di applicazione. Ecco i motivi per cui un web application firewall è necessario in un ambiente Kubernetes:

Le applicazioni Kubernetes sono ancora applicazioni web
Lo spostamento di un’applicazione nei container non elimina le vulnerabilità nel suo codice. Un’applicazione ospitata su Kubernetes può ancora essere esposta a SQL injection, XSS, command injection, path traversal, attacchi di autenticazione, abuso delle API e altre minacce web.

Kubernetes incoraggia le architetture distribuite
Kubernetes è comunemente utilizzato per microservizi e applicazioni basate su API. Questo può creare molti endpoint dell’applicazione con funzioni, requisiti di accesso ai dati e profili di rischio diversi. Di conseguenza, le API diventano una parte importante della superficie di attacco.

Gli ambienti Kubernetes cambiano rapidamente
I pod possono essere creati, eliminati e riprogrammati automaticamente. Anche le applicazioni possono essere aggiornate più volte al giorno tramite pipeline CI/CD. L’architettura di sicurezza deve funzionare con questo modello dinamico anziché dipendere da presupposti statici sull’infrastruttura.

I carichi di lavoro esposti a Internet sono costantemente presi di mira
Le applicazioni e le API pubbliche possono ricevere scansioni delle vulnerabilità, tentativi di exploit, attacchi alle credenziali, bot dannosi e traffico DDoS indipendentemente dal fatto che il backend venga eseguito su Kubernetes, macchine virtuali o server fisici.

Come aiuta un web application firewall 
La sicurezza di Kubernetes include diversi aspetti distinti. La configurazione del cluster, la gestione dei segreti, le policy di rete, la gestione delle identità e degli accessi, la sicurezza dei container, la scansione delle immagini, la sicurezza del runtime e la protezione WAF risolvono problemi diversi.

Un web application firewall aiuta specificamente a proteggere il livello di applicazione. Non dovrebbe essere considerato un sostituto della protezione della piattaforma Kubernetes stessa.

Da quali minacce può aiutare a proteggere un web application firewall Kubernetes?

A seconda del web application firewall, la protezione a livello di applicazione può contrastare attacchi che includono:

  • SQL injection

  • Cross-site scripting

  • Iniezione di comandi

  • Attraversamento del percorso

  • Richieste HTTP malevole

  • Sfruttamento di vulnerabilità note

  • Attacchi API

  • Scansione e probing delle applicazioni

Se integrate con tecnologie complementari, le organizzazioni possono anche contrastare bot dannosi, attacchi alle credenziali, scraping, attacchi DDoS a livello di applicazione e altre forme di abuso automatizzato.

OWASP Top 10 è un riferimento utile per comprendere le principali categorie di rischio per la sicurezza delle applicazioni web. Tuttavia, non ci si dovrebbe aspettare che un web application firewall elimini ogni rischio OWASP, perché alcune vulnerabilità riguardano la progettazione dell’applicazione, l’autorizzazione, la configurazione o la logica di business e devono essere corrette nell’applicazione stessa.

Quali sono le migliori pratiche per distribuire un web application firewall con Kubernetes?

Un WAF è più efficace quando fa parte di una più ampia strategia di Kubernetes e di sicurezza delle applicazioni.

1. Proteggi le applicazioni prima che il traffico raggiunga il cluster, quando possibile
Un web application firewall distribuito sull’edge può identificare le richieste dannose prima che consumino risorse di rete Kubernetes, ingress, calcolo e applicazione. Ridurre il traffico indesiderato upstream può migliorare sia la sicurezza sia l’efficienza dell’infrastruttura.

2. Proteggi le API e le pagine web
Gli ambienti Kubernetes ospitano spesso microservizi basati su API. Fai l’inventario delle API accessibili dall’esterno e assicurati che le policy di sicurezza tengano conto degli endpoint API invece di proteggere solo il traffico tradizionale del browser.

3. Limita l’accesso diretto alle origini
Se un’applicazione deve ricevere traffico di rete tramite un livello di sicurezza edge, gli hacker non dovrebbero poter aggirare tale livello semplicemente connettendosi direttamente a un’origine esposta. Dove l’architettura lo consente, limita l’accesso all’origine ai percorsi di traffico autorizzati.

4. Integrare la sicurezza in CI/CD
Le distribuzioni Kubernetes sono spesso automatizzate, quindi la sicurezza dovrebbe adattarsi allo stesso modello operativo. L'infrastruttura come codice, i criteri con controllo delle versioni, i test di sicurezza automatizzati e le distribuzioni ripetibili possono ridurre la deriva della configurazione.

5. Inizia con la visibilità
Prima di bloccare il traffico in modo aggressivo, comprendi cosa sta rilevando il web application firewall. Le modalità di monitoraggio o registrazione possono aiutare i team a valutare potenziali falso positivo e a comprendere il normale comportamento dell’applicazione prima di applicare nuove regole.

6. Mantieni gestibili le policy di sicurezza
Un maggior numero di regole non produce necessariamente una sicurezza migliore. Le policy eccessivamente complesse possono diventare difficili da gestire e possono creare falsi positivi. Dai priorità alle protezioni di maggior valore e rivedi regolarmente le eccezioni obsolete.

7. Combina web application firewall e Protezione dai bot
Una richiesta HTTP dall’aspetto legittimo può comunque essere dannosa se automatizzata migliaia di volte. La gestione dei bot può integrare un web application firewall identificando l’automazione dannosa coinvolta in attività come credential stuffing, scansione, scraping e abuso dell’applicazione.

8. Proteggiti dagli attacchi DDoS
Un web application firewall non dovrebbe essere l’unica difesa contro gli attacchi Denial of Service. Usa una protezione DDoS appropriata a livello di rete e di applicazione, in modo che il traffico di attacco possa essere mitigato prima che esaurisca le risorse di Kubernetes o dell’applicazione.

9. Monitora centralmente gli eventi di sicurezza
Integra la telemetria di sicurezza del web application firewall con piattaforme di logging, gestione delle informazioni e degli eventi di sicurezza e osservabilità, ove appropriato. I team di sviluppo, Operazioni e sicurezza dovrebbero essere in grado di analizzare gli attacchi senza correlare manualmente le informazioni tra i singoli pod.

10. Correggi le vulnerabilità nell’applicazione
Un web application firewall aggiunge un importante livello di difesa, ma non sostituisce lo sviluppo sicuro. Continua ad applicare patch alle dipendenze, testare le applicazioni, correggere le configurazioni non sicure, implementare un’autorizzazione efficace e correggere il codice vulnerabile.

Un web application firewall deve essere eseguito all’interno o all’esterno di Kubernetes?

Entrambi gli approcci sono possibili.

WAF all’interno di Kubernetes
Un web application firewall o componente di sicurezza può operare all’interno o in prossimità dell’ambiente Kubernetes, potenzialmente integrandosi con l’infrastruttura di ingresso o con i servizi dell’applicazione. Questo approccio può offrire alle organizzazioni flessibilità di distribuzione e controlli di sicurezza vicini ai singoli carichi di lavoro.

Tuttavia, l’infrastruttura di sicurezza nel cluster può consumare risorse del cluster e potrebbe dover scalare insieme al traffico dell’attacco.

Web application firewall esterno a Kubernetes
Un web application firewall esterno o edge ispeziona le richieste prima che raggiungano Kubernetes. Questo può impedire che richieste dannose consumino risorse di ingresso, rete, calcolo e applicazione all’interno del cluster. Inoltre, separa il livello di applicazione della sicurezza dall'infrastruttura che protegge.

Distribuzione ibrida
Alcune organizzazioni combinano la sicurezza edge con controlli più vicini ai carichi di lavoro. Il modello appropriato dipende dall’architettura dell’organizzazione, dai requisiti di conformità, dalle pratiche operative, dalle applicazioni e dal modello di minaccia.

Chi ha bisogno di un web application firewall Kubernetes?

Le organizzazioni dovrebbero prendere in considerazione la protezione WAF quando i loro ambienti Kubernetes ospitano applicazioni web o API esposte a Internet.

Provider SaaS
Le applicazioni SaaS espongono comunemente sistemi di accesso, API, dashboard e funzionalità rivolte ai clienti che gli hacker possono prendere di mira.

Aziende di e-commerce
Gli storefront ospitati su Kubernetes, i sistemi di checkout, le funzioni di ricerca e le API possono essere soggetti a tentativi di iniezione, bot dannoso, attacco agli account e minacce DDoS.

Servizi finanziari
Le applicazioni che gestiscono informazioni o transazioni finanziarie possono trarre vantaggio da una sicurezza delle applicazioni a più livelli insieme a una solida autenticazione, autorizzazione, crittografia e sviluppo sicuro.

Aziende dei media e dell’editoria
Le piattaforme di contenuti ad alto traffico possono essere soggette a scansione delle vulnerabilità, scraping, abusi automatizzati e improvvisi picchi di traffico.

Aziende API-first
Le organizzazioni che gestiscono un gran numero di API pubbliche hanno bisogno di controlli in grado di proteggere gli endpoint delle applicazioni senza dipendere esclusivamente dalla tradizionale sicurezza di rete.

Le aziende che adottano i microservizi
Man mano che le organizzazioni suddividono le applicazioni monolitiche in servizi distribuiti, il numero di API e interfacce delle applicazioni può aumentare significativamente. Un web application firewall può fornire un ulteriore livello di sicurezza nel punto in cui tali applicazioni sono esposte a traffico non attendibile.

La sicurezza di Kubernetes è la stessa della sicurezza delle applicazioni?

No. La sicurezza di Kubernetes comprende l'ambiente di orchestrazione dei container sottostante, incluse aree quali:

  • Accesso al cluster

  • RBAC

  • Segreti

  • Politiche di rete

  • Immagini di contenitori

  • Sicurezza dei pod

  • Sicurezza dei nodi

  • Sicurezza runtime

  • Sicurezza della supply chain

La sicurezza delle applicazioni si concentra sul software in esecuzione su tale infrastruttura, inclusi il codice, le API, l’autenticazione, l’autorizzazione e l’elaborazione dell’input dell’utente. Un web application firewall affronta principalmente le minacce a livello di applicazione. Le organizzazioni che eseguono Kubernetes devono quindi proteggere sia la piattaforma sia le applicazioni in esecuzione su di essa.

Un web application firewall Kubernetes è sufficiente per proteggere le API?

In breve: no. Un web application firewall è un livello importante, ma una sicurezza delle API completa richiede generalmente controlli aggiuntivi.

Le organizzazioni dovrebbero anche considerare:

  • Autenticazione e autorizzazione efficaci

  • Rilevamento e inventario delle API

  • Convalida dello schema e dell’input

  • Limitazione della velocità

  • Protezione dai bot

  • Mitigazione DDoS

  • Sviluppo sicuro di API

  • Logging e monitoraggio

  • Protezione adeguata contro l’abuso della logica di business

L’obiettivo è prevenire sia i tradizionali exploit web sia gli attacchi che abusano di funzionalità API altrimenti legittime.

In che modo Fastly si integra con gli ambienti Kubernetes?

Fastly può proteggere le applicazioni ospitate su Kubernetes senza richiedere che il principale enforcement point della sicurezza risieda all’interno di ogni cluster Kubernetes. Una tipica architettura può collocare la piattaforma edge cloud di Fastly davanti ad applicazioni ospitate su Kubernetes:

Utenti  - Fastly edge  - Infrastruttura Kubernetes  - Carichi di lavoro dell’applicazione

Il traffico dell’applicazione in ingresso raggiunge prima Fastly, dove è possibile applicare controlli di distribuzione e sicurezza prima che le richieste consentite proseguano verso l’ambiente Kubernetes. Questa architettura può aiutare le organizzazioni a tenere il traffico dannoso o non necessario lontano dall’infrastruttura Kubernetes, fornendo al contempo un livello di sicurezza coerente tra cluster e ambienti applicativi.

Come funziona il WAF Next-Gen di Fastly con Kubernetes?

WAF Next-Gen di Fastly può proteggere le applicazioni web e le API ospitate su Kubernetes. Supporta più modelli di distribuzione, incluse le distribuzioni cloud del WAF sul Fastly edge e opzioni di distribuzione più vicine all’infrastruttura dell’applicazione. Questo offre alle organizzazioni flessibilità nel determinare dove avviene l’ispezione della sicurezza delle applicazioni.

Il web application firewall di Fastly utilizza la tecnologia SmartParse per analizzare i parametri della richiesta e identificare il comportamento dannoso dell’applicazione. Anziché dipendere esclusivamente dalle tradizionali regole basate su espressioni regolari, SmartParse è progettato per identificare l’intento alla base delle richieste e ridurre i falsi positivi.

Per le applicazioni Kubernetes, questo può fornire protezione da classi di attacco come:

  • SQL injection

  • Cross-site scripting

  • Iniezione di comandi

  • Attraversamento del percorso

  • Altri attacchi a livello di applicazione

La distribuzione edge può anche ridurre la quantità di traffico dannoso che raggiunge i cluster Kubernetes fin dall'inizio.

Fastly può proteggere più cluster Kubernetes?

Sì. Un’architettura di sicurezza basata sull’edge può essere utile quando le applicazioni si estendono su più cluster, regioni o provider di infrastruttura. Invece di richiedere uno stack di sicurezza separato esposto a internet per ogni cluster, il traffico può passare attraverso Fastly prima di essere instradato verso l’origine dell’applicazione appropriata.

Può essere utile per le organizzazioni che operano:

  • Più cluster Kubernetes

  • Distribuzioni multiregione

  • Applicazioni cloud ibride

  • Architetture multi-cloud

  • Kubernetes insieme a infrastruttura non Kubernetes

La configurazione precisa dipenderà dalla rete dell'applicazione e dall'architettura dell'origine.

Quali altre funzionalità di sicurezza di Fastly integrano la protezione WAF di Kubernetes?

La protezione web application firewall è una parte del più ampio portafoglio di sicurezza delle applicazioni di Fastly.

Fastly gestione dei bot
Fastly gestione dei bot aiuta a identificare e controllare il traffico automatizzato. Questo può integrare la protezione del web application firewall contro i bot coinvolti nella scansione delle vulnerabilità, negli attacchi alle credenziali, nello scraping e nell’abuso delle applicazioni.

Fastly DDoS Protection
Fastly DDoS Protection aiuta a difendere le applicazioni dagli attacchi progettati per sovraccaricare le risorse della rete o dell'applicazione. Mitigare gli attacchi ai bordi della rete può impedire a grandi volumi di traffico indesiderato di raggiungere l'infrastruttura Kubernetes.

Limitazione della velocità
Limitazione della velocità può aiutare a proteggere gli endpoint sensibili e computazionalmente costosi dell’applicazione. Per le applicazioni Kubernetes, questo può essere particolarmente utile per le API, gli endpoint di autenticazione, le funzioni di ricerca e altri servizi in cui richieste eccessive potrebbero consumare risorse del backend.

Rete di distribuzione dei contenuti e cache
La CDN di Fastly può memorizzare nella cache i contenuti idonei ai bordi della rete, riducendo le richieste che devono raggiungere i carichi di lavoro Kubernetes. Questo può migliorare le prestazioni dell'applicazione riducendo al contempo il carico sui controller di ingresso, sui servizio, sui pod, sui database e su altre infrastrutture di origine.

Visibilità in tempo reale
Fastly offre funzionalità di logging in tempo reale e osservabilità che possono aiutare i team di sicurezza e Operazioni a comprendere i modelli di traffico e a indagare sulle attività dannose. Questo può integrare l’osservabilità nativa di Kubernetes fornendo visibilità sul traffico prima che raggiunga il cluster.

Pronto per iniziare?

Contattaci oggi