Azure Functions è uno strumento automatizzato per sviluppatori ospitato in Microsoft Azure. Si tratta di un servizio on-demand completamente gestito che non richiede competenze e formazione aggiuntive per l'utilizzo del servizio: è sufficiente distribuire la funzione ed eseguire il lavoro. Le funzioni utilizzano attività serverless che rispondono automaticamente a un incidente; i trigger, come un cambiamento in un flusso di dati o i dati di una coda di messaggi, possono generare una risposta intelligente da parte di Azure.
È importante assicurarsi che tutte le risorse pubbliche di Azure siano ben protette, soprattutto quando si eseguono le Function App. Inoltre, data la natura dell'applicazione Function, una solida sicurezza è di fondamentale importanza, soprattutto se l'applicazione Function spinge o preleva dati da e verso risorse locali.
In questo articolo scopriremo cos'è e come funziona una Azure Function e perché l'applicazione della sicurezza cloud-native è fondamentale per le Function App per mitigare i rischi e migliorare la postura della sua azienda Cloud Security.
Azure Functions offre agli sviluppatori una piattaforma cloud per scrivere ed eseguire codice in modo nativo. Il codice viene elaborato quasi istantaneamente utilizzando l'offerta di calcolo Azure Serverless Functions. Non è necessario preoccuparsi dell'hosting dell'infrastruttura con Azure Functions e non è necessario avere un proprio server per testare il codice. La cosa migliore è che le viene addebitato solo quando il codice è in esecuzione.
Le Azure Functions possono essere create direttamente nel portale Azure o integrate nei suoi strumenti di sviluppo preferiti, come Visual Studio, IntelliJ o PyCharm. Una funzione Azure è destinata a durare poco e in genere viene eseguita solo per pochi secondi o minuti. Gli utenti devono semplicemente creare la Function App, configurare l'ambiente ed eseguire il lavoro. La piattaforma cloud Azure gestisce tutto il resto e le consente di impostare delle quote per tenere sotto controllo la fatturazione.
Le funzioni serverless di Azure presentano all'utente un'interfaccia basata sul browser e supportano i linguaggi di programmazione più diffusi, tra cui C#, Java, Python, PHP, Bash, PowerShell e molti altri.
Azure Functions si integra in modo intelligente direttamente con le applicazioni cloud-native di terze parti, come Twillo, Facebook e Twitter, e direttamente con i servizi di base di Azure, come i servizi di calcolo, database e storage di Azure. In questo modo l'utente ha la possibilità di automatizzare le attività e di attivare più lavori direttamente dall'output della funzione.
Azure Functions viene eseguito in un ambiente di Serverless Computing, sotto il quale Microsoft fornisce un'infrastruttura cloud estesa e altamente disponibile per eseguire l'App Function. L'ambiente Serverless si estende su una vasta piattaforma globale in più regioni del mondo. La sicurezza è molto importante nei carichi di lavoro Serverless non presidiati, e la Il codice che sta eseguendo deve essere protetto per i carichi di lavoro serverless.. Ricorda sempre che è responsabilità del cliente proteggere le risorse del cloud.
Azure Functions si basa su azioni guidate dagli eventi e invocate automaticamente da un trigger. I trigger sono estremamente importanti per Azure Functions, in quanto possono essere avviati da un'ampia gamma di trigger di origine. I trigger provengono da molte fonti diverse, come le fonti di dati, i registri e gli eventi, ed è fondamentale disporre della sicurezza necessaria per isolare l'ambiente solo alle fonti approvate.
Ad esempio, consideriamo una richiesta HTTP (HTTPTrigger): deve essere autenticata solo se proviene da una fonte autorizzata, come un endpoint ERP o un URL di una pagina web specifica. I trigger possono essere programmati su un piano personalizzato come parte di un lavoro cron, oppure ad un orario predefinito utilizzando un TimeTrigger.
Gli eventi sono trigger popolari e possono essere invocati da varie fonti, come le code di Azure Storage, Azure Event Grid ed EventHubs. I trigger funzionano anche a partire dalle code di messaggi; questi possono essere qualsiasi cosa, dagli ordini di un sito web online alle risposte intelligenti alle e-mail di marketing.
Le funzioni seguono in genere processi ripetibili molto semplici. Quando il codice viene eseguito, le Funzioni di Azure creano un binding di output che esegue l'attività successiva nel flusso di lavoro che, a sua volta, può eseguire un'altra attività. Il binding di output utilizzato dipende dal tipo di Azure Function in uso, ma gli output più comuni sono i webhook, gli avvisi e la registrazione.
La natura serverless di Azure Functions introduce diverse caratteristiche chiave che si integrano perfettamente con i servizi fondamentali di Azure:
Azure Functions è ampiamente adottato nelle piccole, medie e grandi imprese, ed ecco perché:
Test: I trigger possono essere configurati per eseguire i test su ogni fase della creazione, costruire qualsiasi infrastruttura Azure associata e distribuire l'applicazione delle funzioni.
La protezione delle Funzioni di Azure è incredibilmente importante, perché un'App Funzione non correttamente configurata può causare molti danni. È anche probabile che il numero di Function App distribuite sui suoi account Azure cresca in modo significativo, rendendole difficili da gestire. Check Point ha stretto una partnership con Microsoft per fornire il servizio Check Point CloudGuard Network Security che può proteggere, monitorare e interagire dinamicamente con Azure Functions.
Il Plugin di protezione di Check Point CloudGuard Workload interagirà direttamente con un'app Azure Function. Il plugin ha delle caratteristiche incredibili e tutto ciò che deve fare è abilitazione il plugin quando si distribuisce l'App Function. Durante il processo di deployment, CloudGuard Workload eseguirà un proattivo un processo che esegue una valutazione iniziale del rischio, verificando la presenza di rischi per la sicurezza, come credenziali hardcoded, formattazione delle funzioni, spazi bianchi, ecc.
Successivamente, il modulo di protezione runtime viene caricato nella funzione - lo strumento Function-Self-Protection (FSP) è il modo in cui Check Point CloudGuard interagisce con la funzione, creando un livello di astrazione. Con l'FSP è possibile proteggere gli input utilizzando un firewall del carico di lavoro che esegue la scansione dei payload dannosi, rileva i comportamenti anomali e crea una lista di permessi per inserire nella whitelist le deviazioni previste nel comportamento della funzione.
Tutto ciò che riguarda le sue funzioni è disponibile nella console CloudGuard, un unico pannello di vetro che le offre una visione olistica di tutto ciò che deve sapere sulla sua App Azure Function. I diagrammi mostrano quali servizi vengono toccati dalla Funzione e la protezione runtime scansiona tutti i carichi di lavoro e avvisa dei rischi potenziali, come regole troppo permissive, vulnerabilità di sicurezza e comportamenti inaspettati. La console fornisce all'utente anche una pagina di mediazione suggerita che spiega come risolvere qualsiasi problema utilizzando il codice.
Chi utilizza Amazon Web Services sarà lieto di sapere che la Piattaforma di protezione del carico di lavoro nel cloud (CWPP) funziona anche con AWS Lambda (l'equivalente di Amazon a Azure Functions). Le protezioni offerte sono identiche, offrendo ai clienti una maggiore visibilità e controlli di sicurezza sulle Funzioni che operano nei data center, AWS, Azure Stack, cloud ibridi e rete virtuale sicura.
AWS Lambda e Azure Functions stanno crescendo in popolarità, per questo non vuole correre rischi con la sicurezza delle Function App. Combina i controlli di sicurezza integrati nella console di AWS e Azure con Check Point CloudGuard per ottenere il miglior livello di astrazione della sicurezza. Proteggere il codice e monitorare in modo intelligente tutte le attività serverless.
Vuole saperne di più sulla protezione di una Azure Function o di un AWS Lambda? PROGRAMMA UNA DEMO per vedere in azione le straordinarie funzioni di sicurezza granulare di CloudGuard, che proteggono i carichi di lavoro fin dal momento in cui si effettua la distribuzione nel cloud.