Che cos'è la gestione dei segreti?

Persona che tiene in mano uno smartphone accanto a un grande schermo

Definizione di gestione dei segreti

La gestione dei segreti è la protezione delle credenziali, come certificati, chiavi, password e token, per utenti non umani, come app, server e workload.

Le organizzazioni utilizzano sempre più spesso identità non umane per automatizzare i processi aziendali e i workflow chiave. Queste identità possono includere account di servizio, pipeline di integrazione continua e consegna continua (CI/CD), container, microservizi e strumenti di orchestrazione. Possono anche includere la robotic process automation (RPA) (bot software che imitano azioni umane) e, più recentemente, agenti di AI.

Analogamente agli utenti umani, le entità non umane necessitano di credenziali, o "segreti", per autenticarsi a sistemi e servizi e accedere alle risorse organizzative, spesso con privilegi elevati. Ad esempio, un processo di backup automatizzato potrebbe leggere file riservati e modificare le impostazioni di sistema.

Per gli hacker, questi account non umani privilegiati sono obiettivi di alto valore. Consentono agli attori delle minacce di abusare dei diritti di accesso per rubare dati e danneggiare sistemi critici, tutto questo mentre eludono il rilevamento. Secondo l'X-Force Threat Intelligence Index di IBM, l'hijacking di account validi è il secondo vettore di attacco informatico più comune, rappresentando il 32% di tutti gli incidenti a cui X-Force ha risposto l'anno scorso.

I sistemi di gestione dei segreti aiutano a combattere queste minacce informatiche, consentendo alle organizzazioni di creare, controllare e proteggere i segreti utilizzati dalle entità non umane per accedere alle risorse IT. Con gli strumenti di gestione dei segreti, i team IT possono proteggere le credenziali non umane durante l'intero ciclo di vita, semplificando i workflow automatizzati e prevenendo violazioni dei dati, manomissioni, furti e altri accessi non autorizzati.

Che cos'è un segreto?

Un segreto è una credenziale digitale contenuta in un'applicazione o in un servizio, e consente agli utenti non umani di comunicare ed eseguire azioni su un servizio, database, applicazione o altra risorsa IT. I segreti aiutano le organizzazioni a rafforzare il loro livello di sicurezza garantendo che solo gli utenti autorizzati abbiano accesso a dati e sistemi sensibili.

Alcuni esempi di segreti includono:

  • Credenziali degli account di servizio: gli account di servizio consentono alle app e ai workflow automatizzati di interagire con i sistemi operativi. Le credenziali degli account di servizio possono includere password, token di sicurezza, ticket Kerberos e altri segreti.

  • Chiavi API: le chiavi API consentono agli utenti, alle app e ai servizi di verificare se stessi utilizzando le application programming interface (API).

  • Chiavi crittografiche: le chiavi crittografiche consentono agli utenti di crittografare e decriptare i dati.

  • Token di autenticazione e autorizzazione: i token, come quelli utilizzati nel protocollo OAuth, sono informazioni in grado di verificare l'identità di un utente e di determinare le risorse specifiche a cui può accedere.

  • Chiavi SSH (Secure Shell): le chiavi SSH vengono utilizzate dai server SSH per identificare un utente o un dispositivo attraverso la crittografia a chiave pubblica.
  • Certificati e chiavi private PKI (SSL/TLS/MTLS): i certificati emessi da un'autorità di certificazione e le chiavi private associate autenticano gli endpoint e stabiliscono certificati e connessioni SSL/TLS crittografati, inclusa l'autenticazione reciproca TLS (MTLS).
  • Segreti arbitrari: dati sensibili, inclusi qualsiasi tipo di dati strutturati e non che possono essere utilizzati per accedere a un'applicazione o a una risorsa.
  • Stringhe di connessione: una stringa di testo che contiene le istruzioni necessarie a un programma informatico per connettersi a una fonte di dati, inclusi database, file o fogli di calcolo.
  • Altre chiavi crittografiche: possono includere chiavi HMAC (Message Autentication Code basato su hash), chiavi di firma del codice e altre chiavi private utilizzate per la firma o la verifica.

Perché la gestione dei segreti è importante

La gestione dei segreti è una soluzione di sicurezza critica che aiuta le organizzazioni a memorizzare, controllare e ruotare in modo sicuro le credenziali sensibili e altri segreti, come password, chiavi API e token. 

È una delle quattro funzionalità principali della gestione degli accessi privilegiati (PAM), un sottoinsieme della gestione delle identità e degli accessi (IAM) che si concentra sulla protezione di account e utenti privilegiati.

Le altre tre funzionalità di PAM includono:

  • Gestione degli account e delle sessioni privilegiate (PASM), che si occupa della gestione del ciclo di vita degli account privilegiati, della gestione delle password e del monitoraggio delle sessioni. 

  • Gestione dell'elevazione e della delega dei privilegi (PEDM), che prevede la valutazione, l'approvazione e il rifiuto automatici delle richieste di accesso privilegiato. 

  • La gestione dei diritti dell'infrastruttura cloud (CIEM), che supervisiona i permessi e i diritti negli ambienti di cloud computing.

La gestione dei segreti è importante per la metodologia DevOps, che enfatizza lo sviluppo e la distribuzione automatizzati e continui del software.

I team DevOps spesso utilizzano molteplici strumenti di gestione della configurazione o orchestrazione per gestire interi ecosistemi digitali, workflow e endpoint. Spesso gli strumenti utilizzano automazione e script che richiedono l'accesso a informazioni segrete per essere avviati. Senza un servizio di gestione delle chiavi segrete di livello aziendale, l'uso casuale delle chiavi segrete potrebbe aumentare la vulnerabilità del sistema.

Molte organizzazioni integrano le funzioni di gestione dei segreti nella pipeline CI/CD. Questo aiuta a garantire che tutte le parti mobili, come sviluppatori, strumenti e processi automatizzati, abbiano un accesso sicuro ai sistemi sensibili di cui hanno bisogno, quando ne hanno bisogno.

La gestione dei segreti è considerata una componente fondamentale di DevSecOps, un'evoluzione della metodologia DevOps che integra e automatizza continuamente la sicurezza durante tutto il ciclo di vita DevOps.

Come funziona la gestione dei segreti

Il processo di gestione dei segreti si basa in genere su strumenti di gestione dei segreti. Questi strumenti, che possono essere implementati on-premise o come cloud service, possono aiutare a centralizzare, automatizzare e semplificare la creazione, l'uso, la rotazione e la protezione dei segreti.

Sono disponibili sia soluzioni commerciali che open source per la gestione dei segreti. Le opzioni open-source includono Infisical mentre le opzioni commerciali includono CyberArk Conjur (che ha anch'esso un'edizione open-source) e HashiCorp Vault (di HashiCorp, un'azienda IBM).

Alcune funzionalità comuni degli strumenti di gestione dei segreti includono:

  • Gestione centralizzata e standardizzata dei segreti
  • Creazione dinamica e rotazione automatica dei segreti
  • Controllo degli accessi
  • Monitoraggio e verifica delle attività

Gestione centralizzata e standardizzata dei segreti

Con un servizio di gestione dei segreti di livello aziendale, le organizzazioni possono gestire diversi tipi di segreti in un unico pannello di controllo.

Invece di lasciare che i singoli utenti gestiscano i segreti in piccoli silos, le soluzioni di gestione dei segreti possono memorizzare i segreti in una posizione centrale e sicura chiamata "cassaforte dei segreti".

Quando un utente autorizzato ha bisogno di accedere a un sistema sensibile, può ottenere il segreto corrispondente dalla cassaforte. Lo strumento di gestione dei segreti può verificare e autorizzare automaticamente la richiesta e rilasciare il segreto necessario per l'autenticazione del workflow.

La standardizzazione aiuta a prevenire la dispersione dei segreti, che si verifica quando i segreti vengono memorizzati in vari punti dell'organizzazione, spesso codificati in applicazioni o come testo semplice in documenti condivisi. La dispersione dei segreti rende difficile proteggerli dai malintenzionati e tenere traccia del modo in cui vengono utilizzati.  

Creazione dinamica e rotazione automatica dei segreti

I segreti creati in un secrets manager possono essere statici o dinamici. Un segreto statico è un segreto che rimane valido per un lungo periodo di tempo, in genere fino a quando non viene modificato manualmente o raggiunge una data di scadenza predeterminata.

Un segreto dinamico viene invece creato dal secrets manager su richiesta, nel momento in cui serve. I segreti dinamici scadono abbastanza rapidamente o possono essere monouso.

Un caso d'uso per un segreto dinamico potrebbe essere proteggere una risorsa riservata come un database o un ambiente cloud come AWS o Microsoft Azure, generando dinamicamente chiavi API ogni volta che si accede o si legge quella risorsa. In questo modo si garantisce che gli aggressori non possano rubare e riutilizzare le chiavi API.

Molti secrets manager possono anche automatizzare la rotazione dei segreti, ossia l'atto di cambiare regolarmente i segreti. La rotazione può essere automatizzata su base programmatica o su richiesta, senza la necessità di riallocare o interrompere le applicazioni. Il time-to-live (TTL) o la durata del leasing possono essere definiti per un segreto al momento della sua creazione, per ridurre il tempo di esistenza del segreto.

Controllo degli accessi

I segreti possono essere concessi solo a entità o gruppi specifici per organizzare e limitare l'accesso. Questo viene spesso concesso utilizzando il principio del privilegio minimo, il che significa che a ogni processo viene concesso solo il set di privilegi più restrittivo necessario per eseguire un'attività. Gli utenti possono accedere solo ai segreti necessari per svolgere le attività autorizzate.

Le architetture zero-trust ("mai fidarsi, verifica sempre") spesso regolano l'accesso ai sistemi di gestione dei segreti. Questo aiuta a garantire che ogni richiesta di segreto sia autenticata e autorizzata, anche se proviene dall'interno della rete.

Monitoraggio e verifica delle attività

Molti secret manager possono tenere traccia del modo in cui utenti e applicazioni interagiscono e utilizzare i segreti per verificare che i segreti vengano gestiti in modo appropriato durante il loro ciclo di vita. Questo consente all'organizzazione di condurre un monitoraggio quasi in tempo reale degli eventi di accesso ai segreti, autenticazioni e autorizzazioni al secret manager.

I secret manager possono negare rapidamente i tentativi non autorizzati di visualizzare o utilizzare i segreti e revocare l'accesso quando necessario. Questo può aiutare a facilitare una correzione più rapida prima che hacker, minacce interne e altri malintenzionati possano causare danni.

Un potente strumento di automazione dei segreti manterrà registri di audit dettagliati che tracciano gli eventi di autenticazione degli utenti e di accesso segreto.

Il monitoraggio dei segreti è spesso molto più facile da realizzare una volta che un'organizzazione inizia a utilizzare strumenti di automazione dinamica dei segreti. Questi percorsi di audit dettagliati aiutano a convalidare l'uso approvato dei segreti o a rilevare e rintracciare potenziali minacce.

Pratiche comuni di gestione dei segreti

Oltre all'utilizzo di soluzioni per la gestione dei segreti, molte organizzazioni seguono pratiche fondamentali comuni nei loro processi di gestione dei segreti, come:

  • I segreti vengono generati, memorizzati e accessibili all'interno del loro ambiente appropriato (ad esempio, ambienti separati di sviluppo, test e produzione). Alcune organizzazioni utilizzano diversi strumenti di gestione dei segreti per ogni ambiente. Altre utilizzano un'unica soluzione centrale e isolano i segreti di ogni ambiente in un segmento dedicato. I segreti non lasciano mai i loro ambienti e vengono protetti utilizzando misure di controllo degli accessi molto severe.

  • L'accesso ai segreti da parte degli utenti è concesso al livello minimo richiesto a qualsiasi utente per adempiere alle proprie responsabilità. L'overentitlement, intenzionale o meno, può portare a violazioni dei dati.

  • I segreti vengono ruotati regolarmente in base ai requisiti del sistema.

  • Gli utenti non memorizzano i segreti nel codice sorgente, nei file di configurazione o nella documentazione.

  • Le politiche di sicurezza possono essere migliorate richiedendo la crittografia di tutti i dati sensibili. Le chiavi crittografiche possono essere protette con un servizio di gestione delle chiavi (KMS).

  • L'organizzazione monitora costantemente i segreti, con log di audit che tracciano ogni richiesta: chi ha richiesto il segreto, per quale sistema, se la richiesta è stata accettata, quando è stata emessa o recuperata, quando è scaduta e quando e se il segreto è stato aggiornato. Le anomalie dovrebbero quindi essere esaminate tempestivamente. 

Sfide nella gestione dei segreti

Man mano che gli ecosistemi IT diventano più complessi, la gestione dei segreti diventa sempre più difficile da controllare in modo efficace. Alcune sfide comuni per la gestione dei segreti possono includere:

Gestione decentralizzata dei segreti

Gli ecosistemi decentralizzati in cui amministratori, sviluppatori e utenti gestiscono i propri segreti separatamente possono introdurre rischi, poiché le lacune di sicurezza e l'uso dei segreti potrebbero non essere adeguatamente monitorati o verificati.

Le soluzioni centralizzate di gestione dei segreti possono offrire alle organizzazioni maggiore visibilità e controllo sui segreti.

Credenziali codificate

Quando le password o altri segreti sono incorporati come testo semplice nel codice sorgente o negli script, gli aggressori possono scoprirli facilmente e utilizzarli per accedere a informazioni sensibili.

I segreti hardcoded possono apparire in molti luoghi, inclusi toolchain CI/CD, repository di codice, dispositivi Internet of Things (IoT ), piattaforme di orchestrazione container come Kubernetes, application server, scanner di vulnerabilità e piattaforme di robotic process automation (RPA).

Rotazione poco frequente 

La rotazione regolare dei segreti aiuta a prevenire furti e abusi, ma senza un sistema di gestione dei segreti può essere incoerente o inefficace. Se un segreto rimane invariato per troppo tempo, un hacker potrebbe essere in grado di sbloccarlo andando per tentativi o con un attacco brute force.

Più a lungo viene utilizzata una password, più utenti hanno accesso, maggiore è la possibilità di una perdita involontaria.

Dispersione dei segreti

La crescita dei sistemi IT può portare a una dispersione in cui i segreti vengono diffusi in molte parti isolate del sistema. La dispersione dei segreti è particolarmente preoccupante negli ecosistemi multicloud ibridi, in cui le organizzazioni combinano ambienti cloud pubblici e privati forniti da più provider di cloud.

Le organizzazioni possono avere migliaia, se non addirittura milioni, di segreti in tutte le loro applicazioni cloud-native, contenitori, microservizi e altre risorse IT. Questa proliferazione crea un enorme carico di sicurezza e amplia la potenziale superficie di attacco.

Tra i servizi, la visibilità potrebbe essere limitata e la gestione dei segreti può diventare rapidamente ingombrante se tracciata manualmente o da sistemi eterogenei. La mancanza di un servizio centralizzato di gestione dei segreti rende più difficile, se non impossibile, l'applicazione di una corretta igiene dei segreti.

Condividere manualmente i segreti

Quando un'organizzazione non dispone di un sistema di gestione dei segreti, questi possono essere condivisi manualmente, ad esempio tramite e-mail o SMS, dove gli attori delle minacce possono intercettarli. 

Autori

Jim Holdsworth

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Annie Badman

Staff Writer

IBM Think