SEC06-BP02 Provisioning di calcolo da immagini rafforzate - Framework AWS Well-Architected

SEC06-BP02 Provisioning di calcolo da immagini rafforzate

Riduci le opportunità di accesso involontario agli ambienti di runtime implementandoli da immagini rafforzate. Acquisisci dipendenze di runtime, come immagini di container e librerie di applicazioni, solo da registri affidabili e verifica le loro firme. Crea i tuoi registri privati per archiviare immagini e librerie attendibili da utilizzare nei tuoi processi di compilazione e implementazione.

Risultato desiderato: le risorse di calcolo vengono fornite da immagini di base rafforzate. Le dipendenze esterne, ad esempio le immagini dei container e le librerie di applicazioni, vengono recuperate solo da registri attendibili e ne vengono verificate le firme. Queste sono archiviate in registri privati a cui i processi di compilazione e implementazione possono fare riferimento. Scansiona e aggiorna regolarmente immagini e dipendenze per proteggerti da eventuali vulnerabilità scoperte di recente.

Anti-pattern comuni:

  • Acquisire immagini e librerie da registri attendibili, ma senza verificarne la firma o eseguire scansioni delle vulnerabilità prima di metterle in uso.

  • Rafforzare le immagini, ma non testarle regolarmente per individuare nuove vulnerabilità o aggiornarle alla versione più recente.

  • Installare o non rimuovere pacchetti software non necessari durante il ciclo di vita previsto dell'immagine.

  • Affidarsi esclusivamente alle patch per mantenere aggiornate le risorse di calcolo di produzione. La sola applicazione di patch può comunque far sì che nel tempo le risorse di calcolo si allontanino dallo standard protetto. L'applicazione delle patch può inoltre non riuscire a rimuovere le minacce informatiche che potrebbero essere state installate da un attore pericoloso durante un evento di sicurezza.

Vantaggi derivanti dall'adozione di questa best practice: il rafforzamento delle immagini aiuta a ridurre il numero di percorsi disponibili nell'ambiente di runtime che possono consentire l'accesso involontario a utenti o servizi non autorizzati. Inoltre, può ridurre l'ambito dell'impatto in caso di accesso involontario.

Livello di rischio associato se questa best practice non fosse adottata: elevato

Guida all'implementazione

Per rendere i sistemi più resistenti, è necessario partire dalle versioni più recenti dei sistemi operativi, delle immagini dei container e delle librerie delle applicazioni. Applica le patch ai problemi noti. Riduci al minimo il sistema rimuovendo le applicazioni, i servizi, i driver dei dispositivi, gli utenti predefiniti e altre credenziali non necessarie. Adotta qualsiasi altra azione necessaria, come la disabilitazione delle porte, per creare un ambiente che disponga solo delle risorse e delle capacità necessarie per i carichi di lavoro. Da questa linea di base è possibile installare software, agenti o altri processi necessari per scopi quali il monitoraggio del carico di lavoro o la gestione delle vulnerabilità.

È possibile ridurre l'onere del rafforzamento dei sistemi utilizzando le linee guida fornite da origini attendibili, come il Center for Internet Security (CIS) e le Defense Information Systems Agency (DISA) Security Technical Implementation Guides (STIGs). Ti consigliamo di iniziare con una Amazon Machine Image (AMI) pubblicata da AWS o un partner APN e di utilizzare AWS EC2 Image Builder per automatizzare la configurazione in base a una combinazione appropriata di controlli CIS e STIG.

Sebbene siano disponibili immagini e ricette EC2 Image Builder rafforzate che applicano i consigli CIS o DISA STIG, è possibile che la loro configurazione impedisca il corretto funzionamento del software. In questa situazione, è possibile partire da un'immagine di base non temprata, installare il software e quindi applicare in modo incrementale i controlli CIS per verificarne l'impatto. Per qualsiasi controllo CIS che impedisca l'esecuzione del software, verifica se è possibile implementare le raccomandazioni di rafforzamento granulare in una DISA. Tieni traccia dei diversi controlli CIS e delle configurazioni DISA STIG che puoi applicare con successo. Usa tutto questo per definire le ricette di rafforzamento dell'immagine in EC2 Image Builder.

Per i carichi di lavoro containerizzati, sono disponibili le immagini rafforzate di Docker nel repository pubblico Amazon Elastic Container Registry. È possibile utilizzare EC2 Image Builder per rafforzare le immagini dei container insieme alle AMI.

In modo simile ai sistemi operativi e alle immagini dei container, è possibile ottenere pacchetti di codice (o librerie) da repository pubblici, attraverso strumenti come pip, npm, Maven e NuGet. È consigliabile gestire i pacchetti di codice integrando repository privati, come quelli all'interno di AWS CodeArtifact, con repository pubblici affidabili. Questa integrazione può gestire il recupero, l'archiviazione e l'aggiornamento dei pacchetti per l'utente. I processi di creazione dell'applicazione possono quindi ottenere e testare l'ultima versione di questi pacchetti insieme all'applicazione, utilizzando tecniche come la Software Composition Analysis (SCA), lo Static Application Security Testing (SAST) e il Dynamic Application Security Testing (DAST).

Per i carichi di lavoro serverless che utilizzano AWS Lambda, semplifica la gestione delle dipendenze dei pacchetti utilizzando i livelli Lambda. Usa i livelli Lambda per configurare un set di dipendenze standard condivise tra diverse funzioni in un archivio autonomo. È possibile creare e gestire i livelli tramite il relativo processo di costruzione, fornendo un modo centralizzato per mantenere aggiornate le funzioni.

Passaggi dell'implementazione

  • Rafforzamento del sistema operativo. Utilizza immagini di base provenienti da fonti affidabili come base per costruire AMI protette. Utilizzale EC2 Image Builder per personalizzare il software installato sulle tue immagini.

  • Rafforzamento delle risorse containerizzate. Configura le risorse containerizzate per il rispetto delle best practice in materia di sicurezza. Quando utilizzi i container, implementa la scansione delle immagini ECR nella pipeline di costruzione e su base regolare nel repository di immagini per cercare le CVE nei container. 

  • Quando utilizzi l'implementazione serverless con AWS Lambda, utilizza i livelli Lambda per separare il codice funzione dell'applicazione e le librerie dipendenti condivise. Configura la firma del codice per Lambda per assicurarti che nelle tue funzioni Lambda venga eseguito solo codice affidabile.

Risorse

Best practice correlate:

Video correlati:

Esempi correlati: