Serverless Security richiede un cambiamento di paradigma nel modo in cui le organizzazioni vedono la sicurezza delle applicazioni. Invece di costruire la sicurezza intorno all'applicazione stessa utilizzando Next Generation Firewall, le organizzazioni devono costruire la sicurezza anche intorno alle funzioni all'interno delle applicazioni ospitate da provider cloud di terze parti. Questo livello aggiuntivo di sicurezza assicura un corretto hardening dell'applicazione e un controllo degli accessi con il minimo privilegio, in modo che ogni funzione non faccia né più né meno di quello per cui è stata progettata, aiutando le organizzazioni a migliorare la loro posizione di sicurezza e a mantenere la Conformità.
L'informatica senza server si riferisce a un modello di cloud computing in cui il fornitore di cloud gestisce il server e gestisce dinamicamente l'allocazione delle risorse della macchina. AWS Lambda Functions, Google cloud Functions e Azure Functions sono framework serverless popolari che costruiscono applicazioni.
Un'architettura serverless offre il vantaggio di una scalabilità automatizzata e quasi infinita. Pochissimo si frappone tra gli sviluppatori e il codice distribuito, il che accelera il time to market e rende più facile la manutenzione e il test delle singole funzioni. Infine, la quantità effettiva di risorse applicative consumate influisce sul prezzo, il che significa che lei paga solo per ciò che utilizza, con conseguente riduzione dei costi.
Serverless rappresenta un ulteriore spostamento di responsabilità dal cliente al fornitore di cloud. Non essendo coinvolta alcuna infrastruttura, c'è una riduzione significativa dei costi generali delle operazioni.
Spostare la gestione dell'infrastruttura al suo provider cloud le consente di concentrarsi sullo sviluppo di soluzioni al servizio della sua organizzazione e dei suoi clienti. La aiuta a mantenere il focus sui suoi vantaggi competitivi unici, e spesso si traduce in un risparmio sui costi non solo di calcolo, ma anche di spostamento delle persone allo sviluppo.
Ecco alcuni punti chiave:
Finché una funzione all'interno di un contenitore ha bisogno di accedere alla lettura da S3, anche tutte le funzioni all'interno di quel contenitore avranno questo privilegio. Con AWS Lambda, ha l'opportunità di applicare privilegi a singole funzioni e di garantire che tali privilegi siano limitati solo all'ambito minimo necessario. Se c'è una vulnerabilità in una delle sue funzioni, un aggressore otterrà l'accesso solo alle capacità limitate di quella funzione, non all'ampio set di permessi da concedere a un contenitore.
Con il cambiamento della struttura delle applicazioni serverless, sorgono alcune nuove sfide.
Con le applicazioni serverless, non c'è alcun posto dove collocare la sicurezza classica come WAF, firewall e IDS. Costruire muri tra gli aggressori e le risorse non è semplice per diversi motivi.
Le applicazioni serverless sono più porose e a grana fine. Composte da decine o centinaia di funzioni, le applicazioni serverless sono piccoli microservizi con le proprie politiche, ruolo, API, audit trail, ecc. Questo cambia la superficie di attacco, invece di un piccolo numero di punti di ingresso con molte funzionalità nascoste dietro ognuno di essi, ora ci sono più punti di ingresso, ognuno con una piccola parte dell'app dietro di esso. Per difendere la sua applicazione ora è necessario pensare a ogni punto di ingresso.
Diversi eventi possono attivare delle funzioni, come ad esempio:
Mentre le motivazioni degli attaccanti rimangono le stesse, le tattiche che utilizzeranno con le applicazioni serverless devono cambiare. Di seguito sono riportate alcune delle minacce di Serverless Security uniche per questa nuova architettura applicativa.
Con l'applicazione serverless, ha l'opportunità di applicare i privilegi alle singole funzioni e di garantire che tali privilegi siano limitati solo all'ambito più piccolo necessario. Questo può consentirle di ridurre in modo significativo la sua superficie di attacco, nonché di mitigare l'impatto di qualsiasi attacco.
Purtroppo, una recente ricerca di Check Point ha rilevato che la grande maggioranza degli sviluppatori non sta sfruttando questa opportunità. La nostra ricerca ha scoperto che il 98% delle funzioni nelle applicazioni serverless sono a rischio, con il 16% considerato "grave". Inoltre, la maggior parte di queste funzioni sono dotate di più permessi di quelli necessari, che potrebbero essere rimossi per migliorare la sicurezza della funzione e dell'applicazione.
Nell'analisi delle funzioni, Check Point assegna un punteggio di rischio a ciascuna funzione. Questo si basa sulle debolezze della postura scoperte e tiene conto non solo della natura della debolezza, ma anche del contesto in cui si verifica. Dopo aver analizzato decine di migliaia di funzioni in applicazioni live, abbiamo scoperto che la maggior parte delle applicazioni serverless non vengono semplicemente distribuite in modo sicuro come dovrebbero per ridurre al minimo i rischi. I maggiori problemi di postura della sicurezza che Check Point ha scoperto sono le autorizzazioni non necessarie, mentre i restanti riguardano il codice e le configurazioni vulnerabili.
Il fatto che le funzioni serverless siano effimere e di breve durata rende più difficile per gli attaccanti persistere nella sua applicazione a lungo termine. Inoltre, questo è uno dei tanti vantaggi di sicurezza di serverless. Tuttavia, il fatto che questo renda la vita più difficile agli aggressori non significa che interromperanno gli attacchi; cambieranno semplicemente la strategia.
La breve durata delle funzioni serverless significa che le minacce di Serverless Security possono cambiare forma. Gli aggressori possono costruire un attacco molto più breve che si limita a rubare, ad esempio, alcuni numeri di carta di credito. Questo singolo ciclo di attacco si ripete continuamente, in quello che noi chiamiamo l'attacco del "Giorno della Marmotta".
Nonostante la breve durata di vita delle risorse cloud-native, gli aggressori possono ancora trovare il modo di ottenere una persistenza a lungo termine nella sua app. Un modo in cui gli aggressori possono aggirare la natura effimera delle applicazioni serverless è un attacco a monte, o "avvelenamento del pozzo".
Le applicazioni cloud-native tendono a comprendere molti moduli e librerie con codice proveniente da una varietà di fonti di terze parti. Gli aggressori lavorano per includere codice maligno nei progetti comuni. Poi, dopo aver avvelenato il pozzo, il codice maligno nelle sue app cloud può chiamare casa, ricevere istruzioni e scatenare il caos.
Anche se non si tratta esattamente di una "minaccia" per la sicurezza, è piuttosto una sfida e un possibile ostacolo ai suoi sforzi per proteggere l'architettura serverless.
Serverless offre il vantaggio di una maggiore velocità di sviluppo delle applicazioni. Sfortunatamente, l'approccio tradizionale alla sicurezza, in cui gli sviluppatori scrivono codice e pacchettizzano i carichi di lavoro, e le operazioni di sicurezza mettono in atto controlli di sicurezza attorno a questi carichi di lavoro, non funziona per i serverless.
Se gli sviluppatori devono aspettare che la sicurezza apra per loro le porte, i ruoli IAM o i gruppi di sicurezza, il vantaggio di una maggiore velocità si erode rapidamente. Troppo spesso la soluzione consiste nell'eliminare i SecOps dall'equazione, il che potrebbe essere un rischio.
D'altra parte, la configurazione delle autorizzazioni per la miriade di risorse serverless e le interazioni tra di esse è un compito che richiede molto tempo. Inoltre, 'spendere' il tempo degli sviluppatori per la configurazione della sicurezza può diventare rapidamente costoso, oltre a non essere l'uso ideale del loro tempo. Sfruttando l'automazione, come la Piattaforma CloudGuard, può aumentare Serverless Security senza dedicare quantità eccessive di tempo agli sviluppatori.
Un altro vantaggio di serverless è che si paga solo per ciò che si consuma effettivamente, il che può comportare una riduzione dei costi. Tuttavia, pagare proprio per ciò che si utilizza significa che qualsiasi aumento dei tempi di elaborazione farà lievitare i costi.
Un eccesso di configurazione dell'app sec nella sua applicazione potrebbe potenzialmente aggiungere lavoro extra alle sue funzioni, con conseguente aumento dei costi. Sebbene l'aggiunta di tempo di elaborazione per la sicurezza sia un investimento saggio, richiede un'implementazione adeguata per evitare un aumento eccessivo e non necessario dei costi.
Simile al precedente Aumento del tempo per la configurazione di Serverless Security, non è esattamente una minaccia, ma più una sfida che dovrà affrontare durante la protezione della sua architettura serverless.