Come aumentare la sicurezza delle architetture a microservizi basate su Azure Kubernetes

Il diffondersi di nuove architetture applicative basate su microservizi impone l’adozione di soluzioni all’avanguardia che consentono di garantire un elevato livello di protezione e che permettono di rilevare e rispondere ad eventuali minacce di sicurezza. Azure Defender è in grado di offrire una protezione avanzata e mirata delle risorse e dei workload in ambienti ibridi ed in Azure. In questo articolo viene riportato come Azure Defender è in grado di garantire la protezione delle istanze di Azure Kubernetes Service (AKS) e la scansione delle immagini presenti in Azure Container Registry per rilevare eventuali vulnerabilità.

Azure Kubernetes Service (AKS) è il servizio Azure completamente gestito che permette l’attivazione di un cluster Kubernetes, ideale per semplificare il deployment e la gestione di architetture basate su microservizi. Grazie alle funzionalità offerte da AKS è possibile scalare automaticamente in base all’utilizzo, utilizzare controlli per garantire l’integrità dei servizi, implementare politiche di bilanciamento del carico e gestire i secret. In architetture basate su microservizi è frequente anche l’adozione del componente Azure Container Registry che consente di creare, archiviare e gestire le immagini dei container e gli artifacts in un registry privato. L’utilizzo di questo servizio gestito viene integrato con le pipeline di sviluppo e di deployment dei container.

Figura 1 – Esempio di architettura a microservizi basata su Azure Kubernetes

Azure Defender per Kubernetes

Attraverso l’analisi continua dell’ambiente AKS, Azure Security Center (ASC) è in grado di fornire una protezione dalle minacce in tempo reale per gli ambienti containerizzati e genera avvisi nel caso vengano rilevate minacce oppure attività dannose, sia a livello di host che a livello di cluster AKS.

La protezione da minacce di sicurezza per Azure Kubernetes Service avviene a diversi livelli:

  • Host level (fornito da Azure Defender for servers): tramite l’agente di Log Analytics vengono monitorati i nodi Linux del cluster AKS. In questo modo la soluzione è in grado di rilevare attività sospette come connessioni da indirizzi IP particolari e web shell detection. L’agente è inoltre in grado di monitorare specifiche attività relative ai container, come la creazione di container privilegiati, l’accesso ai server API e la presenza di server SSH in esecuzione all’interno di un container Docker. La lista completa degli alert che si possono attenere abilitando la protezione Host level è consultabile in questo documento.
  • AKS cluster level (fornito da Azure Defender for Kubernetes): a livello di cluster, la protezione dalle minacce si basa sull’analisi degli audit logs di Kubernetes. Si tratta di un monitor che non richiede la presenza di agenti specifici e che permette di generare alert, monitorando i servizi gestiti di AKS, come ad esempio la presenza di dashboard Kubernetes esposte e la creazione di ruoli con privilegi elevati. Per consultare la lista completa degli alert generati da questa protezione è possibile accedere a questo link.

In un ambiente AKS è consigliato da best-prectices abilitare anche l’Azure Policy add-on per Kubernetes oltre che ai servizi Azure Defender di protezione dalle minacce. In questo modo, grazie all’iterazione tra i vari componenti di piattaforma, in Azure Security Center è possibile analizzare quanto segue:

  • Audit logs provenienti dei server API
  • Eventi di security non elaborati (row) dall’agente di Log Analytics
  • Informazioni sulla configurazione del cluster AKS
  • Configurazioni dei workload
Figura 2 – Architettura ad alto livello che mostra l’interazione tra ASC, AKS ed Azure Policy

Azure Defender per container registry

Il servizio di protezione Azure Defender for container registries permette di valutare e gestire la presenza di vulnerabilità nelle immagini presenti in Azure Container Registry (ACR). Grazie allo strumento di scansione di Qualys è possibile effettuare una scansione approfondita delle immagini che avviene in tre momenti:

  • In caso di push: ogni volta che un’immagine viene inviata all’ACR, viene eseguita automaticamente la scansione.
  • In caso di estrazione recente: poiché ogni giorno vengono scoperte nuove vulnerabilità, viene analizza anche qualsiasi immagine per la quale è stata fatta un’estrazione negli ultimi 30 giorni.
  • Durante l’importazione: Azure Container Registry dispone di strumenti di importazione per far confluire le immagini al suo interno da Docker Hub, Microsoft Container Registry oppure da altri ACR. Tutte le immagini importate vengono prontamente analizzate.

Durante la scansione Qualys estrae l’immagine e la esegue in una sandbox isolata per rintracciare eventuali vulnerabilità note.

Nel caso vengano rilevate delle vulnerabilità sarà generata una notifica nella dashboard di Security Center. Questo alert sarà accompagnato da una classificazione di gravità e da indicazioni pratiche su come è possibile correggere le specifiche vulnerabilità rilevate in ciascuna immagine. Per verificare le immagini supportate dalla soluzione è possibile accedere a questo link.

Figura 3 – Diagramma di alto livello che mostra la protezione di ACR tramite ASC

Attivazione e costi

L’attivazione di questi servizi Azure Defender di protezione dalle minacce è possibile farla direttamente dal portale Azure:

Figura 4 – Attivazione dei servizi Azure Defender di protezione di Kubernetes e ACR

I moduli Azure Defender in Azure Security Center sono soggetti a costi specifici che possono essere calcolati utilizzando lo strumento Azure Pricing calculator. In particolare, il costo di Azure Defender per Kubernetes viene calcolato sul numero di core delle VMs che compongono il cluster AKS, mentre il costo di Azure Defender per Container registries è calcolato in base alle immagini soggette a scansione.

Conclusioni

Grazie alla copertura offerta dai servizi Azure Defender di Azure Security Center è possibile ottenere un elevato grado di protezione per le architetture applicative basate su microservizi, che utilizzano Azure Kubernetes Service (AKS) ed Azure Container Registry. Microsoft si dimostra un provider in grado di offrire servizi efficaci per l’esecuzione dei container in ambiente cloud, affiancati da moderni ed avanzati strumenti per la sicurezza, utili sia per risolvere rapidamente eventuali problemi in questo ambito che per migliorare le security posture del proprio ambiente.