Procedure consigliate per la protezione dei segreti

Questo articolo ti aiuta a proteggere i segreti e a ridurre il rischio di accessi non autorizzati. Segui queste indicazioni per assicurarti di non memorizzare informazioni sensibili, quali le credenziali, nel codice, nei repository GitHub, nei log o nelle pipeline di integrazione continua/distribuzione continua (CI/CD). Le linee guida in questo articolo provengono da singole raccomandazioni sui servizi e dal Microsoft Cloud Security Benchmark (MCSB).

Questo articolo è allineato al modello di sicurezza Microsoft Zero Trust, che richiede la verifica esplicita, l'accesso con privilegi minimi e il presupposto di violazione. Per controlli di sicurezza prescrittivi che includono l'applicazione Criteri di Azure, vedi Microsoft Cloud Security Benchmark v2: Accesso privilegiato e MCSB v2: Data Protection.

Individuazione e prevenzione dei segreti

Prima di poter mettere al sicuro i tuoi segreti, hai bisogno di avere visibilità su dove esistono. Servono anche controlli che impediscano l'esposizione prima che avvenga.

  • Effettua un audit per identificare segreti: verifica i tuoi sistemi e applicazioni per identificare informazioni sensibili che necessitano di protezione, come password, chiavi API, stringhe di connessione e altre credenziali. Audit regolari aiutano a garantire che il tuo inventario tenga conto dei nuovi segreti e che tu gestisca correttamente i segreti esistenti. Salvaguarda i segreti creati dinamicamente, come i token OAuth temporanei, con la stessa rigore dei segreti a lungo termine.

  • Evita la codifica rigida dei segreti: incorporare segreti direttamente nel codice o nei file di configurazione crea un rischio significativo per la sicurezza. Se gli attaccanti compromettono il tuo codice, compromettono anche i tuoi segreti. Invece, usa variabili di ambiente o strumenti di gestione della configurazione che tengono segreti fuori dal codice sorgente. Questa pratica riduce al minimo il rischio di esposizioni accidentali e semplifica gli aggiornamenti segreti. Integra il recupero dei segreti nella tua pipeline di distribuzione automatizzata e utilizza modelli di iniezione dei segreti per contribuire a prevenire l'esposizione accidentale nei log o nei sistemi di controllo delle versioni. Per altre informazioni, vedere Raccomandazioni per la protezione dei segreti dell'applicazione.

  • Implementa strumenti di scansione dei segreti: scansiona regolarmente il tuo codice per trovare segreti incorporati per aiutare a prevenire esposizioni accidentali. Strumenti come Azure DevOps Credential Scanner e GitHub secret scanning possono rilevare e avvisarti automaticamente dei segreti nei repository. Integra questi strumenti nella tua pipeline CI/CD per un monitoraggio continuo. Considera qualsiasi segreto scoperto dagli strumenti di scansione come compromesso. Revocalo e sostituiscilo immediatamente per mantenere l'integrità del tuo livello di sicurezza.

Archiviazione sicura e crittografia

La protezione dei segreti richiede meccanismi di archiviazione sicuri e la crittografia appropriata in tutte le fasi.

  • Usa archivi di chiavi sicuri: Servizi come Azure Key Vault e Azure Key Vault Managed HSM offrono funzionalità di sicurezza, tra cui controllo accessi, logging e rotazione automatica. Questo approccio centralizza la gestione dei segreti e riduce il rischio di accessi non autorizzati. Per segreti altamente sensibili o critici, si utilizza un key store supportato da modulo di sicurezza hardware (HSM) per una protezione migliorata rispetto ai secret store basati su software. Per gli scenari di chiave gestiti dal cliente, usa Azure Key Vault Premium tier, che è almeno supportato da HSM. Usa Azure Key Vault Managed HSM per i requisiti di sovranità delle chiavi. Per una panoramica delle offerte di gestione delle chiavi di Azure e delle indicazioni su quale scegliere, consulta Gestione delle chiavi in Azure e Come scegliere la soluzione di gestione delle chiavi più appropriata.

  • Crittografare i segreti inattivi e in transito: Azure Key Vault archivia i segreti in modo sicuro mediante crittografia envelope, in cui le chiavi di crittografia delle chiavi crittografano le chiavi di crittografia dei dati per fornire un ulteriore livello di sicurezza. Usa protocolli di comunicazione sicuri come HTTPS per criptare i dati in transito tra le tue applicazioni e il caveau delle chiavi. In Azure, vari servizi implementano la crittografia a riposo utilizzando la crittografia AES 256. TLS e MACsec proteggono i dati in transito. Per maggiori informazioni, vedi Crittografia a riposo e in transito.

  • Implementare l'isolamento della rete: configurare firewall e gruppi di sicurezza di rete per limitare l'accesso agli insiemi di credenziali delle chiavi. Permette solo ad applicazioni e servizi affidabili di accedere ai tuoi segreti. Questo approccio minimizza la superficie di attacco e aiuta a prevenire accessi non autorizzati. Valutare l'uso di più insiemi di credenziali delle chiavi per creare limiti di isolamento per i diversi componenti. Se gli attaccanti compromettono un componente, il componente non può ottenere il controllo di altri segreti o dell'intero carico di lavoro.

Controllo di accesso e identità

La gestione di chi e cosa può accedere ai segreti è fondamentale per la gestione della sicurezza.

  • Usa le identità gestite: le identità gestite in Azure forniscono un modo sicuro per le applicazioni di autenticarsi ai servizi Azure senza dover memorizzare le credenziali nel codice. Abilita le identità gestite per le risorse Azure per accedere in modo sicuro ad Azure Key Vault e ad altri servizi, riducendo la necessità di gestire manualmente i segreti. Questo approccio minimizza la creazione di segreti e riduce la superficie per potenziali violazioni perché la piattaforma gestisce le credenziali.

  • Applicare un controllo di accesso granulare: seguire il principio dei privilegi minimi applicando un controllo di accesso granulare ai segreti. Utilizza il controllo degli accessi basato sul ruolo di Azure (Azure RBAC) per garantire che solo le entità autorizzate abbiano accesso a segreti specifici. Esaminare e aggiornare regolarmente le autorizzazioni di accesso per impedire l'accesso non autorizzato. Implementa ruoli distinti come utente, amministratore e revisore per gestire l'accesso ai segreti. Questa pratica aiuta a garantire che solo le identità affidabili abbiano il livello appropriato di autorizzazione. Per maggiori informazioni, consulta la guida RBAC di Azure Key Vault.

Gestione del ciclo di vita dei segreti

I segreti richiedono una gestione continuativa per tutto il ciclo di vita, dalla creazione al ritiro.

  • Aggiornare regolarmente i segreti: i segreti sono soggetti a perdite o esposizione nel tempo. Ruota regolarmente i tuoi segreti per ridurre il rischio di accessi non autorizzati. Si possono ruotare i segreti in Azure Key Vault per alcuni segreti. Per i segreti che non possono ruotare automaticamente, stabilisci un processo di rotazione manuale e eliminali quando non vengono più usati. Automatizza la rotazione segreta e integra la ridondanza nella gestione dei segreti per aiutare a garantire che la rotazione non interrompa la disponibilità dei servizi. Implementa meccanismi di nuovo tentativo e pattern di accesso concorrente nel tuo codice per ridurre al minimo i problemi durante la finestra di rotazione.

  • Distribuisci i segreti in modo sicuro: Quando li distribuisci, condivideli in modo sicuro sia all'interno che all'esterno dell'organizzazione. Utilizza strumenti progettati per la condivisione sicura e includi procedure di recupero segrete nei tuoi piani di disaster recovery. Se un utente malintenzionato compromette o divulga una chiave, rigenerarla immediatamente. Usa chiavi distinte per ogni consumatore invece di condividere le chiavi, anche se i consumatori hanno modelli di accesso simili. Questa pratica semplifica la gestione e la revoca delle chiavi, così puoi revocare le chiavi compromesse senza influenzare altri consumatori.

Monitoraggio e registrazione

Il monitoraggio continuo rileva attività sospette e supporta i requisiti di conformità.

  • Monitorare e registrare l'accesso: abilitare la registrazione e il monitoraggio per il sistema di gestione dei segreti per tenere traccia dell'accesso e dell'utilizzo. Usa Key Vault logging, Monitoraggio di Azure o Griglia di eventi di Azure per monitorare tutte le attività relative ai tuoi segreti. Il monitoraggio offre visibilità su chi ha avuto accesso ai tuoi segreti e aiuta a rilevare comportamenti sospetti o potenziali incidenti di sicurezza. Mantenere tracce di audit dettagliate per ispezionare e validare l'accesso ai segreti, che possono aiutare a prevenire il furto d'identità, evitare la ripudiazione e ridurre l'esposizione non necessaria.

Linee guida specifiche del servizio per la gestione dei segreti

I singoli servizi potrebbero avere più buone pratiche e indicazioni per proteggere i segreti. Ecco alcuni esempi:

Passaggi successivi

Ridurre al minimo il rischio di sicurezza è una responsabilità condivisa. Prendi provvedimenti proattivi per assicurare i tuoi carichi di lavoro. Per altre informazioni, vedere Responsabilità condivisa nel cloud.